Engage SDK Travel: instrukcje integracji technicznej firm zewnętrznych

Google tworzy interfejs na urządzeniu, który porządkuje aplikacje użytkowników według branży i umożliwia nowe wciągające wrażenia podczas przeglądania i odtwarzania spersonalizowanych treści w aplikacji. Ten tryb pełnoekranowy daje partnerom deweloperom możliwość zaprezentowania swoich najlepszych treści w ramach dedykowanego kanału poza aplikacją. Ten przewodnik zawiera instrukcje dotyczące integracji treści dotyczących podróży i wydarzeń za pomocą pakietu Engage SDK, aby wypełnić tę nową powierzchnię.

Szczegóły integracji

Terminologia

Ta integracja obejmuje następujące typy klasterów: Recommendation, Featured, Reservation i Continue Search.

  • Rekomendacje to grupy zawierające spersonalizowane sugestie dotyczące podróży i imprez od konkretnego partnera deweloperskiego. Te rekomendacje mogą być spersonalizowane pod kątem użytkownika lub ogólne (np. dotyczące popularnych produktów). Użyj tych informacji, aby wyświetlić rekomendacje dotyczące artykułów, wydarzeń, obiektów noclegowych lub miejsc docelowych.

    • Klastry rekomendacji mogą składać się z kart ArticleEntity, EventEntity, LodgingEntity, PointOfInterestEntity lub StoreEntity, ale nie z różnych typów encji.

    Rekomendacje mają następującą strukturę:

    • Klaster rekomendacji: widok interfejsu użytkownika zawierający grupę rekomendacji od tego samego partnera deweloperskiego.

    • Jednostka: obiekt reprezentujący pojedynczy element w klastrze. Ta integracja udostępnia niektóre typy jednostek, które będą wyświetlane za pomocą klastra rekomendacji:

      • ArticleEntity: ArticleEntity to rekomendacja treści tekstowych związanych z podróżami i wydarzeniami. Można go używać do publikowania artykułów, postów na blogu, treści marketingowych, fragmentów wiadomości itp.

        Rysunek 1.: interfejs pokazujący pojedynczą jednostkę ArticleEntity w klastrze rekomendacji.
      • EventEntity: obiekt EventEntity reprezentuje zdarzenie, które ma nastąpić w przyszłości. Czas rozpoczęcia wydarzenia to kluczowa informacja, którą należy przekazać użytkownikom.

        Rysunek 2.: interfejs pokazujący pojedynczy obiekt EventEntity w klastrze rekomendacji.
      • LodgingEntity: LodgingEntity reprezentuje obiekt zakwaterowania, taki jak hotel, apartament czy dom wakacyjny, na krótki lub długi okres wynajmu.

        Rysunek 3. Interfejs pokazujący pojedynczą instancję obiektu LodgingEntity w klastrze rekomendacji.
      • StoreEntity: StoreEntity reprezentuje sklep, restaurację, kawiarnię itp. Podkreśla treści, w których przypadku lokal gastronomiczny lub sklep jest kluczowym elementem informacji, który należy przekazać użytkownikom.

        Rysunek 4. Interfejs pokazujący pojedynczą instancję typu StoreEntity w klastrze rekomendacji.
      • PointOfInterestEntity: obiekt PointOfInterestEntity reprezentuje miejsce, które może zainteresować użytkowników, np. stację benzynową, miejsce wydarzenia, park rozrywki, muzeum, atrakcję turystyczną, szlak turystyczny itp. Podkreśla treści, w których przypadku lokalizacja jest istotną informacją, którą należy przekazać użytkownikom. Nie powinien on dotyczyć obiektu noclegowego, sklepu ani lokalu gastronomicznego.

        Rysunek 5. Interfejs pokazujący pojedynczy obiekt PointOfInterestEntity w klastrze rekomendacji.
  • Klaster Rezerwacja zawiera treści, z którymi użytkownicy wielu partnerów deweloperów niedawno się angażowali, w jednym układzie interfejsu. Każdy partner deweloper może nadawać maksymalnie 10 podmiotów w klastrze rezerwacji.

    Treść rezerwacji może mieć następującą strukturę:

    • RestaurantReservationEntity: obiekt RestaurantReservationEntity reprezentuje rezerwację w restauracji lub kawiarni i pomaga użytkownikom śledzić nadchodzące lub trwające rezerwacje w restauracji.

      Rysunek 6. Interfejs pokazujący pojedynczy obiekt RestaurantReservationEntity w klastrze Rezerwacja.
    • EventReservationEntity: obiekt EventReservationEntity reprezentuje rezerwację wydarzenia i pomaga użytkownikom śledzić nadchodzące lub trwające rezerwacje wydarzeń. Te wydarzenia mogą obejmować m.in.:

      • wydarzenia sportowe, takie jak rezerwacja biletu na mecz piłki nożnej;
      • wydarzenia związane z grami, np. rezerwacje na mecze e-sportowe;
      • wydarzenia rozrywkowe, takie jak rezerwacja biletów do kina, koncert, teatr, spotkanie autorskie;
      • rezerwacje dotyczące podróży lub miejsc, takich jak wycieczki z przewodnikiem czy bilety do muzeum;
      • Rezerwacje na spotkania towarzyskie, seminaria i konferencje
      • Rezerwacje na zajęcia edukacyjne / szkoleniowe
      Rysunek 7. Interfejs pokazujący pojedynczy obiekt EventReservationEntity w klastrze rezerwacji.
    • LodgingReservationEntity: obiekt LodgingEntityReservation reprezentuje rezerwację zakwaterowania w hotelu i pomaga użytkownikom śledzić nadchodzące lub trwające rezerwacje hoteli lub kwater wakacyjnych.

      Rysunek 8. Interfejs użytkownika pokazujący pojedynczy obiekt typu LodgingReservationEntity w klastrze Rezerwacja.
    • TransportationReservationEntity: TransportationReservationEntity reprezentuje rezerwację transportu w dowolnym trybie i pomaga użytkownikom śledzić rezerwacje dotyczące nadchodzących lub trwających lotów, przepraw, pociągów, autobusów, przejazdów taksówek lub rejsów.

      Rysunek 9. Interfejs pokazujący pojedynczy obiekt TransportationReservationEntity w klastrze Rezerwacja.
    • VehicleRentalReservationEntity: obiekt VehicleRentalReservationEntity reprezentuje rezerwację wynajmu pojazdu i pomaga użytkownikom śledzić nadchodzące lub trwające rezerwacje wynajmu pojazdów.

      Rysunek 10. Interfejs pokazujący pojedynczy obiekt VehicleRentalReservationEntity w klastrze Rezerwacja.
  • Klaster Polecane zawiera zbiór elementów od wielu partnerów programistów w jednym układzie interfejsu. Będzie jeden wyróżniony klaster, który będzie wyświetlany u góry interfejsu w priorytetowym miejscu nad wszystkimi innymi klastrami rekomendacji. Każdy partner deweloper może przesyłać do 10 elementów w klastrze Polecane.

    • GenericFeaturedEntity: GenericFeaturedEntity różni się od elementu rekomendacji tym, że element polecany powinien być używany w przypadku pojedynczego najlepszego materiału od dewelopera i powinien reprezentować najważniejszy materiał, który będzie interesujący i trafny dla użytkowników.

      Rysunek 11. Interfejs z grupą polecanych z listą elementów GenericFeaturedEntity
  • Klaster Kontynuuj wyszukiwanie pomaga użytkownikom wznowić poprzednią podróż po wyszukiwaniu dotyczącej podróży, wyświetlając listę zapytań wyszukiwania, które użytkownik ostatnio wprowadził we wszystkich swoich aplikacjach podróżniczych. Klaster zostanie przypięty na 2. pozycji, po rezerwacjach i przed polecanymi oraz rekomendowanymi klastrami. Każdy partner deweloper może przesyłać do klastra kontynuowania wyszukiwania maksymalnie 3 elementy.

    • PointOfInterestEntity: obiekt typu PointOfInterestEntity reprezentuje miejsce, które może zainteresować użytkownika, np. stację benzynową, miejsce wydarzenia, park rozrywki, muzeum, atrakcję turystyczną, szlak turystyczny itp. Wyróżnia treści, których użytkownik szukał wcześniej.

Przygotowanie

Minimalny poziom interfejsu API: 19

Dodaj bibliotekę com.google.android.engage:engage-core do aplikacji:

dependencies {
    // Make sure you also include that repository in your project's build.gradle file.
    implementation 'com.google.android.engage:engage-core:1.5.2'
}

Podsumowanie

Projekt jest oparty na implementacji usługi powiązanej.

Dane, które klient może publikować, podlegają następującym ograniczeniom w przypadku różnych typów klastrów:

Typ klastra Limity klastra Minimalne limity elementów w klastrze Maksymalne limity elementów w klastrze
Klastry rekomendacji Maksymalnie 5 Co najmniej 5 Maksymalnie 25 (ArticleEntity, EventEntity, LodgingEntity, StoreEntity lub PointOfInterestEntity)
Klaster rezerwacji Maksymalnie 1 Co najmniej 1 Maksymalnie 10 (RestaurantReservationEntity, EventReservationEntity, LodgingReservationEntity, TransportationReservationEntity lub VehicleRentalReservationEntity)
Polecany klaster Maksymalnie 1 Co najmniej 1 Maksymalnie 10 (GenericFeaturedEntity)
Kontynuuj wyszukiwanie w klastrze Maksymalnie 1 Co najmniej 1 Maksymalnie 3 (PointOfInterestEntity)

Krok 1. Podaj dane o podmiocie

Pakiet SDK definiuje różne elementy reprezentujące poszczególne typy elementów. W przypadku kategorii Podróże i wydarzenia obsługujemy te typy jednostek:

  1. GenericFeaturedEntity
  2. ArticleEntity
  3. EventEntity
  4. LodgingEntity
  5. StoreEntity
  6. PointOfInterestEntity
  7. RestaurantReservationEntity
  8. EventReservationEntity
  9. LodgingReservationEntity
  10. TransportationReservationEntity
  11. VehicleRentalReservationEntity

W tabelach poniżej znajdziesz dostępne atrybuty i wymagania dotyczące poszczególnych typów.

GenericFeaturedEntity

Atrybut Wymaganie Opis Format
Identyfikator URI działania Wymagany

Precyzyjny link do elementu w aplikacji dostawcy.

Uwaga: do atrybucji możesz używać precyzyjnych linków. Zapoznaj się z odpowiedziami na najczęstsze pytania

Identyfikator URI
obrazy plakatu, Wymagany

Jeśli podasz kilka obrazów, wyświetlimy tylko 1 z nich. Zalecany format obrazu to 16:9

