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
, lubEventEntity
, 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.
PersonEntity: PersonEntity oznacza osobę. rekomendacjami może być wyróżnienie osoby na randce potencjalnych klientów.
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.
- Klaster rekomendacji może składać się z tych elementów:
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.
EventTransactionEntity: reprezentuje obiekt EventOptimizationEntity. rezerwacja na wydarzenie i pomaga użytkownikom śledzić nadchodzące lub trwające wydarzenie rezerwacji na randki i spotkania.
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.
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:
GenericFeaturedEntity
ArticleEntity
PersonEntity
EventEntity
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
|
|
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
|
|
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
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
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
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
- 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.
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:
- TYPE_MOVIES_AND_TV_SHOWS – przejrzyj elementy z Obejrzyj przewodnik po integracji, podmiotów ogólnych.
- TYPE_BOOKS – zapoznaj się z EbookEntity przed użyciem podmiotów ogólnych.
- TYPE_AUDIOBOOKS – wymeldowanie AudiobookEntity przed za pomocą elementów ogólnych.
- TYPE_SHOPPING – płatność ShoppingEntity przed za pomocą elementów ogólnych.
- TYPE_FOOD_AND_DRINK – Sprawdź elementy z Przewodnik po integracji żywności przed użyciem podmiotów ogólnych.
Pole ContentCategory jest opcjonalne i powinno być puste, jeśli treść nie należy do żadnej z wymienionych wcześniej kategorii.
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 sekcjiAndroidManifest.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łaniepublishRecommendationClusters
po otrzymaniu tej intencji.com.google.android.engage.action.PUBLISH_FEATURED
Zalecane: uruchomić wywołaniepublishFeaturedCluster
po otrzymaniu tej intencji.com.google.android.engage.action.PUBLISH_CONTINUATION
Zalecane: uruchomić wywołaniepublishContinuationCluster
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.