Engage SDK Dating: instrukcje integracji technicznej firm zewnętrznych

Google tworzy na urządzeniu platformę, która porządkuje aplikacje według branż i umożliwia korzystanie ze spersonalizowanych treści w aplikacji. i odkrywania. Dzięki temu partnerzy mogą mają możliwość zaprezentowania swoich najlepszych, bogatych materiałów na specjalnym kanale w witrynie.W tym przewodniku znajdziesz instrukcje dla deweloperów, integrować treści randkowe za pomocą pakietu SDK dla agencji, aby uzupełnić i ich powierzchni.

Szczegóły integracji

Terminologia

Ta integracja obejmuje te 3 typy klastrów: Recommendation, Polecane i Kontynuacja.

  • Klastry rekomendacji pokazują spersonalizowane sugestie randkowe z konkretnego partnera programistów. Zalecenia te mogą być dostosowane do użytkownika.

    • Klaster rekomendacji może składać się z tych elementów: ArticleEntity, PersonEntity, lub EventEntity, ale nie mogą być mieszanką różnych typów elementów.

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

    • Klaster rekomendacji: widok interfejsu zawierający grupę rekomendacje od tego samego partnera dewelopera.

    • Encja: obiekt reprezentujący pojedynczy element w klastrze. Ten oferuje kilka jednostek, które pojawiłyby się za pomocą Klaster rekomendacji:

      • ArticleEntity: ArticleEntity proponuje treści tekstowe związane z randkami. Element ArticleEntity umożliwia programistom dostarczanie zróżnicowanych treści tekstowych i graficznych dodając więcej metadanych, aby przekazać informacje użytkownikom.

        Rysunek 1. Interfejs przedstawiający pojedynczy obiekt ArticleEntity w klastrze Recommendations.
      • PersonEntity: PersonEntity oznacza osobę. rekomendacjami może być wyróżnienie osoby na randce potencjalnych klientów.

        Rysunek 2. Interfejs przedstawiający pojedynczą osobę w obiekcie Klaster rekomendacji.
      • EventEntity: EventEntity reprezentuje zdarzenie odbywające się w w przyszłości. Godzina rozpoczęcia wydarzenia to kluczowa informacja, które należy przedstawić użytkownikom.

        Rysunek 3. Interfejs przedstawiający pojedyncze zdarzenie EventEntity w klastrze rekomendacji.
  • Klaster Kontynuacja pokazuje treści, które ostatnio angażują użytkowników z: z kilkoma partnerami deweloperów w jednym grupowaniu interfejsu użytkownika. Każdy partner deweloperów zezwolono na transmitowanie maksymalnie 10 elementów w ramach kontynuacji klastra.

    Kontynuacja może mieć taką strukturę:

    • ArticleEntity: ArticleEntity proponuje treści tekstowe związane z randkami. Ten element może być używany do: przedstawiają niedokończone artykuły z wiadomościami lub inne treści, które użytkownik że nadal chcą korzystać z treści od miejsca, w którym je porzucili.

      Rysunek 6. Interfejs przedstawiający pojedynczy element ArticleEntity w obrębie. klaster kontynuacji.
    • EventTransactionEntity: reprezentuje obiekt EventOptimizationEntity. rezerwacja na wydarzenie i pomaga użytkownikom śledzić nadchodzące lub trwające wydarzenie rezerwacji na randki i spotkania.

      Rysunek 8. Interfejs przedstawiający jeden EventRezerwacjaEntity w klastrze kontynuacji.
  • Klaster Polecane to widok interfejsu, który pokazuje wybranego bohatera GenericFeaturedEntity od wielu deweloperów w ramach 1 grupy UI. Istnieje 1 polecany klaster, który znajduje się u góry Interfejs użytkownika z priorytetowym miejscem docelowym nad wszystkimi klastrami rekomendacji. Każdy partner dewelopera może transmitować 1 podmiot obsługiwanego wpisz Polecane wraz z wieloma elementami (potencjalnie różnych typów) z wielu deweloperów aplikacji w klastrze Polecane.

    • OgólnapolecanaEntity: Ogólnapolecana różni się od Polecany element tego elementu powinien być stosowany najlepszych materiałów deweloperów i powinny reprezentować które będą interesujące i przydatne dla użytkowników.

      Rysunek 12. Interfejs przedstawiający wyróżniony klaster ze lista Ogólnapolecana_obiekt
      .

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 opiera się na implementacji powiązanej usługi.

Dane, które klient może publikować, podlegają następującym limitom dla różnych typy klastrów:

Typ klastra Limity klastra Minimalne limity encji w klastrze Maksymalne limity encji w klastrze
Klastry rekomendacji Maksymalnie 5 Co najmniej 5 Maksymalnie 25 (ArticleEntity, PersonEntity lub EventEntity).
Klaster kontynuacji Maksymalnie 1 Co najmniej 1 Maksymalnie 10 (ArticleEntity lub EventReservationEntity).
Polecany klaster Maksymalnie 1 Co najmniej 1 Maksymalnie 10 (GenericFeaturedEntity)

Krok 1. Podaj dane encji

Pakiet SDK ma zdefiniowane różne jednostki reprezentujące każdy typ elementu. Wspieramy następujące podmioty w kategorii Randki:

  1. GenericFeaturedEntity
  2. ArticleEntity
  3. PersonEntity
  4. EventEntity
  5. EventReservationEntity

Poniższe tabele przedstawiają dostępne atrybuty i wymagania dla każdego typu.

GenericFeaturedEntity

Atrybut Wymaganie Opis Format
Identyfikator URI działania Wymagany

Precyzyjny link do elementu w aplikacji dostawcy.

Uwaga: na potrzeby atrybucji możesz używać precyzyjnych linków. Zapoznaj się z najczęstszymi pytaniami