Uwaga: jeśli w ramach plakietki jest dodawany element, należy zapewnić bezpieczną odległość 24 dps u góry i u dołu obrazu.

Więcej informacji znajdziesz w specyfikacji zdjęć.
Tytuł Opcjonalny Tytuł elementu.

Tekst otwarty

Zalecany rozmiar tekstu: 50 znaków

Opis Opcjonalny

Jeden akapit tekstu opisujący daną encję.

Uwaga: użytkownik zobaczy albo opis, albo listę napisów, a nie oba te elementy.

Tekst otwarty

Zalecany rozmiar tekstu: 180 znaków

Lista napisów Opcjonalny

Maksymalnie 3 napisy, z których każdy stanowi pojedynczy wiersz tekstu.

Uwaga: użytkownik zobaczy albo opis, albo listę napisów, a nie oba te elementy.

Tekst otwarty

Zalecane rozmiary tekstu dla każdego z podtytułów: maks. 50 znaków

Odznaki Opcjonalny

Każda plakietka może zawierać dowolny tekst (maksymalnie 15 znaków) lub mały obraz.

Specjalne wrażenia użytkownika na obrazie lub filmie, np. w postaci plakietki nałożonej na obraz

  • „Aktualizacja na żywo”
  • Czas czytania artykułu
Odznaka – tekst Opcjonalny

Tytuł plakietki

Uwaga: na plakietce musi znajdować się tekst lub obraz.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 15 znaków

Odznaka – obraz Opcjonalny

Mały obraz

specjalne wrażenia użytkownika, na przykład w postaci plakietki nałożonej na obrazie lub miniaturze filmu;

Uwaga: na plakietce musi znajdować się tekst lub obraz.

Więcej informacji znajdziesz w specyfikacji zdjęć.
Kategorie treści Opcjonalny Opisz kategorię treści w podmiocie.

Lista wartości w polu enum

Więcej informacji znajdziesz w sekcji Kategoria treści.

ArticleEntity

Atrybut Wymaganie Opis Format
Identyfikator URI działania Wymagany

Precyzyjny link do elementu w aplikacji dostawcy.

Uwaga: do atrybucji możesz używać precyzyjnych linków. Zapoznaj się z odpowiedziami na najczęstsze pytania

Identyfikator URI
Tytuł Wymagany Tytuł elementu.

Tekst otwarty

Zalecany rozmiar tekstu: maks. 50 znaków

obrazy plakatu, Opcjonalny

Jeśli podasz kilka obrazów, wyświetlimy tylko 1 z nich. Zalecany format obrazu to 16:9

Uwaga: zdecydowanie zalecamy dodanie zdjęcia. Jeśli w ramach projektu znajduje się plakietka, należy zapewnić bezpieczną odległość 24 dp od góry i dołu obrazu.

Więcej informacji znajdziesz w specyfikacji zdjęć.
Źródło – tytuł Opcjonalny imię i nazwisko autora, organizacji lub reportera;

Tekst otwarty

Zalecany rozmiar tekstu: mniej niż 25 znaków

Źródło – obraz Opcjonalny obraz źródła, np. autora, organizacji, reportera; Więcej informacji znajdziesz w specyfikacji zdjęć.
Opis Opcjonalny

Jeden akapit tekstu opisujący daną encję.

Uwaga: użytkownik zobaczy albo opis, albo listę napisów, a nie oba te elementy.

Tekst otwarty

Zalecany rozmiar tekstu: 180 znaków

Lista napisów Opcjonalny

Maksymalnie 3 napisy, z których każdy stanowi pojedynczy wiersz tekstu.

Uwaga: użytkownik zobaczy albo opis, albo listę napisów, a nie oba te elementy.

Tekst otwarty

Zalecane rozmiary tekstu dla każdego z podtytułów: maks. 50 znaków

Odznaki Opcjonalny

Każda plakietka może zawierać dowolny tekst (maksymalnie 15 znaków) lub mały obraz.

specjalne wrażenia użytkownika na obrazie lub filmie, np. w postaci plakietki nałożonej na obraz

  • „Aktualizacja na żywo”
  • Czas czytania artykułu
Odznaka – tekst Opcjonalny

Tytuł plakietki

Uwaga: na plakietce musi znajdować się tekst lub obraz.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 15 znaków

Odznaka – obraz Opcjonalny

Mały obraz

specjalne wrażenia użytkownika, na przykład w postaci plakietki nałożonej na obrazie lub miniaturze filmu;

Uwaga: na plakietce musi znajdować się tekst lub obraz.

Więcej informacji znajdziesz w specyfikacji obrazów.
Czas publikacji treści Opcjonalny To sygnatura czasowa ery w milisekundach, w których treści zostały opublikowane lub zaktualizowane w aplikacji. Sygnatura czasowa od początku epoki w milisekundach
Ostatni czas zaangażowania Wymagane warunkowo

Sygnatura czasowa w epoce (w milisekundach) ostatniej interakcji użytkownika z tym elementem.

Uwaga: to pole jest wymagane, jeśli ten element jest częścią klastra rezerwacji.

Sygnatura czasowa od początku epoki w milisekundach
Procent postępu Wymagane warunkowo

Odsetek pełnych treści wykorzystanych przez użytkownika do tej pory.

Uwaga: to pole jest wymagane, jeśli ten element należy do klastra rezerwacji.

Wartość typu int z zakresu 0–100.
Kategorie treści Opcjonalny Opisz kategorię treści w podmiocie.

Lista wartości w polu enum

Więcej informacji znajdziesz w sekcji Kategoria treści.

EventEntity

Atrybut Wymaganie Opis Format
Identyfikator URI działania Wymagany

Precyzyjny link do elementu w aplikacji dostawcy.

Uwaga: do atrybucji możesz używać precyzyjnych linków. Zapoznaj się z odpowiedziami na najczęstsze pytania

Identyfikator URI
Tytuł Wymagany Tytuł elementu.

Ciąg znaków

Zalecany rozmiar tekstu: maks. 50 znaków

Zlokalizowany czas rozpoczęcia – sygnatura czasowa Wymagany

Sygnatura czasowa ery, w której ma się rozpocząć zdarzenie.

Joda-Time Instant
Lokalny czas rozpoczęcia – strefa czasowa Wymagany

Strefa czasowa, w której ma się rozpocząć wydarzenie.

Joda-Time DateTimeZone
Tryb zdarzenia Wymagany

Pole, w którym określasz, czy wydarzenie będzie wirtualne, stacjonarne czy obie te formy.

Typ enumeracji: VIRTUAL, IN_PERSON lub HYBRID
obrazy plakatu, Wymagany

Jeśli podasz kilka obrazów, wyświetlimy tylko 1 z nich. Zalecany format obrazu to 16:9

Uwaga: zdecydowanie zalecamy dodanie obrazu. Jeśli w ramach projektu znajduje się plakietka, należy zapewnić bezpieczną odległość 24 dp od góry i dołu obrazu.

Więcej informacji znajdziesz w specyfikacji zdjęć.
Lokalizacja – kraj Wymagane warunkowo

Kraj, w którym odbywa się wydarzenie.

Uwaga: ta opcja jest wymagana w przypadku zdarzeń o typie IN_PERSON lub HYBRID.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – miasto Wymagane warunkowo

Miasto, w którym odbywa się wydarzenie.

Uwaga: ta opcja jest wymagana w przypadku zdarzeń o typie IN_PERSON lub HYBRID.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – wyświetlany adres Wymagane warunkowo

Adres lub nazwa miejsca, w którym odbędzie się wydarzenie, które powinno być wyświetlane użytkownikowi.

Uwaga: ta opcja jest wymagana w przypadku zdarzeń o typie IN_PERSON lub HYBRID.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – adres Opcjonalny Adres (ulica i numer domu) miejsca, w którym odbywa się wydarzenie.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – stan Opcjonalny Stan lub prowincja (jeśli ma zastosowanie), w których odbywa się wydarzenie.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – kod pocztowy Opcjonalny Kod pocztowy (jeśli występuje) miejsca, w którym odbywa się wydarzenie.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – okolica Opcjonalny Dzielnica (jeśli dotyczy), w której odbywa się wydarzenie.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Godzina zakończenia Opcjonalny

Znak czasu epoki, w którym ma się zakończyć zdarzenie.

Uwaga: wartość ta jest podawana w milisekundach.

Sygnatura czasowa od początku epoki w milisekundach
Opis Opcjonalny

Jeden akapit tekstu opisujący daną encję.

Uwaga: użytkownik zobaczy albo opis, albo listę napisów, a nie oba te elementy.

Tekst otwarty

Zalecany rozmiar tekstu: 180 znaków

Lista napisów Opcjonalny

Maksymalnie 3 napisy, z których każdy stanowi pojedynczy wiersz tekstu.

Uwaga: użytkownik zobaczy albo opis, albo listę napisów, a nie oba te elementy.

Tekst otwarty

Zalecane rozmiary tekstu dla każdego z podtytułów: maks. 50 znaków

Odznaki Opcjonalny

Każda plakietka może zawierać dowolny tekst (maksymalnie 15 znaków) lub mały obraz.

Odznaka – tekst Opcjonalny

Tytuł plakietki

Uwaga: na plakietce musi znajdować się tekst lub obraz.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 15 znaków

Odznaka – obraz Opcjonalny

Mały obraz

specjalne wrażenia użytkownika, na przykład w postaci plakietki nałożonej na obrazie lub miniaturze filmu;

Uwaga: na plakietce musi znajdować się tekst lub obraz.

Więcej informacji znajdziesz w specyfikacji zdjęć.
Cena – CurrentPrice Wymagane warunkowo

Aktualna cena biletu na wydarzenie.

Musi być podana, jeśli podano cenę przekreśloną.

Tekst otwarty
Cena – przekreślona cena Opcjonalny Pierwotna cena biletu/karnetu na wydarzenie. Tekst otwarty
Objaśnienie dotyczące ceny Opcjonalny Podkreślenie ceny, aby poinformować o promocji, wydarzeniu lub rabacie dla członków programu (jeśli są dostępne).

Tekst otwarty

Zalecane rozmiary tekstu: poniżej 45 znaków (w przypadku zbyt długiego tekstu mogą być wyświetlane wielokropki)

Kategorie treści Opcjonalny Opisz kategorię treści w podmiocie.

Lista typów wyliczeniowych spełniających wymagania

  • TYPE_MOVIES_AND_TV_SHOWS (np. Cinema)
  • TYPE_DIGITAL_GAMES (np. e-sport)
  • TYPE_MUSIC (na przykład koncert)
  • TYPE_TRAVEL_AND_LOCAL (np. wycieczka, festiwal)
  • TYPE_HEALTH_AND_FITENESS (np. zajęcia z jogi)
  • TYPE_EDUCATION (np. Class)
  • TYPE_SPORTS (np. gra Piłka nożna)
  • TYPE_DATING (np. spotkanie)

Więcej informacji znajdziesz w sekcji Kategoria treści.

LodgingEntity

Atrybut Wymaganie Opis Format
Identyfikator URI działania Wymagany

Precyzyjny link do elementu w aplikacji dostawcy.

Uwaga: do atrybucji możesz używać precyzyjnych linków. Zapoznaj się z odpowiedziami na najczęstsze pytania

Identyfikator URI
Tytuł Wymagany Tytuł elementu.

Ciąg znaków

Zalecany rozmiar tekstu: maks. 50 znaków

obrazy plakatu, Wymagany

Jeśli podasz kilka obrazów, wyświetlimy tylko 1 z nich. Zalecany format obrazu to 16:9

Uwaga: jeśli w plakietce jest podany element, należy zapewnić bezpieczną odległość 24 dps od góry i dołu obrazu.

Więcej informacji znajdziesz w specyfikacji zdjęć.
Lokalizacja – kraj Wymagany Kraj, w którym odbywa się zakwaterowanie.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – miasto Wymagany Miasto, w którym odbywa się zakwaterowanie.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – wyświetlany adres Wymagany Adres obiektu zakwaterowania, który będzie wyświetlany użytkownikowi.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – adres Opcjonalny Adres (jeśli dotyczy) obiektu noclegowego.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – stan Opcjonalny Stan lub prowincja (jeśli ma zastosowanie), w których znajduje się obiekt zakwaterowania.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – kod pocztowy Opcjonalny Kod pocztowy (jeśli dotyczy) miejsca zakwaterowania.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – okolica Opcjonalny Okolica (jeśli dotyczy) zakwaterowania.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Odznaki Opcjonalny

Każda plakietka może zawierać dowolny tekst (maksymalnie 15 znaków) lub mały obraz.

Odznaka – tekst Opcjonalny

Tytuł plakietki

Uwaga: na plakietce musi znajdować się tekst lub obraz.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 15 znaków

Odznaka – obraz Opcjonalny

Mały obraz

specjalne wrażenia użytkownika, na przykład w postaci plakietki nałożonej na obrazie lub miniaturze filmu;

Uwaga: na plakietce musi znajdować się tekst lub obraz.

Więcej informacji znajdziesz w specyfikacji zdjęć.
Opis Opcjonalny

Jeden akapit tekstu opisujący daną encję.

Uwaga: użytkownik zobaczy albo opis, albo listę napisów, a nie oba te elementy.

Tekst otwarty

Zalecany rozmiar tekstu: 180 znaków

Lista napisów Opcjonalny

Maksymalnie 3 napisy, z których każdy stanowi pojedynczy wiersz tekstu.

Uwaga: użytkownik zobaczy albo opis, albo listę napisów, a nie oba te elementy.

Tekst otwarty

Zalecane rozmiary tekstu dla każdego z podtytułów: maks. 50 znaków

Okres dostępności – lokalny czas rozpoczęcia – sygnatura czasowa Opcjonalny Sygnatura czasowa epoki, w której obiekt noclegowy ma być otwarty/dostępny. Joda-Time Instant
AvailabilityTimeWindow – Localized Start Time – Timezone Opcjonalny Strefa czasowa, w której obiekt jest otwarty/dostępny. Joda-Time DateTimeZone
AvailabilityTimeWindow – Localized End Time – Timestamp Opcjonalny Sygnatura czasowa epoki, do której zgłoszenie ma być otwarte/dostępne. Joda-Time Instant
AvailabilityTimeWindow - Localized End Time - Timezone Opcjonalny Strefa czasowa, w której obiekt jest otwarty/dostępny. Joda-Time DateTimeZone
Ocena – wartość maksymalna Opcjonalny

Maksymalna wartość skali oceny.

Musi być podana, jeśli podana jest też aktualna wartość oceny.

Liczba >= 0,0
Ocena – bieżąca wartość Opcjonalny

Bieżąca wartość skali ocen.

Musi być podana, jeśli podana jest też maksymalna wartość oceny.

Liczba >= 0,0
Rating - Count (Liczba ocen) Opcjonalny

Liczba ocen obiektu zakwaterunkowego.

Uwaga: wypełnij to pole, jeśli aplikacja ma kontrolować sposób wyświetlania tego elementu użytkownikom. Podaj zwięzły ciąg znaków, który może być wyświetlany użytkownikowi. Jeśli np. liczba wynosi 1 000 000, rozważ użycie skrótu, np. 1 mln, aby nie została ona obcięta w mniejszych rozmiarach wyświetlacza.

Ciąg znaków
Rating - Count Value Opcjonalny

Liczba ocen obiektu zakwaterunkowego.

Uwaga: wypełnij to pole, jeśli nie chcesz samodzielnie obsługiwać logiki wyświetlania skrótów. Jeśli występują zarówno liczba, jak i wartość liczby, wyświetlimy użytkownikom liczbę.

Długie
Cena – CurrentPrice Wymagane warunkowo

bieżąca cena zakwaterowania;

Musi być podana, jeśli podano cenę z przekreśleniem.

Tekst otwarty
Cena – przekreślona cena Opcjonalny Pierwotna cena zakwaterowania, która jest przekreślona w interfejsie. Tekst otwarty
Objaśnienie dotyczące ceny Opcjonalny Podkreślenie ceny, aby poinformować o promocji, wydarzeniu lub rabacie dla członków programu (jeśli są dostępne).

Tekst otwarty

Zalecane rozmiary tekstu: poniżej 45 znaków (w przypadku zbyt długiego tekstu mogą być wyświetlane wielokropki)

StoreEntity

Obiekt StoreEntity reprezentuje pojedynczy sklep, który partnerzy deweloperzy chcą opublikować, np. popularną restaurację lub jadłodajnię, które są istotne dla podróży.

Atrybut Wymaganie Opis Format
obrazy plakatu, Wymagany Musisz podać co najmniej 1 obraz. Więcej informacji znajdziesz w specyfikacji zdjęć.
Identyfikator URI działania Wymagany

Precyzyjny link do elementu w aplikacji dostawcy.

Uwaga: do atrybucji możesz używać precyzyjnych linków. Zapoznaj się z odpowiedziami na najczęstsze pytania

Identyfikator URI
Tytuł Opcjonalny Nazwa sklepu.

Tekst otwarty

Zalecane rozmiary tekstu: poniżej 45 znaków (tekst, który jest za długi, może zawierać wielokropki)

Lokalizacja Opcjonalny Lokalizacja sklepu.

Tekst otwarty

Zalecane rozmiary tekstu: poniżej 45 znaków (tekst, który jest za długi, może zawierać wielokropki)

Objaśnienie Opcjonalny Ramka z informacją o promocji, wydarzeniu lub aktualizacji sklepu (jeśli jest dostępna).

Tekst otwarty

Zalecane rozmiary tekstu: poniżej 45 znaków (tekst, który jest za długi, może zawierać wielokropki)

Drobny druk w ramach objaśnienia Opcjonalny Drobny druk objaśnienia.

Tekst otwarty

Zalecane rozmiary tekstu: poniżej 45 znaków (tekst, który jest za długi, może zawierać wielokropki)

Opis Opcjonalny Opis sklepu.

Tekst otwarty

Zalecana długość tekstu: mniej niż 90 znaków (za długi tekst może być wyświetlany z wielokropem)

Kategoria Opcjonalny

Kategoria sklepu w kontekście miejsc serwujących jedzenie, np. kuchnia „francuska”, „amerykańska”, „ramen”, „wykwintna”.

Tekst otwarty

Zalecane rozmiary tekstu: poniżej 45 znaków (za długi tekst może zawierać wielokropki)

Ocena – wartość maksymalna Opcjonalny

Maksymalna wartość skali oceny.

Musi być podana, jeśli podana jest też aktualna wartość oceny.

Liczba >= 0,0
Ocena – bieżąca wartość Opcjonalny

Bieżąca wartość skali ocen.

Musi być podana, jeśli podana jest też maksymalna wartość oceny.

Liczba >= 0,0
Rating - Count (Liczba ocen) Opcjonalny

Liczba ocen obiektu zakwaterunkowego.

Uwaga: wypełnij to pole, jeśli aplikacja ma kontrolować sposób wyświetlania tego elementu użytkownikom. Podaj zwięzły ciąg znaków, który może być wyświetlany użytkownikowi. Jeśli np. liczba wynosi 1 000 000, rozważ użycie skrótu, np. 1 mln, aby nie została ona obcięta w mniejszych rozmiarach wyświetlacza.

Ciąg znaków
Rating - Count Value Opcjonalny

Liczba ocen obiektu zakwaterunkowego.

Uwaga: wypełnij to pole, jeśli nie chcesz samodzielnie obsługiwać logiki wyświetlania skrótów. Jeśli występują zarówno liczba, jak i wartość liczby, wyświetlimy użytkownikom liczbę.

Długie

PointOfInterestEntity

Atrybut Wymaganie Opis Format
Identyfikator URI działania Wymagany

Precyzyjny link do elementu w aplikacji dostawcy.

Uwaga: do atrybucji możesz używać precyzyjnych linków. Zapoznaj się z odpowiedziami na najczęstsze pytania

Identyfikator URI
Tytuł Wymagany Tytuł elementu.

Ciąg znaków

Zalecany rozmiar tekstu: maks. 50 znaków

obrazy plakatu, Wymagany

Jeśli podasz kilka obrazów, wyświetlimy tylko 1 z nich. Zalecany format obrazu to 16:9

Uwaga: zdecydowanie zalecamy dodanie obrazu. Jeśli w ramach pakietu jest dołączona plakietka, należy zapewnić bezpieczną odległość 24 dps od góry i dołu obrazu.

Więcej informacji znajdziesz w specyfikacji zdjęć.
Lokalizacja – kraj Wymagany Kraj, w którym znajduje się punkt zainteresowania.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – miasto Wymagany Miasto, w którym znajduje się ciekawe miejsce.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – wyświetlany adres Wymagany Adres punktu zainteresowania, który będzie wyświetlany użytkownikowi.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – adres Opcjonalny Adres (jeśli dotyczy) ciekawego miejsca.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – stan Opcjonalny Stan lub prowincja (jeśli ma zastosowanie), w których znajduje się punkt zainteresowania.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – kod pocztowy Opcjonalny Kod pocztowy (jeśli występuje) ciekawego miejsca.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – okolica Opcjonalny Okolica (jeśli występuje) ciekawego miejsca.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Okres dostępności – lokalny czas rozpoczęcia – sygnatura czasowa Opcjonalny Sygnatura czasowa ery, w której punkt zainteresowania ma być otwarty/dostępny. Joda-Time Instant
AvailabilityTimeWindow – Localized Start Time – Timezone Opcjonalny Strefa czasowa, w której punkt zainteresowania ma być otwarty/dostępny. Joda-Time DateTimeZone
AvailabilityTimeWindow – Localized End Time – Timestamp Opcjonalny Sygnatura czasowa ery, do której punkt zainteresowania ma być otwarty/dostępny. Joda-Time Instant
AvailabilityTimeWindow - Localized End Time - Timezone Opcjonalny Strefa czasowa, w której punkt zainteresowania ma być otwarty/dostępny. Joda-Time DateTimeZone
Odznaki Opcjonalny