Identyfikator URI
Plakat Wymagany

Jeśli prześlesz kilka obrazów, wyświetlimy tylko jeden obraz. Zalecany format obrazu to 16:9

Uwaga: jeśli masz plakietkę, umieść ją w bezpiecznej na 24 miejscach dps na górze i na dole obrazu

Wskazówki znajdziesz w specyfikacjach obrazów.
Tytuł Opcjonalnie Tytuł elementu.

Dowolny tekst

Zalecany rozmiar tekstu: 50 znaków

Opis Opcjonalnie

Jeden akapit tekstu opisujący element.

Uwaga: opis lub lista napisów zostaną wyświetlane użytkownikowi, a nie jedno i drugie.

Dowolny tekst

Zalecany rozmiar tekstu: 180 znaków

Lista napisów Opcjonalnie

maksymalnie 3 napisy, z których każdy może zawierać jeden wiersz tekstu.

Uwaga: opis lub lista napisów zostaną wyświetlane użytkownikowi, a nie jedno i drugie.

Dowolny tekst

Zalecany rozmiar tekstu dla każdego podtytułu: maks. 50 znaków

Odznaki Opcjonalnie

Każda plakietka ma postać dowolnego tekstu (maks. 15 znaków) lub małego obrazu.

Specjalne wrażenia dotyczące obrazów/filmów, np. plakietka na obraz

  • „Aktualizacja na żywo”
  • Czas czytania artykułu
Plakietka – tekst Opcjonalnie

Tytuł plakietki

Uwaga: plakietka musi zawierać tekst lub obraz.

Dowolny tekst

Zalecany rozmiar tekstu: maks. 15 znaków

Plakietka – obraz Opcjonalnie

Mały obraz

Specjalne wrażenia, np. nakładka z plakietką na obraz lub film. miniaturę.

Uwaga: plakietka musi zawierać tekst lub obraz.

Wskazówki znajdziesz w specyfikacjach obrazów.
Kategorie treści Opcjonalnie Opisz kategorię treści znajdujących się w danym elemencie.

Lista enum

Zobacz sekcję Kategoria treści. .

ArticleEntity

Atrybut Wymaganie Opis Format
Identyfikator URI działania Wymagany

Precyzyjny link do elementu w aplikacji dostawcy.

Uwaga: na potrzeby atrybucji możesz używać precyzyjnych linków. Zapoznaj się z najczęstszymi pytaniami

Identyfikator URI
Tytuł Wymagany Tytuł elementu.

Dowolny tekst

Zalecany rozmiar tekstu: maks. 50 znaków

Plakat Opcjonalnie

Jeśli prześlesz kilka obrazów, wyświetlimy tylko jeden obraz. Zalecany format obrazu to 16:9

Uwaga: zdecydowanie zalecamy użycie obrazu. Jeśli plakietka to należy zapewnić wolną przestrzeń 24 dps u góry i u dołu obraz

Wskazówki znajdziesz w specyfikacjach obrazów.
Źródło – tytuł Opcjonalnie Imię i nazwisko autora, organizacji lub reportera

Dowolny tekst

Zalecany rozmiar tekstu: poniżej 25 znaków

Źródło – obraz Opcjonalnie Obraz źródła, np. autor, organizacja czy reporter Wskazówki znajdziesz w specyfikacjach obrazów.
Opis Opcjonalnie

Jeden akapit tekstu opisujący element.

Uwaga: opis lub lista napisów zostaną wyświetlane użytkownikowi, a nie jedno i drugie.

Dowolny tekst

Zalecany rozmiar tekstu: 180 znaków

Lista napisów Opcjonalnie

maksymalnie 3 napisy, z których każdy może zawierać jeden wiersz tekstu.

Uwaga: opis lub lista napisów zostaną wyświetlane użytkownikowi, a nie jedno i drugie.

Dowolny tekst

Zalecany rozmiar tekstu dla każdego podtytułu: maks. 50 znaków

Odznaki Opcjonalnie

Każda plakietka ma postać dowolnego tekstu (maks. 15 znaków) lub małego obrazu.

Specjalne wrażenia dotyczące obrazów/filmów, np. plakietka na obraz

  • Na przykład „Aktualizacja na żywo”
  • Na przykład Czas czytania artykułu
Plakietka – tekst Opcjonalnie

Tytuł plakietki

Uwaga: plakietka musi zawierać tekst lub obraz.

Dowolny tekst

Zalecany rozmiar tekstu: maks. 15 znaków

Plakietka – obraz Opcjonalnie

Mały obraz

Specjalne wrażenia, np. nakładka z plakietką na obraz lub film. miniaturę.

Uwaga: plakietka musi zawierać tekst lub obraz.

Wskazówki znajdziesz w specyfikacjach obrazów.
Czas publikacji treści Opcjonalnie To jest sygnatura czasowa epoki (w milisekundach) od momentu, gdy treść opublikowane / zaktualizowane w aplikacji. Sygnatura czasowa epoki w milisekundach
Czas ostatniego zaangażowania Wymagane warunkowo

Sygnatura czasowa epoki (w milisekundach), z którą użytkownik wszedł w interakcję po raz ostatni.

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

Sygnatura czasowa epoki w milisekundach
Procent postępów Wymagane warunkowo

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

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

Wartość całkowita z zakresu od 0 do 100 włącznie.
Kategorie treści Opcjonalnie Opisz kategorię treści znajdujących się w danym elemencie.

Lista enum

Zobacz sekcję Kategoria treści. .

PersonEntity

Atrybut Wymaganie Opis Format
Identyfikator URI działania Wymagany

Precyzyjny link do elementu w aplikacji dostawcy.

Uwaga: na potrzeby atrybucji możesz używać precyzyjnych linków. Zapoznaj się z najczęstszymi pytaniami