Każda plakietka może zawierać dowolny tekst (maksymalnie 15 znaków) lub mały obraz.

Odznaka – tekst Opcjonalny

Tytuł plakietki

Uwaga: na plakietce musi znajdować się tekst lub obraz.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 15 znaków

Odznaka – obraz Opcjonalny

Mały obraz

specjalne wrażenia użytkownika, na przykład w postaci plakietki nałożonej na obrazie lub miniaturze filmu;

Uwaga: na plakietce musi znajdować się tekst lub obraz.

Więcej informacji znajdziesz w specyfikacji zdjęć.
Opis Opcjonalny

Jeden akapit tekstu opisujący daną encję.

Uwaga: użytkownik zobaczy albo opis, albo listę napisów, a nie oba te elementy.

Tekst otwarty

Zalecany rozmiar tekstu: 180 znaków

Lista napisów Opcjonalny

Maksymalnie 3 napisy, z których każdy stanowi pojedynczy wiersz tekstu.

Uwaga: użytkownik zobaczy albo opis, albo listę napisów, a nie oba te elementy.

Tekst otwarty

Zalecane rozmiary tekstu dla każdego z podtytułów: maks. 50 znaków

Ocena – wartość maksymalna Opcjonalny

Maksymalna wartość skali oceny.

Musi być podana, jeśli podana jest też aktualna wartość oceny.

Liczba >= 0,0
Ocena – bieżąca wartość Opcjonalny

Bieżąca wartość skali ocen.

Musi być podana, jeśli podana jest też maksymalna wartość oceny.

Liczba >= 0,0
Rating - Count (Liczba ocen) Opcjonalny

Liczba ocen ciekawego miejsca.

Uwaga: wypełnij to pole, jeśli aplikacja ma kontrolować sposób wyświetlania tego elementu użytkownikom. Podaj zwięzły ciąg znaków, który może być wyświetlany użytkownikowi. Jeśli np. liczba wynosi 1 000 000, rozważ użycie skrótu, np. 1 mln, aby nie została ona obcięta w mniejszych rozmiarach wyświetlacza.

Ciąg znaków
Rating - Count Value Opcjonalny

Liczba ocen ciekawego miejsca.

Uwaga: wypełnij to pole, jeśli nie chcesz samodzielnie obsługiwać logiki wyświetlania skrótów. Jeśli występują zarówno liczba, jak i wartość liczby, wyświetlimy użytkownikom liczbę.

Długie
Cena – CurrentPrice Wymagane warunkowo

Aktualna cena biletów lub kart wstępu do atrakcji.

Musi być podana, jeśli podano cenę przekreśloną.

Tekst otwarty
Cena – przekreślona cena Opcjonalny Pierwotna cena biletów/kart wstępu do atrakcji. Tekst otwarty
Objaśnienie dotyczące ceny Opcjonalny Podkreślenie ceny, aby poinformować o promocji, wydarzeniu lub rabacie dla członków programu (jeśli są dostępne).

Tekst otwarty

Zalecane rozmiary tekstu: poniżej 45 znaków (zbyt długi tekst może zawierać wielokropki)

Kategorie treści Opcjonalny Opisz kategorię treści w podmiocie.

Lista typów wyliczeniowych spełniających wymagania

  • TYPE_TRAVEL_AND_LOCAL
  • TYPE_MOVIES_AND_TV_SHOWS (np. teatr)
  • TYPE_MEDICAL (np. szpital)
  • TYPE_EDUCATION (np. szkoła)
  • TYPE_SPORTS (np. stadion)

Więcej informacji znajdziesz w sekcji Kategoria treści.

RestaurantReservationEntity

Atrybut Wymaganie Opis Format
Identyfikator URI działania Wymagany

Precyzyjny link do elementu w aplikacji dostawcy.

Uwaga: do atrybucji możesz używać precyzyjnych linków. Zapoznaj się z odpowiedziami na najczęstsze pytania

Identyfikator URI
Tytuł Wymagany Tytuł elementu.

Ciąg znaków

Zalecany rozmiar tekstu: maksymalnie 50 znaków

Lokalny czas rozpoczęcia rezerwacji – sygnatura czasowa Wymagany Sygnatura czasowa epoki, w której ma się rozpocząć rezerwacja. Joda-Time Instant
Lokalny czas rozpoczęcia rezerwacji – strefa czasowa Wymagany Strefa czasowa, w której ma się rozpocząć rezerwacja. Joda-Time DateTimeZone
Lokalizacja – kraj Wymagany Kraj, w którym znajduje się restauracja.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – miasto Wymagany Miasto, w którym znajduje się restauracja.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – wyświetlany adres Wymagany Adres restauracji, który będzie wyświetlany użytkownikowi.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – adres Opcjonalny Adres restauracji (jeśli dotyczy).

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – stan Opcjonalny Województwo (jeśli występuje), w którym znajduje się restauracja.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – kod pocztowy Opcjonalny Kod pocztowy (jeśli dotyczy) restauracji.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – okolica Opcjonalny Okolica (jeśli dotyczy) restauracji.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

obrazy plakatu, Opcjonalny Jeśli podasz kilka obrazów, wyświetlimy tylko 1 z nich. Zalecany format obrazu to 16:9 Więcej informacji znajdziesz w specyfikacji zdjęć.
Opis Opcjonalny

Jeden akapit tekstu opisujący daną encję.

Uwaga: użytkownik zobaczy albo opis, albo listę napisów, a nie oba te elementy.

Tekst otwarty

Zalecany rozmiar tekstu: 180 znaków

Lista napisów Opcjonalny

Maksymalnie 3 napisy, z których każdy stanowi pojedynczy wiersz tekstu.

Uwaga: użytkownik zobaczy albo opis, albo listę napisów, a nie oba te elementy.

Tekst otwarty

Zalecane rozmiary tekstu dla każdego z podtytułów: maks. 50 znaków

Wielkość tabeli Opcjonalny Liczba osób w grupie rezerwacji Liczba całkowita > 0

EventReservationEntity

Atrybut Wymaganie Opis Format
Identyfikator URI działania Wymagany

Precyzyjny link do elementu w aplikacji dostawcy.

Uwaga: do atrybucji możesz używać precyzyjnych linków. Zapoznaj się z odpowiedziami na najczęstsze pytania

Identyfikator URI
Tytuł Wymagany Tytuł elementu.

Ciąg znaków

Zalecany rozmiar tekstu: maks. 50 znaków

Zlokalizowany czas rozpoczęcia – sygnatura czasowa Wymagany

Sygnatura czasowa ery, w której ma się rozpocząć zdarzenie.

Joda-Time Instant
Lokalny czas rozpoczęcia – strefa czasowa Wymagany

Strefa czasowa, w której ma się rozpocząć wydarzenie.

Joda-Time DateTimeZone
Tryb zdarzenia Wymagany

Pole, w którym określasz, czy wydarzenie będzie wirtualne, stacjonarne czy obie te formy.

Typ enumeracji: VIRTUAL, IN_PERSON lub HYBRID
Lokalizacja – kraj Wymagane warunkowo

Kraj, w którym odbywa się wydarzenie.

Uwaga: ta opcja jest wymagana w przypadku zdarzeń o typie IN_PERSON lub HYBRID.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – miasto Wymagane warunkowo

Miasto, w którym odbywa się wydarzenie.

Uwaga: ta opcja jest wymagana w przypadku zdarzeń o typie IN_PERSON lub HYBRID.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – wyświetlany adres Wymagane warunkowo

Adres lub nazwa miejsca, w którym odbędzie się wydarzenie, które powinno być wyświetlane użytkownikowi.

Uwaga: ta opcja jest wymagana w przypadku zdarzeń o typie IN_PERSON lub HYBRID.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – adres Opcjonalny Adres (ulica i numer domu) miejsca, w którym odbywa się wydarzenie.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – stan Opcjonalny Stan lub prowincja (jeśli ma zastosowanie), w których odbywa się wydarzenie.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – kod pocztowy Opcjonalny Kod pocztowy (jeśli występuje) miejsca, w którym odbywa się wydarzenie.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – okolica Opcjonalny Dzielnica (jeśli dotyczy), w której odbywa się wydarzenie.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

obrazy plakatu, Opcjonalny

Jeśli podasz kilka obrazów, wyświetlimy tylko 1 z nich. Zalecany format obrazu to 16:9

Uwaga: zdecydowanie zalecamy dodanie obrazu. Jeśli w ramach projektu znajduje się plakietka, należy zapewnić bezpieczną odległość 24 dp od góry i dołu obrazu.

Więcej informacji znajdziesz w specyfikacji zdjęć.
Zlokalizowany czas zakończenia – sygnatura czasowa Opcjonalny

Znak czasu epoki, w którym ma się zakończyć zdarzenie.

Joda-Time Instant
Lokalny czas zakończenia – strefa czasowa Opcjonalny

Strefa czasowa, w której ma się zakończyć wydarzenie.

Joda-Time DateTimeZone
Dostawca usług – nazwa Opcjonalny

Nazwa dostawcy usług.

Uwaga: dostawca usługi musi podać tekst lub obraz.

tekst swobodny, Na przykład nazwa organizatora wydarzenia lub nazwa wycieczki
Dostawca usług – obraz Opcjonalny

Logo lub obraz dostawcy usługi.

Uwaga: dostawca usługi musi podać tekst lub obraz.

Więcej informacji znajdziesz w specyfikacji zdjęć.
Opis Opcjonalny

Jeden akapit tekstu opisujący daną encję.

Uwaga: użytkownik zobaczy albo opis, albo listę napisów, a nie oba te elementy.

Tekst otwarty

Zalecany rozmiar tekstu: 180 znaków

Lista napisów Opcjonalny

Maksymalnie 3 napisy, z których każdy stanowi pojedynczy wiersz tekstu.

Uwaga: użytkownik zobaczy albo opis, albo listę napisów, a nie oba te elementy.

Tekst otwarty

Zalecane rozmiary tekstu dla każdego z podtytułów: maks. 50 znaków

Odznaki Opcjonalny

Każda plakietka może zawierać dowolny tekst (maksymalnie 15 znaków) lub mały obraz.

Odznaka – tekst Opcjonalny

Tytuł plakietki

Uwaga: na plakietce musi znajdować się tekst lub obraz.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 15 znaków

Odznaka – obraz Opcjonalny

Mały obraz

specjalne wrażenia użytkownika, na przykład w postaci plakietki nałożonej na obrazie lub miniaturze filmu;

Uwaga: na plakietce musi znajdować się tekst lub obraz.

Więcej informacji znajdziesz w specyfikacji zdjęć.
Identyfikator rezerwacji Opcjonalny Identyfikator rezerwacji wydarzenia. Tekst otwarty
Cena – CurrentPrice Wymagane warunkowo

Aktualna cena biletu na wydarzenie.

Musi być podana, jeśli podano cenę przekreśloną.

Tekst otwarty
Cena – przekreślona cena Opcjonalny Pierwotna cena biletu/karnetu na wydarzenie. Tekst otwarty
Objaśnienie dotyczące ceny Opcjonalny Podkreślenie ceny, aby poinformować o promocji, wydarzeniu lub rabacie dla członków programu (jeśli są dostępne).

Tekst otwarty

Zalecane rozmiary tekstu: poniżej 45 znaków (w przypadku zbyt długiego tekstu mogą być wyświetlane wielokropki)

Ocena – wartość maksymalna Opcjonalny

Maksymalna wartość skali oceny.

Musi być podana, jeśli podana jest też aktualna wartość oceny.

Liczba >= 0,0
Ocena – bieżąca wartość Opcjonalny

Bieżąca wartość skali ocen.

Musi być podana, jeśli podana jest też maksymalna wartość oceny.

Liczba >= 0,0
Rating - Count (Liczba ocen) Opcjonalny

Liczba ocen zdarzenia.

Uwaga: wypełnij to pole, jeśli aplikacja ma kontrolować sposób wyświetlania tego elementu użytkownikom. Podaj zwięzły ciąg znaków, który może być wyświetlany użytkownikowi. Jeśli np. liczba wynosi 1 000 000, rozważ użycie skrótu, np. 1 mln, aby nie została ona obcięta w mniejszych rozmiarach wyświetlacza.

Ciąg znaków
Rating - Count Value Opcjonalny

Liczba ocen zdarzenia.

Uwaga: wypełnij to pole, jeśli nie chcesz samodzielnie obsługiwać logiki wyświetlania skrótów. Jeśli występują zarówno liczba, jak i wartość liczby, wyświetlimy użytkownikom liczbę.

Długie
Kategorie treści Opcjonalny Opisz kategorię treści w podmiocie.

Lista typów wyliczeniowych spełniających wymagania

  • TYPE_MOVIES_AND_TV_SHOWS (np. Cinema)
  • TYPE_DIGITAL_GAMES (np. e-sport)
  • TYPE_MUSIC (na przykład koncert)
  • TYPE_TRAVEL_AND_LOCAL (np. wycieczka, festiwal)
  • TYPE_HEALTH_AND_FITENESS (np. zajęcia z jogi)
  • TYPE_EDUCATION (np. Class)
  • TYPE_SPORTS (np. gra Piłka nożna)
  • TYPE_DATING (np. spotkanie)

Więcej informacji znajdziesz w sekcji Kategoria treści.

LodgingReservationEntity

Atrybut Wymaganie Opis Format
Identyfikator URI działania Wymagany

Precyzyjny link do elementu w aplikacji dostawcy.

Uwaga: do atrybucji możesz używać precyzyjnych linków. Zapoznaj się z odpowiedziami na najczęstsze pytania

Identyfikator URI
Tytuł Wymagany Tytuł elementu.

tekst swobodny, Na przykład „Twój pobyt od 12 grudnia”

Zalecany rozmiar tekstu: maks. 50 znaków

Lokalny czas zameldowania – sygnatura czasowa Wymagany Sygnatura czasowa epoki, która reprezentuje czas zameldowania w rezerwacji. Joda-Time Instant
Zlokalizowany czas zameldowania – strefa czasowa Wymagany Strefa czasowa, w której występuje godzina zameldowania dla rezerwacji. Joda-Time Instant
Lokalny czas wymeldowania – sygnatura czasowa Wymagany Sygnatura czasowa epoki, która reprezentuje czas wymeldowania z rezerwacji. Joda-Time Instant
Zlokalizowany czas wymeldowania – strefa czasowa Wymagany Strefa czasowa, w której występuje czas wymeldowania w rezerwacji. Joda-Time DateTimeZone
Lokalizacja – kraj Wymagany Kraj, w którym znajduje się obiekt zakwaterowania.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – miasto Wymagany Miasto, w którym znajduje się obiekt zakwaterowania.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – wyświetlany adres Wymagany Adres obiektu zakwaterowania, który będzie wyświetlany użytkownikowi.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – adres Opcjonalny Adres (jeśli dotyczy) obiektu noclegowego.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – stan Opcjonalny Stan lub prowincja (jeśli ma zastosowanie), w których znajduje się obiekt zakwaterowania.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – kod pocztowy Opcjonalny Kod pocztowy (jeśli dotyczy) miejsca zakwaterowania.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Lokalizacja – okolica Opcjonalny Okolica (jeśli dotyczy) zakwaterowania.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

obrazy plakatu, Opcjonalny

Jeśli podasz kilka obrazów, wyświetlimy tylko 1 z nich. Zalecany format obrazu to 16:9

Uwaga: jeśli dodasz plakietkę, pamiętaj o pozostawieniu 24 dps wolnego miejsca u góry i u dołu obrazu.

Więcej informacji znajdziesz w specyfikacji zdjęć.
Opis Opcjonalny

Jeden akapit tekstu opisujący daną encję.

Uwaga: użytkownik zobaczy albo opis, albo listę napisów, a nie oba te elementy.

Tekst otwarty

Zalecany rozmiar tekstu: 180 znaków

Lista napisów Opcjonalny

Maksymalnie 3 napisy, z których każdy stanowi pojedynczy wiersz tekstu.

Uwaga: użytkownik zobaczy albo opis, albo listę napisów, a nie oba te elementy.

Tekst otwarty

Zalecane rozmiary tekstu dla każdego z podtytułów: maks. 50 znaków

Identyfikator rezerwacji Opcjonalny Identyfikator rezerwacji zakwaterowania. Tekst otwarty
Ocena – wartość maksymalna Opcjonalny

Maksymalna wartość skali oceny.

Musi być podana, jeśli podana jest też aktualna wartość oceny.

Liczba >= 0,0
Ocena – bieżąca wartość Opcjonalny

Bieżąca wartość skali ocen.

Musi być podana, jeśli podana jest też maksymalna wartość oceny.

Liczba >= 0,0
Rating - Count (Liczba ocen) Opcjonalny

Liczba ocen obiektu zakwaterunkowego.

Uwaga: wypełnij to pole, jeśli aplikacja ma kontrolować sposób wyświetlania tego elementu użytkownikom. Podaj zwięzły ciąg znaków, który może być wyświetlany użytkownikowi. Jeśli np. liczba wynosi 1 000 000, rozważ użycie skrótu, np. 1 mln, aby nie została ona obcięta w mniejszych rozmiarach wyświetlacza.

Ciąg znaków
Rating - Count Value Opcjonalny

Liczba ocen obiektu zakwaterunkowego.

Uwaga: wypełnij to pole, jeśli nie chcesz samodzielnie obsługiwać logiki wyświetlania skrótów. Jeśli występują zarówno liczba, jak i wartość liczby, wyświetlimy użytkownikom liczbę.

Długie
Cena – CurrentPrice Wymagane warunkowo

bieżąca cena zakwaterowania;

Musi być podana, jeśli podano cenę z przekreśleniem.

Tekst otwarty
Cena – przekreślona cena Opcjonalny Pierwotna cena zakwaterowania, która jest przekreślona w interfejsie. Tekst otwarty
Objaśnienie dotyczące ceny Opcjonalny Podkreślenie ceny, aby poinformować o promocji, wydarzeniu lub rabacie dla członków programu (jeśli są dostępne).

Tekst otwarty

Zalecane rozmiary tekstu: poniżej 45 znaków (w przypadku zbyt długiego tekstu mogą być wyświetlane wielokropki)

TransportationReservationEntity

Atrybut Wymaganie Opis Format
Identyfikator URI działania Wymagany

Precyzyjny link do elementu w aplikacji dostawcy.

Uwaga: do atrybucji możesz używać precyzyjnych linków. Zapoznaj się z odpowiedziami na najczęstsze pytania

Identyfikator URI
Tytuł Wymagany Tytuł elementu.

tekst swobodny, np. „SFO to SAN”.

Zalecany rozmiar tekstu: maks. 50 znaków

Typ transportu Wymagany Środek/typ transportu dla rezerwacji. Enum: FLIGHT, TRAIN, BUS lub FERRY
Lokalny czas wylotu – sygnatura czasowa Wymagany Sygnatura czasowa epoki, która reprezentuje czas wyjazdu. Joda-Time Instant
Lokalny czas wylotu – strefa czasowa Wymagany Strefa czasowa godziny wyjazdu. Joda-Time DateTimeZone
Czas przyjazdu w formacie lokalnym – sygnatura czasowa Wymagany Sygnatura czasowa epoki, która reprezentuje czas przybycia. Joda-Time Instant
Lokalny czas przybycia – strefa czasowa Wymagany Strefa czasowa godziny przyjazdu. Joda-Time DateTimeZone
Numer transportowy Wymagany Numer lotu, numer autobusu, numer pociągu lub numer promu/statku wycieczkowego. Tekst otwarty
Lokalny czas wejścia na pokład – sygnatura czasowa Wymagany sygnatura czasowa epoki, która reprezentuje czas wsiadania (jeśli dotyczy); Joda-Time Instant
Lokalny czas wejścia na pokład – strefa czasowa Wymagany Strefa czasowa godziny wejścia na pokład (jeśli dotyczy) Joda-Time DateTimeZone
Miejsce wylotu – kraj Opcjonalny Kraj wyjazdu.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Miejsce wylotu – miasto Opcjonalny Miasto wyjazdu.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Miejsce wyjazdu – adres wyświetlania Opcjonalny Miejsce wylotu, które będzie wyświetlane użytkownikowi.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Miejsce wylotu – adres Opcjonalny Adres miejsca wylotu (jeśli dotyczy).

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Miejsce wylotu – stan Opcjonalny Województwo (jeśli występuje) miejsca wylotu.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Miejsce wylotu – kod pocztowy Opcjonalny Kod pocztowy (jeśli dotyczy) miejsca wylotu.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Miejsce wylotu – dzielnica Opcjonalny Okolica (jeśli dotyczy) miejsca wylotu.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Miejsce docelowe – kraj Opcjonalny Kraj docelowy.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Miejsce docelowe – miasto Opcjonalny Miasto przylotu.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Miejsce docelowe – adres wyświetlany Opcjonalny Miejsce docelowe, które będzie wyświetlane użytkownikowi.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Miejsce przybycia – adres Opcjonalny Adres (jeśli dotyczy) miejsca docelowego.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Miejsce docelowe – stan Opcjonalny Województwo (jeśli dotyczy) miejsca przylotu.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Miejsce docelowe – kod pocztowy Opcjonalny Kod pocztowy (jeśli dotyczy) miejsca docelowego.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Miejsce docelowe – dzielnica Opcjonalny Okolica (jeśli dotyczy) miejsca docelowego.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Dostawca usług – nazwa Opcjonalny