Identyfikator URI
Profil – nazwa Wymagany Nazwa profilu lub identyfikator albo nick, np. „Jan Kowalski”, „@TeamPixel” itp.

Ciąg znaków

Zalecany rozmiar tekstu: maks. 50 znaków

Profil – awatar Wymagany

Zdjęcie profilowe lub awatar użytkownika.

Uwaga: musi to być kwadratowe zdjęcie o proporcjach 1:1.

Wskazówki znajdziesz w specyfikacjach obrazów.
Profil – dodatkowy tekst Opcjonalnie Dowolny tekst, taki jak nick profilu.

Dowolny tekst

Zalecany rozmiar tekstu: maks. 15 znaków

Profil – dodatkowe zdjęcie Opcjonalnie Mały obraz, np. plakietka weryfikacyjna. Wskazówki znajdziesz w specyfikacjach obrazów.
Obraz w nagłówku Opcjonalnie

Reprezentuje obraz nagłówka. Musi różnić się od zdjęcia profilowego. Można go użyć, jeśli istnieje dodatkowe zdjęcie, które pomaga podkreślić cenią sobie jego pracę.

Uwaga: obraz musi mieć proporcje 16:9. Po udostępnieniu plakietki Zapewnij bezpieczną przestrzeń o wysokości 24 dps u góry i u dołu obrazu

Wskazówki znajdziesz w specyfikacjach obrazów.
Popularność – liczba Opcjonalnie

Podaj liczbę obserwatorów lub wartość popularności, na przykład: „3,7 mln”.

Uwaga: jeśli podasz zarówno liczbę, jak i wartość liczby, Użyjemy wartości licznika

Ciąg znaków

Zalecany rozmiar tekstu: maks. 20 znaków w przypadku liczby + etykiety łącznie

Popularność – wartość liczby Opcjonalnie

Liczba obserwatorów lub wartość popularności.

Uwaga: podaj wartość liczby, jeśli aplikacja nie chce która określa logikę optymalizacji dużych liczb różnych rozmiarów reklam displayowych. Jeśli podasz zarówno liczbę, jak i wartość liczby, Liczba jest wyświetlana użytkownikom.

Długie
Popularność – etykieta Opcjonalnie Określ, jaka jest etykieta popularności. Na przykład „Polubione”.

Ciąg znaków

Zalecany rozmiar tekstu: maks. 20 znaków w przypadku liczby + etykiety łącznie

Popularność – treści wizualne Opcjonalnie

Wskaż, do czego służy dana interakcja. Na przykład: Obraz jest wyświetlany Ikona polubień i emotikonów.

Można dodać więcej niż 1 obraz, ale nie wszystkie będą wyświetlane na wszystkich i formatów.

Uwaga: wymagany jest kwadratowy obraz w formacie 1:1.

Wskazówki znajdziesz w specyfikacjach obrazów.
Ocena – wartość maksymalna Wymagane

Maksymalna wartość skali ocen.

Ten atrybut musi być podany, jeśli bieżąca wartość oceny jest również

Liczba >= 0.0
Ocena – bieżąca wartość Wymagane

Bieżąca wartość skali ocen.

Ten atrybut musi być podany, jeśli maksymalna wartość oceny wynosi również

Liczba >= 0.0
Ocena – liczba Opcjonalnie

Liczba ocen elementu.

Uwaga: wypełnij to pole, jeśli aplikacja chce: kontrolować sposób wyświetlania informacji użytkownikom. Podaj zwięzły ciąg znaków które można wyświetlać użytkownikowi. Jeśli na przykład liczba to 1 000 000, rozważ użycie skrótów, takich jak 1M, aby uniknąć na mniejszych ekranach.

Ciąg znaków
Ocena – wartość liczby Opcjonalnie

Liczba ocen elementu.

Uwaga: podaj to pole, jeśli nie chcesz przetwarzać musisz samodzielnie stosować skróty klawiszowe. Jeśli zarówno liczba, jak i wartość liczby użyjemy liczby, aby wyświetlić je użytkownikom

Długie
Lokalizacja – kraj Opcjonalnie Kraj, w którym znajduje się lub świadczy usługi.

Dowolny tekst

Zalecany rozmiar tekstu: maks. 20 znaków

Lokalizacja – miasto Opcjonalnie Miasto, w którym znajduje się użytkownik lub w którym świadczy usługi.

Dowolny tekst

Zalecany rozmiar tekstu: maks. 20 znaków

Lokalizacja – wyświetlany adres Opcjonalnie Adres, pod którym znajduje się osoba lub gdzie jest wyświetlana, będzie wyświetlany użytkownika.

Dowolny tekst

Zalecany rozmiar tekstu: maks. 20 znaków

Lokalizacja – adres Opcjonalnie adres (w stosownych przypadkach) pod którym znajduje się dana osoba; wyświetlania reklam.

Dowolny tekst

Zalecany rozmiar tekstu: maks. 20 znaków

Lokalizacja – województwo Opcjonalnie Województwo (jeśli dotyczy), w którym znajduje się lub działa dana osoba.

Dowolny tekst

Zalecany rozmiar tekstu: maks. 20 znaków

Lokalizacja – kod pocztowy Opcjonalnie Kod pocztowy (jeśli dotyczy), pod którym znajduje się użytkownik lub pod którym działa.

Dowolny tekst

Zalecany rozmiar tekstu: maks. 20 znaków

Lokalizacja – okolica Opcjonalnie Dzielnica (jeśli dotyczy), w której znajduje się lub działa dana osoba.

Dowolny tekst

Zalecany rozmiar tekstu: maks. 20 znaków

Odznaki Opcjonalnie

Każda plakietka ma postać dowolnego tekstu (maks. 15 znaków) lub małego obrazu.