Nazwa dostawcy usług.

Uwaga: dostawca usługi musi podać tekst lub obraz.

tekst swobodny, Na przykład nazwa linii lotniczej
Dostawca usług – obraz Opcjonalny

Logo lub obraz dostawcy usługi.

Uwaga: dostawca usługi musi podać tekst lub obraz.

Więcej informacji znajdziesz w specyfikacji zdjęć.
obrazy plakatu, Opcjonalny

Jeśli podasz kilka obrazów, wyświetlimy tylko 1 z nich. Zalecany format obrazu to 16:9

Więcej informacji znajdziesz w specyfikacji zdjęć.
Opis Opcjonalny

Jeden akapit tekstu opisujący daną encję.

Uwaga: użytkownik zobaczy albo opis, albo listę napisów, a nie oba te elementy.

Tekst otwarty

Zalecany rozmiar tekstu: 180 znaków

Lista napisów Opcjonalny

Maksymalnie 3 napisy, z których każdy stanowi pojedynczy wiersz tekstu.

Uwaga: użytkownik zobaczy albo opis, albo listę napisów, a nie oba te elementy.

Tekst otwarty

Zalecane rozmiary tekstu dla każdego z podtytułów: maks. 50 znaków

Identyfikator rezerwacji Opcjonalny Identyfikator rezerwacji transportu. Tekst otwarty
Cena – CurrentPrice Wymagane warunkowo

Obecna cena rezerwacji.

Musi być podana, jeśli podano cenę z przekreśleniem.

Tekst otwarty
Cena – przekreślona cena Opcjonalny Pierwotna cena rezerwacji, która jest przekreślona w interfejsie użytkownika. Tekst otwarty
Objaśnienie dotyczące ceny Opcjonalny Podkreślenie ceny, aby poinformować o promocji, wydarzeniu lub rabacie dla członków programu (jeśli są dostępne).

Tekst otwarty

Zalecane rozmiary tekstu: poniżej 45 znaków (w przypadku zbyt długiego tekstu mogą być wyświetlane wielokropki)

VehicleRentalReservationEntity

Atrybut Wymaganie Opis Format
Identyfikator URI działania Wymagany

Precyzyjny link do elementu w aplikacji dostawcy.

Uwaga: do atrybucji możesz używać precyzyjnych linków. Zapoznaj się z odpowiedziami na najczęstsze pytania

Identyfikator URI
Tytuł Wymagany Tytuł elementu.

tekst swobodny, Przykład: „Avis Union Square SF”.

Zalecany rozmiar tekstu: maks. 50 znaków

Lokalny czas odbioru – sygnatura czasowa Wymagany Sygnatura czasowa epoki, która reprezentuje czas odbioru w rezerwacji. Joda-Time Instant
Lokalny czas odbioru – strefa czasowa Wymagany Strefa czasowa godziny odbioru w rezerwacji. Joda-Time DateTimeZone
Lokalny czas powrotu – sygnatura czasowa Opcjonalny Sygnatura czasowa epoki, która reprezentuje czas wymeldowania z rezerwacji. Joda-Time Instant
Lokalny czas powrotu – strefa czasowa Opcjonalny Strefa czasowa godziny wymeldowania w rezerwacji. Joda-Time DateTimeZone
Adres odbioru – kraj Opcjonalny Kraj miejsca odbioru.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Adres odbioru – miasto Opcjonalny Miasto, w którym znajduje się miejsce odbioru.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Adres odbioru – wyświetlany adres Opcjonalny Miejsce odbioru, które będzie wyświetlane użytkownikowi.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Adres odbioru – adres ulicy Opcjonalny Adres (jeśli dotyczy) miejsca odbioru.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Adres odbioru – stan Opcjonalny Województwo (jeśli występuje) miejsca odbioru.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Adres odbioru – kod pocztowy Opcjonalny Kod pocztowy (jeśli dotyczy) miejsca odbioru.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Adres odbioru – dzielnica Opcjonalny Okolica (jeśli dotyczy) miejsca odbioru.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Adres zwrotny – kraj Opcjonalny Kraj, w którym znajduje się miejsce zwrotu.

Tekst otwarty

Zalecany rozmiar tekstu: maks. 20 znaków

Adres zwrotny – miasto Opcjonalny Miasto, w którym znajduje się miejsce zwrotu.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Adres zwrotny – adres wyświetlany Opcjonalny Miejsce docelowego zwrotu, które będzie wyświetlane użytkownikowi.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Adres zwrotny – adres ulicy Opcjonalny Adres (jeśli dotyczy) miejsca zwrotu.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Adres zwrotny – stan Opcjonalny Stan lub prowincja (jeśli ma zastosowanie) miejsca zwrotu.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Adres zwrotny – kod pocztowy Opcjonalny Kod pocztowy (jeśli dotyczy) miejsca zwrotu.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Adres zwrotny – dzielnica Opcjonalny Okolica (jeśli dotyczy) miejsca zwrotu.

Tekst otwarty

Zalecany rozmiar tekstu: maksymalnie 20 znaków

Dostawca usług – nazwa Opcjonalny

Nazwa dostawcy usług.

Uwaga: dostawca usługi musi podać tekst lub obraz.

tekst swobodny, Przykład: „Wypożyczalnia samochodów Avis”
Dostawca usług – obraz Opcjonalny

Logo lub obraz dostawcy usługi.

Uwaga: dostawca usługi musi podać tekst lub obraz.

Więcej informacji znajdziesz w specyfikacji zdjęć.
obrazy plakatu, Opcjonalny

Jeśli podasz kilka obrazów, wyświetlimy tylko 1 z nich. Zalecany format obrazu to 16:9

Więcej informacji znajdziesz w specyfikacji zdjęć.
Opis Opcjonalny

Jeden akapit tekstu opisujący daną encję.

Uwaga: użytkownik zobaczy albo opis, albo listę napisów, a nie oba te elementy.

Tekst otwarty

Zalecany rozmiar tekstu: 180 znaków

Lista napisów Opcjonalny

Maksymalnie 3 napisy, z których każdy stanowi pojedynczy wiersz tekstu.

Uwaga: użytkownik zobaczy albo opis, albo listę napisów, a nie oba te elementy.

Tekst otwarty

Zalecane rozmiary tekstu dla każdego z podtytułów: maks. 50 znaków

Identyfikator potwierdzenia Opcjonalny Identyfikator potwierdzenia rezerwacji wynajmu pojazdu. Tekst otwarty
Cena – CurrentPrice Wymagane warunkowo

Obecna cena rezerwacji.

Musi być podana, jeśli podano cenę z przekreśleniem.

Tekst otwarty
Cena – przekreślona cena Opcjonalny Pierwotna cena rezerwacji, która jest przekreślona w interfejsie użytkownika. Tekst otwarty
Objaśnienie dotyczące ceny Opcjonalny Podkreślenie ceny, aby poinformować o promocji, wydarzeniu lub rabacie dla członków programu (jeśli są dostępne).

Tekst otwarty

Zalecane rozmiary tekstu: poniżej 45 znaków (w przypadku zbyt długiego tekstu mogą być wyświetlane wielokropki)

Specyfikacja obrazu

Wymagania dotyczące komponentów z obrazem:

Format obrazu Minimalna liczba pikseli Zalecany rozmiar w pikselach

Kwadrat (1 x 1)

Preferowany

300 x 300 1200 x 1200
Orientacja pozioma (1,91 x 1) 600 x 314 1200 x 628
Orientacja pionowa (4 x 5) 480 x 600 960 x 1200

Obrazy muszą być hostowane w publicznych sieciach CDN, aby Google mogło do nich uzyskać dostęp.

Formaty plików

PNG, JPG, statyczny GIF, WebP

Maksymalny rozmiar pliku

5120 KB

Dodatkowe rekomendacje

  • Bezpieczny obszar obrazu: ważne treści umieść w środkowych 80% obrazu.
  • Użyj przezroczystego tła, aby obraz był prawidłowo wyświetlany w ustawieniach motywu ciemnego i jasnego.

Kategoria treści

Kategoria treści umożliwia aplikacjom publikowanie treści należących do wielu kategorii. Dzięki temu treści są przypisywane do niektórych z wstępnie zdefiniowanych kategorii, takich jak:

  • TYPE_EDUCATION
  • TYPE_SPORTS
  • TYPE_MOVIES_AND_TV_SHOWS
  • TYPE_BOOKS
  • TYPE_AUDIOBOOKS
  • TYPE_MUSIC
  • TYPE_DIGITAL_GAMES
  • TYPE_TRAVEL_AND_LOCAL
  • TYPE_HOME_AND_AUTO
  • TYPE_BUSINESS
  • TYPE_NEWS
  • TYPE_FOOD_AND_DRINK
  • TYPE_SHOPPING
  • TYPE_HEALTH_AND_FITENESS
  • TYPE_MEDICAL
  • TYPE_PARENTING
  • TYPE_DATING

Obrazy muszą być hostowane w publicznych sieciach CDN, aby Google mogło do nich uzyskać dostęp.

Wskazówki dotyczące korzystania z kategorii treści

  1. Niektóre typy jednostek, np. ArticleEntity i GenericFeaturedEntity, mogą być używane w dowolnej kategorii treści. W przypadku innych elementów, takich jak EventEntity, EventReservationEntityPointOfInterestEntity, kwalifikuje się tylko podzbiór tych kategorii. Przed wypełnieniem listy sprawdź listę kategorii dostępnych dla danego typu elementu.
  2. W przypadku niektórych kategorii treści użyj konkretnego typu elementu zamiast kombinacji typu elementu Generic i typu ContentCategory:

  3. Pole ContentCategory jest opcjonalne i powinno być puste, jeśli treści nie należą do żadnej z wymienionych wcześniej kategorii.

  4. Jeśli podasz kilka kategorii treści, podaj je w kolejności od najbardziej do najmniej trafnych. Najtrafniejszą kategorię treści umieść na początku listy.

Krok 2. Podaj dane klastra

Zalecamy, aby zadanie publikowania treści było wykonywane w tle (np. za pomocą WorkManagera) i zaplanowane regularnie lub w zależności od zdarzenia (np. za każdym razem, gdy użytkownik otworzy aplikację lub doda coś do koszyka).

AppEngageTravelClient odpowiada za publikowanie klastrów.

Do publikowania klastrów w kliencie służą te interfejsy API:

  • isServiceAvailable
  • publishRecommendationClusters
  • publishFeaturedCluster
  • publishReservationCluster
  • publishContinueSearchCluster
  • publishUserAccountManagementRequest
  • updatePublishStatus
  • deleteRecommendationsClusters
  • deleteFeaturedCluster
  • deleteReservationCluster
  • deleteContinueSearchCluster
  • deleteUserManagementCluster
  • deleteClusters

isServiceAvailable

Ten interfejs API służy do sprawdzania, czy usługa jest dostępna do integracji i czy można wyświetlić treści na urządzeniu.

Kotlin

client.isServiceAvailable.addOnCompleteListener { task ->
    if (task.isSuccessful) {
        // Handle IPC call success
        if(task.result) {
          // Service is available on the device, proceed with content publish
          // calls.
        } else {
          // Service is not available, no further action is needed.
        }
    } else {
      // The IPC call itself fails, proceed with error handling logic here,
      // such as retry.
    }
}

Java

client.isServiceAvailable().addOnCompleteListener(task - > {
    if (task.isSuccessful()) {
        // Handle success
        if(task.getResult()) {
          // Service is available on the device, proceed with content publish
          // calls.
        } else {
          // Service is not available, no further action is needed.
        }
    } else {
      // The IPC call itself fails, proceed with error handling logic here,
      // such as retry.
    }
});

publishRecommendationClusters

Ten interfejs API służy do publikowania listy obiektów RecommendationCluster.

Kotlin

client.publishRecommendationClusters(
      PublishRecommendationClustersRequest.Builder()
        .addRecommendationCluster(
          RecommendationCluster.Builder()
            .addEntity(entity1)
            .addEntity(entity2)
            .setTitle("Top Picks For You")
            .build()
        )
        .build()
    )

Java

client.publishRecommendationClusters(
            new PublishRecommendationClustersRequest.Builder()
                .addRecommendationCluster(
                    new RecommendationCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .setTitle("Top Picks For You")
                        .build())
                .build());

Gdy usługa otrzyma żądanie, w ramach jednej transakcji wykona te działania:

  • Istniejące dane RecommendationCluster od partnera dewelopera zostaną usunięte.
  • Dane z zapytania są analizowane i przechowywane w zaktualizowanym klastrze rekomendacji.

W przypadku błędu cała prośba jest odrzucana, a obecny stan jest zachowany.

publishFeaturedCluster

Ten interfejs API służy do publikowania listy obiektów FeaturedCluster.

Kotlin

client.publishFeaturedCluster(
    PublishFeaturedClusterRequest.Builder()
      .setFeaturedCluster(
        FeaturedCluster.Builder()
          .addEntity(entity1)
          .addEntity(entity2)
          .build())
      .build())

Java

client.publishFeaturedCluster(
            new PublishFeaturedClustersRequest.Builder()
                .addFeaturedCluster(
                    new FeaturedCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .build())
                .build());

Gdy usługa otrzyma żądanie, w ramach jednej transakcji wykona te działania:

  • Istniejące dane FeaturedCluster od partnera dewelopera zostaną usunięte.
  • Dane z zapytania są analizowane i przechowywane w zaktualizowanym zbiorze polecanych.

W przypadku błędu cała prośba jest odrzucana, a obecny stan jest zachowany.

publishReservationCluster

Ten interfejs API służy do publikowania obiektu ReservationCluster.

Kotlin

client.publishReservationCluster(
    PublishReservationClusterRequest.Builder()
      .setReservationCluster(
        ReservationCluster.Builder()
          .addLodgingReservationEntity(lodgingReservationEntity)
          .addVehicleRentalReservationEntity(vehicleRentalReservationEntity)
          .addTransportationReservationEntity(transportationReservationEntity)
          .addEventReservationEntity(eventReservationEntity)
          .addRestaurantReservationEntity(restaurantReservationEntity)
          .build())
      .build())

Java

client.publishReservationCluster(
            new PublishReservationClusterRequest.Builder()
                .setReservationCluster(
                    new ReservationCluster.Builder()
                        .addLodgingReservationEntity(lodgingReservationEntity)
                        .addVehicleRentalReservationEntity(vehicleRentalReservationEntity)
                        .addTransportationReservationEntity(transportationReservationEntity)
                        .addEventReservationEntity(eventReservationEntity)
                        .addRestaurantReservationEntity(restaurantReservationEntity)
                        .build())
                .build());

Gdy usługa otrzyma żądanie, w ramach jednej transakcji zostaną wykonane te działania:

  • Istniejące dane ReservationCluster od partnera dewelopera zostaną usunięte.
  • Dane z żądania są analizowane i przechowywane w zaktualizowanym zbiorze Reservation.

W przypadku błędu cała prośba jest odrzucana, a obecny stan jest zachowany.

publishContinueSearchCluster

Ten interfejs API służy do publikowania listy obiektów ContinueSearchCluster.

Kotlin

client.publishContinueSearchCluster(
    PublishContinueSearchClusterRequest.Builder()
      .setContinueSearchCluster(
        ContinueSearchCluster.Builder()
          .addPointOfInterestEntity(entity1)
          .addPointOfInterestEntity(entity2)
          .build())
      .build())

Java

client.publishContinueSearchCluster(
            new PublishContinueSearchClusterRequest.Builder()
                .setContinueSearchCluster(
                    new ContinueSearchCluster.Builder()
                        .addPointOfInterestEntity(entity1)
                        .addPointOfInterestEntity(entity2)
                        .build())
                .build());

Gdy usługa otrzyma żądanie, w ramach jednej transakcji wykona te działania:

  • Istniejące dane ContinueSearchCluster od partnera dewelopera zostaną usunięte.
  • Dane z zapytania są analizowane i przechowywane w zaktualizowanym klastrze kontynuowania wyszukiwania.

W przypadku błędu cała prośba jest odrzucana, a obecny stan jest zachowany.

publishUserAccountManagementRequest

Ten interfejs API służy do publikowania karty logowania . Działanie logowania kieruje użytkowników na stronę logowania w aplikacji, aby aplikacja mogła publikować treści (lub udostępniać bardziej spersonalizowane treści).

Te metadane są częścią karty logowania:

Atrybut Wymaganie Opis
Identyfikator URI działania Wymagane Precyzyjny link do aplikacji Action (np. przekierowuje na stronę logowania do aplikacji)
Obraz Opcjonalnie – jeśli nie zostanie podany, należy podać tytuł.

Obraz na karcie

obrazy w formacie 16 x 9 o rozdzielczości 1264 x 712;

Tytuł Opcjonalnie – jeśli nie zostanie podany, należy podać obraz Tytuł na karcie
Tekst wezwania do działania Opcjonalny Tekst wezwania do działania (np. Zaloguj się)
Podtytuł Opcjonalny Opcjonalny napis na karcie

Kotlin

var SIGN_IN_CARD_ENTITY =
      SignInCardEntity.Builder()
          .addPosterImage(
              Image.Builder()
                  .setImageUri(Uri.parse("http://www.x.com/image.png"))
                  .setImageHeightInPixel(500)
                  .setImageWidthInPixel(500)
                  .build())
          .setActionText("Sign In")
          .setActionUri(Uri.parse("http://xx.com/signin"))
          .build()

client.publishUserAccountManagementRequest(
            PublishUserAccountManagementRequest.Builder()
                .setSignInCardEntity(SIGN_IN_CARD_ENTITY)
                .build());

Java

SignInCardEntity SIGN_IN_CARD_ENTITY =
      new SignInCardEntity.Builder()
          .addPosterImage(
              new Image.Builder()
                  .setImageUri(Uri.parse("http://www.x.com/image.png"))
                  .setImageHeightInPixel(500)
                  .setImageWidthInPixel(500)
                  .build())
          .setActionText("Sign In")
          .setActionUri(Uri.parse("http://xx.com/signin"))
          .build();

client.publishUserAccountManagementRequest(
            new PublishUserAccountManagementRequest.Builder()
                .setSignInCardEntity(SIGN_IN_CARD_ENTITY)
                .build());

Gdy usługa otrzyma żądanie, w ramach jednej transakcji wykona te działania:

  • Dotychczasowe dane UserAccountManagementCluster od partnera dewelopera zostaną usunięte.
  • Dane z żądania są analizowane i przechowywane w zaktualizowanym klastrze UserAccountManagementCluster.

W przypadku błędu cała prośba jest odrzucana, a obecny stan jest zachowany.

updatePublishStatus

Jeśli z jakiegokolwiek wewnętrznego powodu biznesowego żaden z tych klastrów nie został opublikowany, zdecydowanie zalecamy zaktualizowanie stanu publikacji za pomocą interfejsu updatePublishStatus API. Jest to ważne, ponieważ :

  • Podanie stanu we wszystkich scenariuszach, nawet gdy treści są opublikowane (STATUS = PUBLISHED), jest kluczowe dla wypełniania paneli, które używają tego stanu do wyświetlania informacji o stanie i innych danych dotyczących integracji.
  • Jeśli nie ma opublikowanych treści, ale integracja nie jest uszkodzona (STATUS = NOT_PUBLISHED), Google może nie uruchamiać alertów na panelach danych dotyczących zdrowia w aplikacji. Potwierdza, że treści nie są publikowane z powodu oczekiwanego stanu z punktu widzenia dostawcy.
  • Pomaga deweloperom udostępniać informacje o tym, kiedy dane są publikowane, a kiedy nie.
  • Google może używać kodów stanu, aby zachęcić użytkownika do wykonania określonych działań w aplikacji, dzięki którym będzie on mógł zobaczyć jej zawartość lub je pokonać.

Lista kodów stanu publikacji, które kwalifikują się do wyświetlania :

// Content is published
AppEngagePublishStatusCode.PUBLISHED,

// Content is not published as user is not signed in
AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN,

// Content is not published as user is not subscribed
AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SUBSCRIPTION,

// Content is not published as user location is ineligible
AppEngagePublishStatusCode.NOT_PUBLISHED_INELIGIBLE_LOCATION,

// Content is not published as there is no eligible content
AppEngagePublishStatusCode.NOT_PUBLISHED_NO_ELIGIBLE_CONTENT,