Plakietka – tekst Opcjonalnie

Tytuł plakietki

Uwaga: plakietka musi zawierać tekst lub obraz.

Dowolny tekst

Zalecany rozmiar tekstu: maks. 15 znaków

Plakietka – obraz Opcjonalnie

Mały obraz

Specjalne wrażenia, np. nakładka z plakietką na obraz lub film. miniaturę.

Uwaga: plakietka musi zawierać tekst lub obraz.

Wskazówki znajdziesz w specyfikacjach obrazów.
Opis Opcjonalnie

Jeden akapit tekstu opisujący element.

Uwaga: opis lub lista napisów zostaną wyświetlane użytkownikowi, a nie jedno i drugie.

Dowolny tekst

Zalecany rozmiar tekstu: 180 znaków

Lista napisów Opcjonalnie

maksymalnie 3 napisy, z których każdy może zawierać jeden wiersz tekstu.

Uwaga: opis lub lista napisów zostaną wyświetlane użytkownikowi, a nie jedno i drugie.

Dowolny tekst

Zalecany rozmiar tekstu dla każdego podtytułu: maks. 50 znaków

Kategorie treści Opcjonalnie Opisz kategorię treści znajdujących się w danym elemencie.

Lista odpowiednich wyliczenia

  • TYPE_HEALTH_AND_FITENESS (przykład: joga/trener fitness)
  • TYPE_HOME_AND_AUTO (przykład: hydraulik)
  • TYPE_SPORTS (przykład – gracz)
  • TYPE_Randki

Zobacz sekcję Kategoria treści. .

EventEntity

Atrybut Wymaganie Opis Format
Identyfikator URI działania Wymagany

Precyzyjny link do elementu w aplikacji dostawcy.

Uwaga: na potrzeby atrybucji możesz używać precyzyjnych linków. Zapoznaj się z najczęstszymi pytaniami

Identyfikator URI
Tytuł Wymagany Tytuł elementu.

Ciąg znaków

Zalecany rozmiar tekstu: maks. 50 znaków

Godzina rozpoczęcia Wymagany

Sygnatura czasowa początku epoki.

Uwaga: wartość zostanie podana w milisekundach.

Sygnatura czasowa epoki w milisekundach
Tryb zdarzenia Wymagany

Pole, które określa, czy wydarzenie odbędzie się online, stacjonarnie czy i jednym, i drugim.

Enum: VIRTUAL, IN_PERSON lub HYBRID
Plakat Wymagany

Jeśli prześlesz kilka obrazów, wyświetlimy tylko jeden obraz. Zalecany format obrazu to 16:9

Uwaga: zdecydowanie zalecamy użycie obrazu. Jeśli plakietka to należy zapewnić wolną przestrzeń 24 dps u góry i u dołu obraz

Wskazówki znajdziesz w specyfikacjach obrazów.
Lokalizacja – kraj Wymagane warunkowo

Kraj, w którym odbywa się wydarzenie.

Uwaga: to pole jest wymagane w przypadku wydarzeń o charakterze IN_PERSON lub HYBRYDOWE

Dowolny tekst

Zalecany rozmiar tekstu: maks. 20 znaków

Lokalizacja – miasto Wymagane warunkowo

Miasto, w którym odbywa się wydarzenie.

Uwaga: to pole jest wymagane w przypadku wydarzeń o charakterze IN_PERSON lub HYBRYDOWE

Dowolny tekst

Zalecany rozmiar tekstu: maks. 20 znaków

Lokalizacja – wyświetlany adres Wymagane warunkowo

Adres lub nazwa miejsca, w którym odbędzie się wydarzenie. Powinny które będą wyświetlane użytkownikowi.

Uwaga: to pole jest wymagane w przypadku wydarzeń o charakterze IN_PERSON lub HYBRYDOWE

Dowolny tekst

Zalecany rozmiar tekstu: maks. 20 znaków

Lokalizacja – adres Opcjonalnie Ulica i numer (jeśli dotyczy) miejsca, w którym odbywa się wydarzenie na serwerze Google Cloud.

Dowolny tekst

Zalecany rozmiar tekstu: maks. 20 znaków

Lokalizacja – województwo Opcjonalnie Województwo (jeśli dotyczy), w którym odbywa się wydarzenie na serwerze Google.

Dowolny tekst

Zalecany rozmiar tekstu: maks. 20 znaków

Lokalizacja – kod pocztowy Opcjonalnie Kod pocztowy (jeśli dotyczy) lokalizacji, w której odbywa się wydarzenie na serwerze Google.

Dowolny tekst

Zalecany rozmiar tekstu: maks. 20 znaków

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

Dowolny tekst

Zalecany rozmiar tekstu: maks. 20 znaków

Godzina zakończenia Opcjonalnie

Sygnatura czasowa epoki, w której zdarzenie ma się zakończyć.

Uwaga: wartość zostanie podana w milisekundach.

Sygnatura czasowa epoki w milisekundach
Opis Opcjonalnie

Jeden akapit tekstu opisujący element.

Uwaga: opis lub lista napisów zostaną wyświetlane użytkownikowi, a nie jedno i drugie.

Dowolny tekst

Zalecany rozmiar tekstu: 180 znaków

Lista napisów Opcjonalnie

maksymalnie 3 napisy, z których każdy może zawierać jeden wiersz tekstu.

Uwaga: opis lub lista napisów zostaną wyświetlane użytkownikowi, a nie jedno i drugie.

Dowolny tekst

Zalecany rozmiar tekstu dla każdego podtytułu: maks. 50 znaków

Odznaki Opcjonalnie

Każda plakietka ma postać dowolnego tekstu (maks. 15 znaków) lub małego obrazu.

Plakietka – tekst Opcjonalnie

Tytuł plakietki

Uwaga: plakietka musi zawierać tekst lub obraz.

Dowolny tekst

Zalecany rozmiar tekstu: maks. 15 znaków

Plakietka – obraz Opcjonalnie

Mały obraz

Specjalne wrażenia, np. nakładka z plakietką na obraz lub film. miniaturę.

Uwaga: plakietka musi zawierać tekst lub obraz.

Wskazówki znajdziesz w specyfikacjach obrazów.
Cena – aktualna cena Wymagane warunkowo

Aktualna cena biletu na wydarzenie.

Wartość ta jest wymagana, jeśli podano przekreśloną cenę.

Dowolny tekst
Cena – przekreślona cena Opcjonalnie Pierwotna cena biletu na wydarzenie. Dowolny tekst
Objaśnienie dotyczące ceny Opcjonalnie Objaśnienie dotyczące ceny z informacją o promocji, wydarzeniu lub zniżce dla subskrybentów, jeśli jest dostępna.

Dowolny tekst

Zalecany rozmiar tekstu: poniżej 45 znaków (zbyt długi tekst) mogą wyświetlać wielokropki).

Kategorie treści Opcjonalnie Opisz kategorię treści znajdujących się w danym elemencie.

Lista odpowiednich wyliczenia

  • TYPE_MOVIES_AND_TV_SHOWS (przykład – kino)
  • TYPE_DIGITAL_GAMES (przykład: e-sport)
  • TYPE_MUSIC (przykład – koncert)
  • TYPE_TRAVEL_AND_LOCAL (przykład: zwiedzanie, festiwal)
  • TYPE_HEALTH_AND_FITENESS (przykład: zajęcia jogi)
  • TYPE_EDUCATION (przykład – klasa)
  • TYPE_SPORTS (przykład – mecz piłki nożnej)
  • TYPE_DATING (przykład: spotkanie)

Zobacz sekcję Kategoria treści. .

EventReservationEntity

Atrybut Wymaganie Opis Format
Identyfikator URI działania Wymagany

Precyzyjny link do elementu w aplikacji dostawcy.

Uwaga: na potrzeby atrybucji możesz używać precyzyjnych linków. Zapoznaj się z najczęstszymi pytaniami

Identyfikator URI
Tytuł Wymagany Tytuł elementu.

Ciąg znaków

Zalecany rozmiar tekstu: maks. 50 znaków

Godzina rozpoczęcia Wymagany

Sygnatura czasowa początku epoki.

Uwaga: wartość zostanie podana w milisekundach.

Sygnatura czasowa epoki w milisekundach
Tryb zdarzenia Wymagany

Pole, które określa, czy wydarzenie odbędzie się online, stacjonarnie czy i jednym, i drugim.

Enum: VIRTUAL, IN_PERSON lub HYBRID
Lokalizacja – kraj Wymagane warunkowo

Kraj, w którym odbywa się wydarzenie.

Uwaga: to pole jest wymagane w przypadku wydarzeń o charakterze IN_PERSON lub HYBRYDOWE

Dowolny tekst

Zalecany rozmiar tekstu: maks. 20 znaków

Lokalizacja – miasto Wymagane warunkowo

Miasto, w którym odbywa się wydarzenie.

Uwaga: to pole jest wymagane w przypadku wydarzeń o charakterze IN_PERSON lub HYBRYDOWE

Dowolny tekst

Zalecany rozmiar tekstu: maks. 20 znaków

Lokalizacja – wyświetlany adres Wymagane warunkowo

Adres lub nazwa miejsca, w którym odbędzie się wydarzenie. Powinny które będą wyświetlane użytkownikowi.

Uwaga: to pole jest wymagane w przypadku wydarzeń o charakterze IN_PERSON lub HYBRYDOWE

Dowolny tekst

Zalecany rozmiar tekstu: maks. 20 znaków

Lokalizacja – adres Opcjonalnie Ulica i numer (jeśli dotyczy) miejsca, w którym odbywa się wydarzenie na serwerze Google Cloud.

Dowolny tekst

Zalecany rozmiar tekstu: maks. 20 znaków

Lokalizacja – województwo Opcjonalnie Województwo (jeśli dotyczy), w którym odbywa się wydarzenie na serwerze Google.

Dowolny tekst

Zalecany rozmiar tekstu: maks. 20 znaków

Lokalizacja – kod pocztowy Opcjonalnie Kod pocztowy (jeśli dotyczy) lokalizacji, w której odbywa się wydarzenie na serwerze Google.

Dowolny tekst

Zalecany rozmiar tekstu: maks. 20 znaków

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

Dowolny tekst

Zalecany rozmiar tekstu: maks. 20 znaków

Plakat Opcjonalnie

Jeśli prześlesz kilka obrazów, wyświetlimy tylko jeden obraz. Zalecany format obrazu to 16:9

Uwaga: zdecydowanie zalecamy użycie obrazu. Jeśli plakietka to należy zapewnić wolną przestrzeń 24 dps u góry i u dołu obraz

Wskazówki znajdziesz w specyfikacjach obrazów.
Godzina zakończenia Opcjonalnie

Sygnatura czasowa epoki, w której zdarzenie ma się zakończyć.

Uwaga: wartość zostanie podana w milisekundach.

Sygnatura czasowa epoki w milisekundach
Dostawca usług – nazwa Opcjonalnie

Nazwa dostawcy usług.

Uwaga: w przypadku usługi wymagane jest przesłanie zarówno tekstu, jak i obrazu. dostawcy usług.

Dowolny tekst. Na przykład nazwa organizatora wydarzenia lub wycieczki.
Dostawca usług – obraz Opcjonalnie

Logo/obraz dostawcy usług.