// Content is not published as the feature is disabled by the client
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_FEATURE_DISABLED_BY_CLIENT,

// Content is not published as the feature due to a client error
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_CLIENT_ERROR,

// Content is not published as the feature due to a service error
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_SERVICE_ERROR,

// Content is not published due to some other reason
// Reach out to engage-developers@ before using this enum.
AppEngagePublishStatusCode.NOT_PUBLISHED_OTHER

Jeśli treści nie są publikowane, ponieważ użytkownik nie jest zalogowany, Google zaleca opublikowanie karty logowania. Jeśli z jakiegokolwiek powodu dostawcy nie mogą opublikować karty logowania, zalecamy wywołanie interfejsu API updatePublishStatus z kodem stanu NOT_PUBLISHED_REQUIRES_SIGN_IN.

Kotlin

client.updatePublishStatus(
   PublishStatusRequest.Builder()
     .setStatusCode(AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN)
     .build())

Java

client.updatePublishStatus(
    new PublishStatusRequest.Builder()
        .setStatusCode(AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN)
        .build());

deleteRecommendationClusters

Ten interfejs API służy do usuwania treści z grup rekomendacji.

Kotlin

client.deleteRecommendationClusters()

Java

client.deleteRecommendationClusters();

Gdy usługa otrzyma prośbę, usunie istniejące dane z klastrów rekomendacji. W przypadku błędu cała prośba jest odrzucana, a istniejący stan jest zachowany.

deleteFeaturedCluster

Ten interfejs API służy do usuwania treści z wyróżnionego klastra.

Kotlin

client.deleteFeaturedCluster()

Java

client.deleteFeaturedCluster();

Gdy usługa otrzyma żądanie, usunie istniejące dane z wyróżnionego klastra. W przypadku błędu cała prośba jest odrzucana, a istniejący stan jest zachowany.

deleteReservationCluster

Ten interfejs API służy do usuwania treści z klastra rezerwacji.

Kotlin

client.deleteReservationCluster()

Java

client.deleteReservationCluster();

Gdy usługa otrzyma żądanie, usunie istniejące dane z klastra rezerwacji. W przypadku błędu cała prośba jest odrzucana, a istniejący stan jest zachowany.

deleteUserManagementCluster

Ten interfejs API służy do usuwania treści z klastra UserAccountManagement.

Kotlin

client.deleteUserManagementCluster()

Java

client.deleteUserManagementCluster();

Gdy usługa otrzyma żądanie, usunie istniejące dane z klastra UserAccountManagement. W przypadku błędu cała prośba jest odrzucana, a obecny stan jest zachowany.

deleteContinueSearchCluster

Ten interfejs API służy do usuwania treści z klastra kontynuowania wyszukiwania.

Kotlin

client.deleteContinueSearchCluster()

Java

client.deleteContinueSearchCluster();

Gdy usługa otrzyma żądanie, usunie istniejące dane z kontynuowanego klastra wyszukiwania. W przypadku błędu cała prośba jest odrzucana, a istniejący stan jest zachowany.

deleteClusters

Ten interfejs API służy do usuwania treści danego typu klastra.

Kotlin

client.deleteClusters(
    DeleteClustersRequest.Builder()
      .addClusterType(ClusterType.TYPE_RESERVATION)
      .addClusterType(ClusterType.TYPE_FEATURED)
      .addClusterType(ClusterType.TYPE_RECOMMENDATION)
      .addClusterType(ClusterType.TYPE_CONTINUE_SEARCH)
      .build())

Java

client.deleteClusters(
            new DeleteClustersRequest.Builder()
                .addClusterType(ClusterType.TYPE_RESERVATION)
                .addClusterType(ClusterType.TYPE_FEATURED)
                .addClusterType(ClusterType.TYPE_RECOMMENDATION)
                .addClusterType(ClusterType.TYPE_CONTINUE_SEARCH)
                .build());

Gdy usługa otrzyma żądanie, usunie istniejące dane ze wszystkich klastrów pasujących do określonych typów klastrów. Klienci mogą przekazywać jeden lub wiele typów klastrów. W przypadku błędu cała prośba jest odrzucana, a istniejący stan jest zachowany.

Obsługa błędów

Zdecydowanie zalecamy odsłuchanie wyniku zadania z interfejsów API do publikowania, aby móc podjąć dalsze działania w celu odzyskania i ponowniego przesłania zadania, które zostało wykonane prawidłowo.

Kotlin

client.publishRecommendationClusters(
        PublishRecommendationClustersRequest.Builder()
          .addRecommendationCluster(..)
          .build())
      .addOnCompleteListener { task ->
        if (task.isSuccessful) {
          // do something
        } else {
          val exception = task.exception
          if (exception is AppEngageException) {
            @AppEngageErrorCode val errorCode = exception.errorCode
            if (errorCode == AppEngageErrorCode.SERVICE_NOT_FOUND) {
              // do something
            }
          }
        }
      }

Java

client.publishRecommendationClusters(
              new PublishRecommendationClustersRequest.Builder()
                  .addRecommendationCluster(...)
                  .build())
          .addOnCompleteListener(
              task -> {
                if (task.isSuccessful()) {
                  // do something
                } else {
                  Exception exception = task.getException();
                  if (exception instanceof AppEngageException) {
                    @AppEngageErrorCode
                    int errorCode = ((AppEngageException) exception).getErrorCode();
                    if (errorCode == AppEngageErrorCode.SERVICE_NOT_FOUND) {
                      // do something
                    }
                  }
                }
              });

Błąd jest zwracany jako AppEngageException, a jego przyczyna jest podana w postaci kodu błędu.

Kod błędu Nazwa błędu Uwaga:
1 SERVICE_NOT_FOUND Usługa jest niedostępna na danym urządzeniu.
2 SERVICE_NOT_AVAILABLE Usługa jest dostępna na danym urządzeniu, ale nie jest dostępna w momencie połączenia (na przykład jest wyraźnie wyłączona).
3 SERVICE_CALL_EXECUTION_FAILURE Nie udało się wykonać zadania z powodu problemów z wątkami. W takim przypadku możesz spróbować ponownie.
4 SERVICE_CALL_PERMISSION_DENIED Rozmówca nie ma uprawnień do zgłoszenia.
5 SERVICE_CALL_INVALID_ARGUMENT Żądanie zawiera nieprawidłowe dane (np. więcej niż dozwoloną liczbę klastrów).
6 SERVICE_CALL_INTERNAL Po stronie usługi wystąpił błąd.
7 SERVICE_CALL_RESOURCE_EXHAUSTED wywołanie usługi jest wykonywane zbyt często.

Krok 3. Obsługa intencji przesyłania

Oprócz wywoływania interfejsu Content API za pomocą zadania musisz też skonfigurować BroadcastReceiver, aby odbierać prośby o publikowanie treści.

Intencje przesyłania są przeznaczone głównie do ponownej aktywacji aplikacji i wymuszania synchronizacji danych. Intencje dotyczące transmisji nie są przeznaczone do wysyłania bardzo często. Jest ona wywoływana tylko wtedy, gdy usługa Engage stwierdzi, że treści mogą być nieaktualne (np. mają tydzień). Dzięki temu użytkownik ma pewność, że będzie mieć dostęp do aktualnych treści, nawet jeśli aplikacja nie była uruchamiana przez długi czas.

Element BroadcastReceiver musi być skonfigurowany w jednym z tych 2 sposobów:

  • Dynamicznie zarejestruj instancję klasy BroadcastReceiver za pomocą funkcji Context.registerReceiver(). Umożliwia to komunikację z aplikacji, które są nadal aktywne w pamięci.

Kotlin

class AppEngageBroadcastReceiver : BroadcastReceiver(){
  // Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION broadcast
  // is received
  // Trigger featured cluster publish when PUBLISH_FEATURED broadcast is received
}

fun registerBroadcastReceivers(context: Context){
  var  context = context
  context = context.applicationContext

// Register Recommendation Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_RECOMMENDATION))

// Register Featured Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_FEATURED))
}

Java

class AppEngageBroadcastReceiver extends BroadcastReceiver {
// Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION broadcast
// is received

// Trigger featured cluster publish when PUBLISH_FEATURED broadcast is received
}

public static void registerBroadcastReceivers(Context context) {

context = context.getApplicationContext();

// Register Recommendation Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_RECOMMENDATION));

// Register Featured Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_FEATURED));

}
  • Zadeklaruj statycznie implementację za pomocą tagu <receiver> w pliku AndroidManifest.xml. Dzięki temu aplikacja może odbierać intencje przesyłania, gdy nie jest uruchomiona, a także publikować treści.
<application>
   <receiver
      android:name=".AppEngageBroadcastReceiver"
      android:exported="true"
      android:enabled="true">
      <intent-filter>
         <action android:name="com.google.android.engage.action.PUBLISH_RECOMMENDATION" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.PUBLISH_FEATURED" />
      </intent-filter>
   </receiver>
</application>

Usługa wysyła te intencje:

  • com.google.android.engage.action.PUBLISH_RECOMMENDATION Gdy otrzymasz ten zamiar, zalecamy rozpoczęcie rozmowy publishRecommendationClusters.
  • com.google.android.engage.action.PUBLISH_FEATURED Gdy otrzymasz ten zamiar, zalecamy rozpoczęcie publishFeaturedCluster połączenia.

Proces integracji

Szczegółowe instrukcje weryfikacji integracji po jej zakończeniu znajdziesz w tym przewodniku po integracji z Engage dla deweloperów.

Najczęstsze pytania

Najczęstsze pytania dotyczące Engage SDK znajdziesz w artykule Najczęstsze pytania dotyczące Engage SDK.

Kontakt

Jeśli masz pytania dotyczące procesu integracji, wyślij e-maila na adres engage-developers@google.com.

Dalsze kroki

Po zakończeniu tej integracji wykonaj te czynności:

  • Wyślij e-maila na adres engage-developers@google.com i załącz zintegrowany pakiet APK, który jest gotowy do przetestowania przez Google.
  • Google przeprowadza weryfikację i sprawdza integrację wewnętrznie, aby upewnić się, że działa ona zgodnie z oczekiwaniami. Jeśli będą potrzebne zmiany, Google skontaktuje się z Tobą, podając niezbędne informacje.
  • Gdy testy zostaną zakończone i nie trzeba będzie wprowadzać żadnych zmian, skontaktujemy się z Tobą, aby poinformować, że możesz rozpocząć publikowanie zaktualizowanego i zintegrowanego pakietu APK w Sklepie Play.
  • Gdy Google potwierdzi, że zaktualizowany plik APK został opublikowany w Sklepie Play, Twoje grupy rekomendacji, polecanych, rezerwacjikontynuowania wyszukiwania mogą zostać opublikowane i zostać widoczne dla użytkowników.