Uwaga: w przypadku usługi wymagane jest przesłanie zarówno tekstu, jak i obrazu. dostawcy usług.

Wskazówki znajdziesz w specyfikacjach obrazów.
Opis Opcjonalnie

Jeden akapit tekstu opisujący element.

Uwaga: opis lub lista napisów zostaną wyświetlane użytkownikowi, a nie jedno i drugie.

Dowolny tekst

Zalecany rozmiar tekstu: 180 znaków

Lista napisów Opcjonalnie

maksymalnie 3 napisy, z których każdy może zawierać jeden wiersz tekstu.

Uwaga: opis lub lista napisów zostaną wyświetlane użytkownikowi, a nie jedno i drugie.

Dowolny tekst

Zalecany rozmiar tekstu dla każdego podtytułu: maks. 50 znaków

Odznaki Opcjonalnie

Każda plakietka ma postać dowolnego tekstu (maks. 15 znaków) lub małego obrazu.

Plakietka – tekst Opcjonalnie

Tytuł plakietki

Uwaga: plakietka musi zawierać tekst lub obraz.

Dowolny tekst

Zalecany rozmiar tekstu: maks. 15 znaków

Plakietka – obraz Opcjonalnie

Mały obraz

Specjalne wrażenia, np. nakładka z plakietką na obraz lub film. miniaturę.

Uwaga: plakietka musi zawierać tekst lub obraz.

Wskazówki znajdziesz w specyfikacjach obrazów.
Identyfikator rezerwacji Opcjonalnie Identyfikator rezerwacji na wydarzenie. Dowolny tekst
Cena – aktualna cena Wymagane warunkowo

Aktualna cena biletu na wydarzenie.

Wartość ta jest wymagana, jeśli podano przekreśloną cenę.

Dowolny tekst
Cena – przekreślona cena Opcjonalnie Pierwotna cena biletu na wydarzenie. Dowolny tekst
Objaśnienie dotyczące ceny Opcjonalnie Objaśnienie dotyczące ceny z informacją o promocji, wydarzeniu lub zniżce dla subskrybentów, jeśli jest dostępna.

Dowolny tekst

Zalecany rozmiar tekstu: poniżej 45 znaków (zbyt długi tekst) mogą wyświetlać wielokropki).

Ocena – wartość maksymalna Opcjonalnie

Maksymalna wartość skali ocen.

Ten atrybut musi być podany, jeśli bieżąca wartość oceny jest również

Liczba >= 0.0
Ocena – bieżąca wartość Opcjonalnie

Bieżąca wartość skali ocen.

Ten atrybut musi być podany, jeśli maksymalna wartość oceny wynosi również

Liczba >= 0.0
Ocena – liczba Opcjonalnie

Liczba ocen wydarzenia.

Uwaga: wypełnij to pole, jeśli aplikacja chce: kontrolować sposób wyświetlania informacji użytkownikom. Podaj zwięzły ciąg znaków które można wyświetlać użytkownikowi. Jeśli na przykład liczba to 1 000 000, rozważ użycie skrótów, takich jak 1M, aby uniknąć na mniejszych ekranach.

Ciąg znaków
Ocena – wartość liczby Opcjonalnie

Liczba ocen wydarzenia.

Uwaga: podaj to pole, jeśli nie chcesz przetwarzać musisz samodzielnie stosować skróty klawiszowe. Jeśli zarówno liczba, jak i wartość liczby użyjemy liczby, aby wyświetlić je użytkownikom

Długie
Kategorie treści Opcjonalnie Opisz kategorię treści znajdujących się w danym elemencie.

Lista odpowiednich wyliczenia

  • TYPE_MOVIES_AND_TV_SHOWS (przykład – kino)
  • TYPE_DIGITAL_GAMES (przykład: e-sport)
  • TYPE_MUSIC (przykład – koncert)
  • TYPE_TRAVEL_AND_LOCAL (przykład: zwiedzanie, festiwal)
  • TYPE_HEALTH_AND_FITENESS (przykład: zajęcia jogi)
  • TYPE_EDUCATION (przykład – klasa)
  • TYPE_SPORTS (przykład – mecz piłki nożnej)
  • TYPE_DATING (przykład: spotkanie)

Zobacz sekcję Kategoria treści. .

Specyfikacja obrazu

Wymagane specyfikacje komponentów z obrazem znajdziesz w tej tabeli:

Format obrazu Minimalny rozmiar w pikselach Zalecany rozmiar w pikselach

Kwadrat (1 x 1)

Preferowana

300x300 1200x1200
Poziomy (1,91 x 1) 600x314 1200x628
Orientacja pionowa (4 x 5) 480 × 600 960x1200

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

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% .
  • Użyj przezroczystego tła, aby obraz był poprawnie wyświetlany Ustawienia ciemnego i jasnego motywu.

Kategoria treści

Kategoria treści pozwala aplikacjom publikować treści należące do wielu kategorii zainteresowań. Powoduje to mapowanie treści na niektóre ze wstępnie zdefiniowanych kategorii:

  • 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 miał dostęp do nich .

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

  1. Niektóre encje, takie jak ArticleEntity i GeneralFeaturedEntity, są które mogą być wykorzystywane w przypadku dowolnej kategorii treści. W przypadku innych podmiotów, takich jak EventEntity, EventRezerwacjaEntity, PersonEntity – tylko podzbiór są odpowiednie. Sprawdź listę kategorii, do których można kierować typ encji przed zapełnieniem listy.
  2. W przypadku niektórych kategorii treści używaj określonego typu elementu, a nie ich kombinacji. elementów ogólnych i kategorii treści:

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

  4. Jeśli podajesz kilka kategorii treści, podaj je w kolejności. trafności względem treści z najtrafniejszą kategorią treści pierwszej pozycji na liście.

Krok 2. Podaj dane klastra

Zaleca się, aby zadanie publikowania treści było wykonywane w tle (na przykład WorkManager). i zaplanowano je regularnie lub według konkretnego wydarzenia (np. za każdym razem, użytkownik otwiera aplikację lub właśnie dodał coś do koszyka).

Za publikowanie klastrów odpowiada AppEngagePublishClient.

Istnieją następujące interfejsy API do publikowania klastrów w kliencie:

  • isServiceAvailable
  • publishRecommendationClusters
  • publishFeaturedCluster
  • publishContinuationCluster
  • publishUserAccountManagementRequest
  • updatePublishStatus
  • deleteRecommendationsClusters
  • deleteFeaturedCluster
  • deleteContinuationCluster
  • deleteUserManagementCluster
  • deleteClusters

isServiceAvailable

Ten interfejs API służy do sprawdzania, czy usługa jest dostępna do integracji oraz czy treść może być prezentowana 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 jedna transakcja:

  • Dotychczasowe dane RecommendationCluster pochodzące od partnera dewelopera zostaną usunięte.
  • Dane z żądania są analizowane i przechowywane w zaktualizowanej rekomendacji Klaster.

W przypadku błędu całe żądanie zostaje odrzucone, a obecny stan to i utrzymywane informacje.

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 jedna transakcja:

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

W przypadku błędu całe żądanie zostaje odrzucone, a obecny stan to i utrzymywane informacje.

publishContinuationCluster

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

Kotlin


client.publishContinuationCluster(
    PublishContinuationClusterRequest.Builder()
      .setContinuationCluster(
        ContinuationCluster.Builder()
          .addEntity(entity1)
          .addEntity(entity2)
          .build())
      .build())

Java


client.publishContinuationCluster(
            new PublishContinuationClusterRequest.Builder()
                .setContinuationCluster(
                    new ContinuationCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .build())
                .build());

Gdy usługa otrzyma żądanie, w ramach jedna transakcja:

  • Dotychczasowe dane ContinuationCluster pochodzące od partnera dewelopera zostaną usunięte.
  • Dane z żądania są analizowane i przechowywane w zaktualizowanej wersji kontynuacji Klaster.

W przypadku błędu całe żądanie zostaje odrzucone, a obecny stan to i utrzymywane informacje.

publishUserAccountManagementRequest

Ten interfejs API służy do publikowania karty logowania . Działanie związane z logowaniem kieruje użytkowników do stronie logowania, tak by aplikacja mogła publikować treści (lub udostępniać treści spersonalizowanej)

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

Atrybut Wymaganie Opis
Identyfikator URI działania Wymagane Precyzyjny link do działania (np. otwiera stronę logowania w aplikacji)
Obraz Opcjonalnie – jeśli nie podano, musisz podać tytuł

Obraz widoczny na karcie

Obrazy o współczynniku proporcji 16 x 9 i rozdzielczości 1264 x 712

Tytuł Opcjonalnie – jeśli nie podano, należy przesłać zdjęcie Tytuł na karcie
Tekst działania Opcjonalnie Tekst widoczny w wezwaniu do działania (np. „Zaloguj się”)
Podtytuł Opcjonalnie Opcjonalny tytuł 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 jedna transakcja:

  • Dotychczasowe dane UserAccountManagementCluster od partnera dewelopera są usunięto.
  • Dane z żądania są analizowane i przechowywane w zaktualizowanym Klaster zarządzania kontami użytkowników.

W przypadku błędu całe żądanie zostaje odrzucone, a obecny stan to i utrzymywane informacje.

updatePublishStatus

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

  • Podawanie stanu we wszystkich sytuacjach, nawet po opublikowaniu treści (STATUS == PUBLISHED) – ma kluczowe znaczenie przy wypełnianiu paneli, które używają jawny stan, który przekazuje informacje o stanie i inne wskaźniki integracji.
  • Jeśli treści nie zostały opublikowane, ale stan integracji nie jest nieprawidłowy (STATUS == NOT_PUBLISHED), Google może uniknąć wywoływania alertów w aplikacji paneli stanu. Potwierdza ono, że treść nie została opublikowana z powodu jest oczekiwana z punktu widzenia dostawcy.
  • Pomaga deweloperom określić, kiedy dane są publikowane, a kiedy Nie.
  • Google może używać kodów stanu, aby skłonić użytkownika do wykonania określonych działań aby wyświetlić jej zawartość lub rozwiązać problem.

Lista kodów stanu odpowiednich publikacji :

// 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 zostaną opublikowane, ponieważ użytkownik nie jest zalogowany, Google zalecamy opublikowanie karty logowania. Jeśli z jakiegoś powodu usługodawcy nie mogą aby opublikować kartę logowania, zalecamy wywołanie metody Interfejs 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 zawartości klastrów rekomendacji.

Kotlin


client.deleteRecommendationClusters()

Java


client.deleteRecommendationClusters();

Gdy usługa otrzyma żądanie, usuwa istniejące dane z Klastry rekomendacji. W przypadku błędu całe żądanie jest odrzucane, obecny stan zostaje zachowany.

deleteFeaturedCluster

Ten interfejs API służy do usuwania zawartości polecanego klastra.

Kotlin


client.deleteFeaturedCluster()

Java


client.deleteFeaturedCluster();

Gdy usługa otrzyma żądanie, usuwa istniejące dane z Polecany klaster. W przypadku błędu całe żądanie jest odrzucane, obecny stan zostaje zachowany.

deleteContinuationCluster

Ten interfejs API służy do usuwania zawartości klastra kontynuacji.

Kotlin


client.deleteContinuationCluster()

Java


client.deleteContinuationCluster();

Gdy usługa otrzyma żądanie, usuwa istniejące dane z Klaster kontynuacji. W przypadku błędu całe żądanie jest odrzucane, obecny stan zostaje zachowany.

deleteUserManagementCluster

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

Kotlin


client.deleteUserManagementCluster()

Java


client.deleteUserManagementCluster();

Gdy usługa otrzyma żądanie, usuwa istniejące dane z Klaster zarządzania kontami użytkowników. W przypadku błędu całe żądanie jest odrzucono i zachowany zostanie obecny stan.

deleteClusters

Ten interfejs API służy do usuwania zawartości klastra określonego typu.

Kotlin


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

Java


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

Gdy usługa otrzyma żądanie, usuwa istniejące dane ze wszystkich klastrów pasujących do określonych typów klastrów. Klienci mogą wybrać, czy chcą pozytywnie ocenić dla wielu typów klastrów. W przypadku błędu całe żądanie jest odrzucane, obecny stan zostaje zachowany.

Obsługa błędów

Zdecydowanie zalecamy wsłuchiwanie się w wyniki zadania z interfejsów API do publikowania, takich jak że można podjąć działania, aby odzyskać i ponownie przesłać udane zadanie.

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 z przyczyną podaną w atrybucie .

Kod błędu Uwaga:
SERVICE_NOT_FOUND Usługa jest niedostępna na danym urządzeniu.
SERVICE_NOT_AVAILABLE Usługa jest dostępna na danym urządzeniu, ale nie jest dostępna w momencie połączenia (np. funkcja jest wyraźnie wyłączona).
SERVICE_CALL_EXECUTION_FAILURE Nie udało się wykonać zadania z powodu problemów z wątkami. W takim przypadku można spróbować ponownie.
SERVICE_CALL_PERMISSION_DENIED Rozmówca nie może nawiązać połączenia z usługą.
SERVICE_CALL_INVALID_ARGUMENT Żądanie zawiera nieprawidłowe dane (na przykład więcej niż dozwolone liczby klastrów).
SERVICE_CALL_INTERNAL Po stronie usługi wystąpił błąd.
SERVICE_CALL_RESOURCE_EXHAUSTED Dzwonienie do zespołu pomocy jest wykonywane zbyt często.

Krok 3. Obsługa intencji transmisji

Oprócz wykonywania wywołań interfejsu Content API w zadaniu wymagane do skonfigurowania BroadcastReceiver do otrzymania z prośbą o opublikowanie treści.

Celem intencji transmisji jest głównie ponowna aktywacja aplikacji i wymuszenie użycia danych synchronizację. Intencje związane z transmisją nie są przeznaczone do wysyłania zbyt często. Jest tylko uruchamianych, gdy usługa dla Agencji ustali, że zawartość może być nieaktualna (w przypadku np. tydzień). Dzięki temu użytkownik ma większą pewność, i otwierać nowe treści, nawet jeśli aplikacja nie była uruchamiana przez bardzo długi okres.

BroadcastReceiver trzeba skonfigurować na 2 sposoby:

  • Dynamicznie zarejestruj instancję klasy BroadcastReceiver za pomocą Context.registerReceiver() Umożliwia to komunikację z aplikacji które wciąż są żywe 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
  // Trigger continuation cluster publish when PUBLISH_CONTINUATION 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))

// Register Continuation Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_CONTINUATION))
}

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

// Trigger continuation cluster publish when PUBLISH_CONTINUATION 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));

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

}
  • Statycznie deklaruj implementację z tagiem <receiver> w sekcji AndroidManifest.xml. Zezwala to aplikacji na odbieranie komunikatów intencje, gdy nie jest uruchomiona, oraz umożliwia publikowanie aplikacji 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>
      <intent-filter>
         <action android:name="com.google.android.engage.action.PUBLISH_CONTINUATION" />
      </intent-filter>
   </receiver>
</application>

Te zamiary są wysyłane przez usługa:

  • com.google.android.engage.action.PUBLISH_RECOMMENDATION Zalecane aby rozpocząć wywołanie publishRecommendationClusters po otrzymaniu tej intencji.
  • com.google.android.engage.action.PUBLISH_FEATURED Zalecane: uruchomić wywołanie publishFeaturedCluster po otrzymaniu tej intencji.
  • com.google.android.engage.action.PUBLISH_CONTINUATION Zalecane: uruchomić wywołanie publishContinuationCluster po otrzymaniu tej intencji.

Proces integracji

Szczegółowy przewodnik dotyczący weryfikacji integracji po jej zakończeniu znajdziesz na stronie Przepływ pracy w zakresie integracji dla programistów

Najczęstsze pytania

Zapoznaj się z najczęstszymi pytaniami o pakiet SDK dla Agencji, które dotyczą Najczęstsze pytania

Kontakt

Kontakt Engage-developers@google.com, jeśli są na ewentualne pytania w trakcie procesu integracji.

Dalsze kroki

Po zakończeniu integracji należy wykonać następujące czynności:

  • Wyślij e-maila do Engage-developers@google.com i dołącz zintegrowany plik APK gotowy do testowania przez Google.
  • Google przeprowadza wewnętrzną weryfikację i weryfikację, aby upewnić się, że jej integracja działa zgodnie z oczekiwaniami. Jeśli potrzebne będą zmiany, Google skontaktuje się z Tobą z niezbędnymi informacjami.
  • Gdy testy zostaną zakończone i nie będą konieczne żadne zmiany, Google skontaktuje się z Tobą w sprawie: powiadomi Cię, że możesz zacząć publikować zaktualizowany i zintegrowany pakiet APK w Sklepie Play.
  • Gdy Google potwierdzi, że zaktualizowany pakiet APK został opublikowany w Sklep Play, Twoje Rekomendacje, Polecane i Kontynuacja klastry mogą być opublikowane i widoczne dla użytkowników.