Google entwickelt eine On-Device-Oberfläche, Apps nach Branchen und ermöglicht ein neues immersives Erlebnis zur Nutzung personalisierter App-Inhalte. und Auffindbarkeit. Diese Vollbildansicht bietet Entwicklern die Möglichkeit, ihre besten hochwertigen Inhalte in einem eigenen Kanal außerhalb von Google zu präsentieren. ihrer App.Dieser Leitfaden enthält Anweisungen für Entwickler ihre Dating-Inhalte zu integrieren, indem sie das Engage SDK verwenden, um dieses neue Oberfläche.
Integrationsdetails
Terminologie
Diese Integration umfasst die folgenden drei Clustertypen: Empfehlung, Empfohlen und Fortsetzung.
Empfehlungscluster enthalten personalisierte Dating-Vorschläge von einem einzelnen Entwicklerpartner. Diese Empfehlungen können für den Nutzer personalisiert werden.
- Ein Empfehlungscluster kann aus
ArticleEntity
,PersonEntity
, oderEventEntity
, aber keine Kombination verschiedener Entitätstypen.
Ihre Empfehlungen haben folgende Struktur:
Empfehlungscluster:Eine UI-Ansicht, die eine Gruppe von vom selben Entwicklerpartner erhalten.
Entität:Ein Objekt, das ein einzelnes Element in einem Cluster darstellt. Dieses bietet einige Entitäten, die mithilfe der Empfehlungscluster:
ArticleEntity: ArticleEntity steht für eine Empfehlung für textbasierte Inhalte zum Thema Dating. ArticleEntity-Element können Entwickler eine Vielzahl von Text- und Bildinhalten bereitstellen. mit mehr Metadaten, um den Nutzenden die Informationen zu vermitteln.
<ph type="x-smartling-placeholder">PersonEntity: PersonEntity repräsentiert eine Person. Die könnte sein, eine Person aus dem mit potenziellen Kund*innen zu gewinnen.
<ph type="x-smartling-placeholder">EventEntity: EventEntity repräsentiert ein Ereignis, das in der zu entwickeln. Der Beginn eines Ereignisses ist eine wichtige Information, den Nutzenden vermittelt werden muss.
<ph type="x-smartling-placeholder">
- Ein Empfehlungscluster kann aus
Im Cluster Fortsetzung werden Inhalte angezeigt, die kürzlich von Nutzern aus mehrere Entwicklerpartner in einer einzigen UI-Gruppierung zusammenfassen. Jeder Entwicklerpartner dürfen maximal zehn Rechtssubjekte in der Fortsetzung übertragen. Cluster.
Fortsetzungsinhalte können die folgende Struktur haben:
ArticleEntity: ArticleEntity steht für eine Empfehlung für textbasierte Inhalte zum Thema Dating. Mit dieser Entität können unvollständige Nachrichtenartikel oder andere Inhalte darstellen, die der Nutzer sie dort weiterschauen, wo sie aufgehört haben.
<ph type="x-smartling-placeholder">EventReservationEntity: EventReservationEntity steht für Reservierung für einen Termin und hilft Nutzern dabei, anstehende oder laufende und Reservierungen für Dating- und Treffentreffen.
<ph type="x-smartling-placeholder">
Der Cluster Empfohlen ist eine UI-Ansicht, in der das ausgewählte Hero-Image zu sehen ist.
GenericFeaturedEntity
von vielen Entwicklerpartnern in einer UI-Gruppierung. Es gibt einen einzelnen „Featured Cluster“, der sich am oberen Rand der Benutzeroberfläche mit einer Prioritätsplatzierung über allen Empfehlungsclustern Jedes Entwicklerpartner dürfen eine einzelne Entität einer unterstützten geben Sie „Featured“ mit vielen Entitäten (möglicherweise unterschiedlichen Typs) aus mehrere App-Entwickler im „Empfohlen“-Cluster erstellt.GenericFeaturedEntity: GenericFeaturedEntity unterscheidet sich von Empfehlung in „Vorgestelltes Element“ sollte für eine einzelne von Entwicklern zu erhalten. Sie sollten die für Nutzer interessant und relevant sind.
<ph type="x-smartling-placeholder">
Vorarbeiten
Mindest-API-Level: 19
Fügen Sie Ihrer App die com.google.android.engage:engage-core
-Bibliothek hinzu:
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'
}
Zusammenfassung
Das Design basiert auf der Implementierung einer gebundenen Dienst.
Die Daten, die ein Client veröffentlichen kann, unterliegen den folgenden Beschränkungen für verschiedene Clustertypen:
Clustertyp | Cluster limits | Minimale Entitätslimits in einem Cluster | Maximale Entitätslimits in einem Cluster |
---|---|---|---|
Empfehlungscluster | Höchstens 5 | Mindestens 5 | Höchstens 25 (ArticleEntity , PersonEntity oder
EventEntity ) |
Fortsetzungscluster | Höchstens 1 | Mindestens 1 | Höchstens 10 (ArticleEntity oder
EventReservationEntity ) |
Ausgewählter Cluster | Höchstens 1 | Mindestens 1 | Höchstens 10 (GenericFeaturedEntity ) |
Schritt 1: Entitätsdaten angeben
Im SDK sind verschiedene Entitäten für jeden Elementtyp definiert. Wir unterstützen die folgenden Rechtssubjekte aus der Kategorie „Dating“:
GenericFeaturedEntity
ArticleEntity
PersonEntity
EventEntity
EventReservationEntity
In den folgenden Tabellen sind die verfügbaren Attribute und Anforderungen für die einzelnen Typen aufgeführt.
GenericFeaturedEntity
Attribut | Anforderungen | Beschreibung | Formatieren |
---|---|---|---|
Aktions-URI | Erforderlich |
Deeplink zur Entität in der Anbieter-App. Hinweis: Für die Attribution können Sie Deeplinks verwenden. <ph type="x-smartling-placeholder"></ph> Weitere Informationen |
Uri |
Posterbilder | Erforderlich | Wenn mehrere Bilder zur Verfügung gestellt werden, wird nur ein Bild angezeigt. Empfohlenes Seitenverhältnis: 16:9 Hinweis: Wenn Sie ein Logo erhalten, achten Sie auf 24 dps am oberen und unteren Rand des Bildes |
Weitere Informationen finden Sie unter Bildspezifikationen. |
Titel | Optional | Titel der Entität. | Freier Text Empfohlene Textgröße: 50 Zeichen |
Beschreibung | Optional | Ein einzelner Textabschnitt, der die Entität beschreibt. Hinweis: Es wird entweder eine Beschreibung oder eine Untertitelliste angezeigt werden, nicht beides. |
Freier Text Empfohlene Textgröße: 180 Zeichen |
Untertitelliste | Optional | Bis zu drei Untertitel mit jeweils einer Textzeile. Hinweis: Es wird entweder eine Beschreibung oder eine Untertitelliste angezeigt werden, nicht beides. |
Freier Text Empfohlene Textgröße für jeden Untertitel: maximal 50 Zeichen |
Badges | Optional | Jedes Badge kann entweder aus freiem Text (max. 15 Zeichen) oder aus einem kleinen Bild bestehen. Spezielle UX-Bedienung über Bildern/Videos, z. B. als Badge Overlay auf dem Bild
|
|
Badge – Text | Optional | Titel für das Logo Hinweis: Für das Logo ist entweder Text oder ein Bild erforderlich. |
Freier Text Empfohlene Textgröße: max. 15 Zeichen |
Badge – Bild | Optional | Kleines Bild Spezielle Nutzererfahrung, z. B. als Badge-Overlay auf dem Bild/Video Thumbnail. Hinweis: Für das Logo ist entweder Text oder ein Bild erforderlich. |
Weitere Informationen finden Sie unter Bildspezifikationen. |
Inhaltskategorien | Optional | Beschreiben Sie die Kategorie des Inhalts in der Entität. | Liste der Enums Weitere Informationen finden Sie im Abschnitt Inhaltskategorie. . |
ArticleEntity
Attribut | Anforderungen | Beschreibung | Formatieren |
---|---|---|---|
Aktions-URI | Erforderlich |
Deeplink zur Entität in der Anbieter-App. Hinweis: Für die Attribution können Sie Deeplinks verwenden. <ph type="x-smartling-placeholder"></ph> Weitere Informationen |
Uri |
Titel | Erforderlich | Titel der Entität. | Freier Text Empfohlene Textgröße: max. 50 Zeichen |
Posterbilder | Optional | Wenn mehrere Bilder zur Verfügung gestellt werden, wird nur ein Bild angezeigt. Empfohlenes Seitenverhältnis: 16:9 Hinweis:Bilder werden dringend empfohlen. Wenn ein Abzeichen Achten Sie darauf, einen sicheren Abstand von 24 dps am oberen und unteren Rand des Geräts Bild |
Weitere Informationen finden Sie unter Bildspezifikationen. |
Quelle – Titel | Optional | Name des Autors, der Organisation oder des Melders | Freier Text Empfohlene Textgröße: unter 25 Zeichen |
Quelle – Bild | Optional | Ein Bild der Quelle, z. B. Autor, Organisation oder Reporter | Weitere Informationen finden Sie unter Bildspezifikationen. |
Beschreibung | Optional | Ein einzelner Textabschnitt, der die Entität beschreibt. Hinweis: Es wird entweder eine Beschreibung oder eine Untertitelliste angezeigt werden, nicht beides. |
Freier Text Empfohlene Textgröße: 180 Zeichen |
Untertitelliste | Optional | Bis zu drei Untertitel mit jeweils einer Textzeile. Hinweis: Es wird entweder eine Beschreibung oder eine Untertitelliste angezeigt werden, nicht beides. |
Freier Text Empfohlene Textgröße für jeden Untertitel: maximal 50 Zeichen |
Badges | Optional | Jedes Badge kann entweder aus freiem Text (max. 15 Zeichen) oder aus einem kleinen Bild bestehen. Spezielle UX-Bedienung über Bildern/Videos, z. B. als Badge Overlay auf dem Bild
|
|
Badge – Text | Optional | Titel für das Logo Hinweis: Für das Logo ist entweder Text oder ein Bild erforderlich. |
Freier Text Empfohlene Textgröße: max. 15 Zeichen |
Badge – Bild | Optional | Kleines Bild Spezielle Nutzererfahrung, z. B. als Badge-Overlay auf dem Bild/Video Thumbnail. Hinweis: Für das Logo ist entweder Text oder ein Bild erforderlich. |
Weitere Informationen finden Sie unter Bildspezifikationen. |
Veröffentlichungszeitpunkt des Inhalts | Optional | Der Epochenzeitstempel in Millisekunden ab dem Zeitpunkt, an dem der Inhalt veröffentlicht / aktualisiert wird. | Epochen-Zeitstempel in Millisekunden |
Letzte Interaktionsdauer | Bedingt erforderlich | Der Epochenzeitstempel in Millisekunden für die Interaktion des Nutzers mit beim letzten Mal. Hinweis: Dieses Feld ist erforderlich, wenn diese Entität zu folgendem Element gehört: im Continuation-Cluster. |
Epochen-Zeitstempel in Millisekunden |
Fortschritt in Prozent | Bedingt erforderlich | Der Prozentsatz des gesamten Inhalts, den der Nutzer bisher genutzt hat. Hinweis: Dieses Feld ist erforderlich, wenn diese Entität zu folgendem Element gehört: im Continuation-Cluster. |
Ein Ganzzahlwert zwischen 0 und 100 (einschließlich). |
Inhaltskategorien | Optional | Beschreiben Sie die Kategorie des Inhalts in der Entität. | Liste der Enums Weitere Informationen finden Sie im Abschnitt Inhaltskategorie. . |
PersonEntity
Attribut | Anforderungen | Beschreibung | Formatieren |
---|---|---|---|
Aktions-URI | Erforderlich |
Deeplink zur Entität in der Anbieter-App. Hinweis: Für die Attribution können Sie Deeplinks verwenden. <ph type="x-smartling-placeholder"></ph> Weitere Informationen |
Uri |
Profil – Name | Erforderlich | Profilname, ID oder Alias, z. B. „Max Mustermann“, „@TeamPixel“ usw. | String Empfohlene Textgröße: max. 50 Zeichen |
Profil – Avatar | Erforderlich |
Profilbild oder Avatarbild des Nutzers. Hinweis:Es muss sich um ein quadratisches 1:1-Bild handeln. |
Weitere Informationen finden Sie unter Bildspezifikationen. |
Profil – Zusätzlicher Text | Optional | Freier Text wie der Profil-Alias. | Freier Text Empfohlene Textgröße: max. 15 Zeichen |
Profil – Zusätzliches Bild | Optional | Kleines Bild wie ein verifiziertes Logo | Weitere Informationen finden Sie unter Bildspezifikationen. |
Kopfzeilenbild | Optional |
Stellt das Kopfzeilenbild dar. Sollte sich vom Profilbild unterscheiden. Diese Option kann verwendet werden, wenn es ein zusätzliches Bild gibt, das die Person ihre Arbeit mögen. Hinweis:Es muss sich um ein Bild im 16:9-Format handeln. Wird ein Badge bereitgestellt, Sorgen Sie für sicheren Platz von 24 dps am oberen und unteren Rand des Bildes. |
Weitere Informationen finden Sie unter Bildspezifikationen. |
Beliebtheit – Anzahl | Optional |
Geben Sie die Anzahl der Follower oder den Beliebtheitswert an. Beispiel: „3.7 M.“ Hinweis: Wenn sowohl „Anzahl“ als auch „Anzahl“ angegeben ist, gilt Folgendes: Anzahl wird verwendet |
String Empfohlene Textgröße: max. 20 Zeichen für „Anzahl“ + „Label“ kombiniert |
Beliebtheit – Anzahlwert | Optional | Die Anzahl der Follower oder der Beliebtheitswert. Hinweis:Geben Sie den Wert für die Anzahl an, wenn Ihre App die Logik für die Optimierung einer großen Zahl unterschiedliche Displaygrößen. Wenn sowohl „Count“ als auch „Count Value“ angegeben sind, Die Anzahl wird den Nutzern angezeigt. |
Lang |
Beliebtheit – Label | Optional | Das Label für die Beliebtheit angeben. Beispiel: „Gefällt mir“. | String Empfohlene Textgröße: max. 20 Zeichen für „Anzahl“ + „Label“ kombiniert |
Beliebtheit – Visuell | Optional |
Geben Sie an, wofür die Interaktion gedacht ist. Beispiel: Angezeigtes Bild „Gefällt mir“-Symbol, Emoji. Es können mehr als ein Bild bereitgestellt werden, es werden aber möglicherweise nicht alle Bilder angezeigt Formfaktoren. Hinweis:Es muss sich um ein quadratisches Bild mit einem Seitenverhältnis von 1:1 handeln. |
Weitere Informationen finden Sie unter Bildspezifikationen. |
Bewertung – Maximalwert | Erforderlich | Der Maximalwert der Bewertungsskala. Muss angegeben werden, wenn der aktuelle Wert der Bewertung ebenfalls bereitgestellt werden. |
Zahl >= 0,0 |
Bewertung – Aktueller Wert | Erforderlich | Der aktuelle Wert der Bewertungsskala. Muss angegeben werden, wenn auch der Höchstwert für die Bewertung vorhanden ist bereitgestellt werden. |
Zahl >= 0,0 |
Bewertung – Anzahl | Optional | Die Anzahl der Bewertungen für die Entität. Hinweis:Geben Sie dieses Feld an, wenn Ihre App steuern, wie dies den Nutzenden angezeigt wird. Geben Sie den genauen String an die dem Nutzer angezeigt werden. Wenn die Anzahl beispielsweise 1.000.000, sollten Sie Abkürzungen wie 1M verwenden, damit diese bei kleineren Bildschirmen abgeschnitten. |
String |
Bewertung – Anzahl | Optional | Die Anzahl der Bewertungen für die Entität. Hinweis: Geben Sie dieses Feld an, wenn Sie keine die Anzeige der Abkürzungslogik. Wenn sowohl „Anzahl“ als auch „Anzahl“-Werte angezeigt wird, verwenden wir die Anzahl, die den Nutzern angezeigt wird, |
Lang |
Standort – Land | Optional | Das Land, in dem die Person ansässig ist oder in dem sie tätig ist. | Freier Text Empfohlene Textgröße: max. 20 Zeichen |
Standort – Stadt | Optional | Die Stadt, in der sich die Person befindet oder in der sie tätig ist. | Freier Text Empfohlene Textgröße: max. 20 Zeichen |
Standort – angezeigte Adresse | Optional | Die Adresse, an der sich die Person befindet oder an der sie tätig ist, wird für Nutzenden. | Freier Text Empfohlene Textgröße: max. 20 Zeichen |
Standort – Adresse | Optional | Die Adresse (falls zutreffend), an der sich die Person befindet, oder der Auslieferung. | Freier Text Empfohlene Textgröße: max. 20 Zeichen |
Standort – Bundesland | Optional | Der Bundesstaat (falls zutreffend), in dem sich die Person befindet oder in der sie tätig ist. | Freier Text Empfohlene Textgröße: max. 20 Zeichen |
Standort – Postleitzahl | Optional | Die Postleitzahl (falls zutreffend), an der sich die Person befindet oder tätig ist. | Freier Text Empfohlene Textgröße: max. 20 Zeichen |
Standort – Stadtteil | Optional | Das Viertel (falls zutreffend), in dem sich die Person befindet oder in der sie tätig ist. | Freier Text Empfohlene Textgröße: max. 20 Zeichen |
Badges | Optional |
Jedes Badge kann entweder aus freiem Text (max. 15 Zeichen) oder aus einem kleinen Bild bestehen. |
|
Badge – Text | Optional | Titel für das Logo Hinweis: Für das Logo ist entweder Text oder ein Bild erforderlich. |
Freier Text Empfohlene Textgröße: max. 15 Zeichen |
Badge – Bild | Optional | Kleines Bild Spezielle Nutzererfahrung, z. B. als Badge-Overlay auf dem Bild/Video Thumbnail. Hinweis: Für das Logo ist entweder Text oder ein Bild erforderlich. |
Weitere Informationen finden Sie unter Bildspezifikationen. |
Beschreibung | Optional | Ein einzelner Textabschnitt, der die Entität beschreibt. Hinweis: Es wird entweder eine Beschreibung oder eine Untertitelliste angezeigt werden, nicht beides. |
Freier Text Empfohlene Textgröße: 180 Zeichen |
Untertitelliste | Optional | Bis zu drei Untertitel mit jeweils einer Textzeile. Hinweis: Es wird entweder eine Beschreibung oder eine Untertitelliste angezeigt werden, nicht beides. |
Freier Text Empfohlene Textgröße für jeden Untertitel: maximal 50 Zeichen |
Inhaltskategorien | Optional | Beschreiben Sie die Kategorie des Inhalts in der Entität. | Liste der möglichen Aufzählungen
Weitere Informationen finden Sie im Abschnitt Inhaltskategorie. . |
EventEntity
Attribut | Anforderungen | Beschreibung | Formatieren |
---|---|---|---|
Aktions-URI | Erforderlich |
Deeplink zur Entität in der Anbieter-App. Hinweis: Für die Attribution können Sie Deeplinks verwenden. <ph type="x-smartling-placeholder"></ph> Weitere Informationen |
Uri |
Titel | Erforderlich | Titel der Entität. | String Empfohlene Textgröße: max. 50 Zeichen |
Beginn | Erforderlich |
Der Epochenzeitstempel, an dem das Ereignis voraussichtlich beginnen wird. Hinweis: Der Wert wird in Millisekunden angegeben. |
Epochen-Zeitstempel in Millisekunden |
Ereignismodus | Erforderlich | Ein Feld, das angibt, ob die Veranstaltung virtuell, vor Ort oder beides. |
Enum: VIRTUAL, IN_PERSON oder HYBRID |
Posterbilder | Erforderlich | Wenn mehrere Bilder zur Verfügung gestellt werden, wird nur ein Bild angezeigt. Empfohlenes Seitenverhältnis: 16:9 Hinweis:Bilder werden dringend empfohlen. Wenn ein Abzeichen Achten Sie darauf, einen sicheren Abstand von 24 dps am oberen und unteren Rand des Geräts Bild |
Weitere Informationen finden Sie unter Bildspezifikationen. |
Standort – Land | Bedingt erforderlich | Das Land, in dem das Ereignis stattfindet. Hinweis: Dies ist für Veranstaltungen erforderlich, die IN_PERSON oder HYBRID |
Freier Text Empfohlene Textgröße: max. 20 Zeichen |
Standort – Stadt | Bedingt erforderlich | Die Stadt, in der das Ereignis stattfindet. Hinweis: Dies ist für Veranstaltungen erforderlich, die IN_PERSON oder HYBRID |
Freier Text Empfohlene Textgröße: max. 20 Zeichen |
Standort – angezeigte Adresse | Bedingt erforderlich | Die Adresse oder der Name des Veranstaltungsorts, in dem die Veranstaltung stattfindet. die für den Nutzer angezeigt werden sollen. Hinweis: Dies ist für Veranstaltungen erforderlich, die IN_PERSON oder HYBRID |
Freier Text Empfohlene Textgröße: max. 20 Zeichen |
Standort – Adresse | Optional | Straße (falls zutreffend) des Veranstaltungsorts gehostet wird. | Freier Text Empfohlene Textgröße: max. 20 Zeichen |
Standort – Bundesland | Optional | Das Bundesland, in dem das Ereignis stattfindet (falls zutreffend) gehostet wird. | Freier Text Empfohlene Textgröße: max. 20 Zeichen |
Standort – Postleitzahl | Optional | Die Postleitzahl (falls zutreffend) des Orts, an dem die Veranstaltung stattfindet gehostet wird. | Freier Text Empfohlene Textgröße: max. 20 Zeichen |
Standort – Stadtteil | Optional | Der Stadtteil (falls zutreffend), in dem die Veranstaltung stattfindet. | Freier Text Empfohlene Textgröße: max. 20 Zeichen |
Ende | Optional |
Der Epochenzeitstempel, an dem das Ereignis voraussichtlich enden wird. Hinweis: Der Wert wird in Millisekunden angegeben. |
Epochen-Zeitstempel in Millisekunden |
Beschreibung | Optional | Ein einzelner Textabschnitt, der die Entität beschreibt. Hinweis: Es wird entweder eine Beschreibung oder eine Untertitelliste angezeigt werden, nicht beides. |
Freier Text Empfohlene Textgröße: 180 Zeichen |
Untertitelliste | Optional | Bis zu drei Untertitel mit jeweils einer Textzeile. Hinweis: Es wird entweder eine Beschreibung oder eine Untertitelliste angezeigt werden, nicht beides. |
Freier Text Empfohlene Textgröße für jeden Untertitel: maximal 50 Zeichen |
Badges | Optional |
Jedes Badge kann entweder aus freiem Text (max. 15 Zeichen) oder aus einem kleinen Bild bestehen. |
|
Badge – Text | Optional | Titel für das Logo Hinweis: Für das Logo ist entweder Text oder ein Bild erforderlich. |
Freier Text Empfohlene Textgröße: max. 15 Zeichen |
Badge – Bild | Optional | Kleines Bild Spezielle Nutzererfahrung, z. B. als Badge-Overlay auf dem Bild/Video Thumbnail. Hinweis: Für das Logo ist entweder Text oder ein Bild erforderlich. |
Weitere Informationen finden Sie unter Bildspezifikationen. |
Price - CurrentPrice | Bedingt erforderlich |
Der aktuelle Preis des Tickets oder der Zeitkarte für die Veranstaltung. <ph type="x-smartling-placeholder"></ph> Muss angegeben werden, wenn ein durchgestrichener Preis angegeben wird. |
Freier Text |
Preis – durchgestrichener Preis | Optional | Der ursprüngliche Preis des Tickets oder der Zeitkarte für die Veranstaltung. | Freier Text |
Preis-Callout | Optional | Preiserweiterung mit Zusatzinformationen zu Werbeaktionen, Veranstaltungen oder Rabatten für Mitglieder (falls verfügbar). | Freier Text Empfohlene Textgröße: weniger als 45 Zeichen (Text ist zu lang) werden möglicherweise Auslassungspunkte angezeigt) |
Inhaltskategorien | Optional | Beschreiben Sie die Kategorie des Inhalts in der Entität. | Liste der möglichen Aufzählungen
Weitere Informationen finden Sie im Abschnitt Inhaltskategorie. . |
EventReservationEntity
Attribut | Anforderungen | Beschreibung | Formatieren |
---|---|---|---|
Aktions-URI | Erforderlich |
Deeplink zur Entität in der Anbieter-App. Hinweis: Für die Attribution können Sie Deeplinks verwenden. <ph type="x-smartling-placeholder"></ph> Weitere Informationen |
Uri |
Titel | Erforderlich | Titel der Entität. | String Empfohlene Textgröße: max. 50 Zeichen |
Beginn | Erforderlich |
Der Epochenzeitstempel, an dem das Ereignis voraussichtlich beginnen wird. Hinweis: Der Wert wird in Millisekunden angegeben. |
Epochen-Zeitstempel in Millisekunden |
Ereignismodus | Erforderlich | Ein Feld, das angibt, ob die Veranstaltung virtuell, vor Ort oder beides. |
Enum: VIRTUAL, IN_PERSON oder HYBRID |
Standort – Land | Bedingt erforderlich | Das Land, in dem das Ereignis stattfindet. Hinweis: Dies ist für Veranstaltungen erforderlich, die IN_PERSON oder HYBRID |
Freier Text Empfohlene Textgröße: max. 20 Zeichen |
Standort – Stadt | Bedingt erforderlich | Die Stadt, in der das Ereignis stattfindet. Hinweis: Dies ist für Veranstaltungen erforderlich, die IN_PERSON oder HYBRID |
Freier Text Empfohlene Textgröße: max. 20 Zeichen |
Standort – angezeigte Adresse | Bedingt erforderlich | Die Adresse oder der Name des Veranstaltungsorts, in dem die Veranstaltung stattfindet. die für den Nutzer angezeigt werden sollen. Hinweis: Dies ist für Veranstaltungen erforderlich, die IN_PERSON oder HYBRID |
Freier Text Empfohlene Textgröße: max. 20 Zeichen |
Standort – Adresse | Optional | Straße (falls zutreffend) des Veranstaltungsorts gehostet wird. | Freier Text Empfohlene Textgröße: max. 20 Zeichen |
Standort – Bundesland | Optional | Das Bundesland, in dem das Ereignis stattfindet (falls zutreffend) gehostet wird. | Freier Text Empfohlene Textgröße: max. 20 Zeichen |
Standort – Postleitzahl | Optional | Die Postleitzahl (falls zutreffend) des Orts, an dem die Veranstaltung stattfindet gehostet wird. | Freier Text Empfohlene Textgröße: max. 20 Zeichen |
Standort – Stadtteil | Optional | Der Stadtteil (falls zutreffend), in dem die Veranstaltung stattfindet. | Freier Text Empfohlene Textgröße: max. 20 Zeichen |
Posterbilder | Optional | Wenn mehrere Bilder zur Verfügung gestellt werden, wird nur ein Bild angezeigt. Empfohlenes Seitenverhältnis: 16:9 Hinweis:Bilder werden dringend empfohlen. Wenn ein Abzeichen Achten Sie darauf, einen sicheren Abstand von 24 dps am oberen und unteren Rand des Geräts Bild |
Weitere Informationen finden Sie unter Bildspezifikationen. |
Ende | Optional |
Der Epochenzeitstempel, an dem das Ereignis voraussichtlich enden wird. Hinweis: Der Wert wird in Millisekunden angegeben. |
Epochen-Zeitstempel in Millisekunden |
Dienstanbieter – Name | Optional |
Der Name des Dienstanbieters. Hinweis:Für den Dienst ist entweder Text oder Bild erforderlich. Dienstanbieter. |
Freier Text. Beispiel: Name des Organisators/der Tour |
Dienstanbieter – Bild | Optional |
Das Logo oder Bild des Dienstanbieters. Hinweis:Für den Dienst ist entweder Text oder Bild erforderlich. Dienstanbieter. |
Weitere Informationen finden Sie unter Bildspezifikationen. |
Beschreibung | Optional | Ein einzelner Textabschnitt, der die Entität beschreibt. Hinweis: Es wird entweder eine Beschreibung oder eine Untertitelliste angezeigt werden, nicht beides. |
Freier Text Empfohlene Textgröße: 180 Zeichen |
Untertitelliste | Optional | Bis zu drei Untertitel mit jeweils einer Textzeile. Hinweis: Es wird entweder eine Beschreibung oder eine Untertitelliste angezeigt werden, nicht beides. |
Freier Text Empfohlene Textgröße für jeden Untertitel: maximal 50 Zeichen |
Badges | Optional |
Jedes Badge kann entweder aus freiem Text (max. 15 Zeichen) oder aus einem kleinen Bild bestehen. |
|
Badge – Text | Optional | Titel für das Logo Hinweis: Für das Logo ist entweder Text oder ein Bild erforderlich. |
Freier Text Empfohlene Textgröße: max. 15 Zeichen |
Badge – Bild | Optional | Kleines Bild Spezielle Nutzererfahrung, z. B. als Badge-Overlay auf dem Bild/Video Thumbnail. Hinweis: Für das Logo ist entweder Text oder ein Bild erforderlich. |
Weitere Informationen finden Sie unter Bildspezifikationen. |
Reservierungs-ID | Optional | Die Reservierungs-ID für die Terminreservierung. | Freier Text |
Price - CurrentPrice | Bedingt erforderlich |
Der aktuelle Preis des Tickets oder der Zeitkarte für die Veranstaltung. <ph type="x-smartling-placeholder"></ph> Muss angegeben werden, wenn ein durchgestrichener Preis angegeben wird. |
Freier Text |
Preis – durchgestrichener Preis | Optional | Der ursprüngliche Preis des Tickets oder der Zeitkarte für die Veranstaltung. | Freier Text |
Preis-Callout | Optional | Preiserweiterung mit Zusatzinformationen zu Werbeaktionen, Veranstaltungen oder Rabatten für Mitglieder (falls verfügbar). | Freier Text Empfohlene Textgröße: weniger als 45 Zeichen (Text ist zu lang) werden möglicherweise Auslassungspunkte angezeigt) |
Bewertung – Maximalwert | Optional | Der Maximalwert der Bewertungsskala. Muss angegeben werden, wenn der aktuelle Wert der Bewertung ebenfalls bereitgestellt werden. |
Zahl >= 0,0 |
Bewertung – Aktueller Wert | Optional | Der aktuelle Wert der Bewertungsskala. Muss angegeben werden, wenn auch der Höchstwert für die Bewertung vorhanden ist bereitgestellt werden. |
Zahl >= 0,0 |
Bewertung – Anzahl | Optional | Die Anzahl der Bewertungen für das Ereignis. Hinweis:Geben Sie dieses Feld an, wenn Ihre App steuern, wie dies den Nutzenden angezeigt wird. Geben Sie den genauen String an die dem Nutzer angezeigt werden. Wenn die Anzahl beispielsweise 1.000.000, sollten Sie Abkürzungen wie 1M verwenden, damit diese bei kleineren Bildschirmen abgeschnitten. |
String |
Bewertung – Anzahl | Optional | Die Anzahl der Bewertungen für das Ereignis. Hinweis: Geben Sie dieses Feld an, wenn Sie keine die Anzeige der Abkürzungslogik. Wenn sowohl „Anzahl“ als auch „Anzahl“-Werte angezeigt wird, verwenden wir die Anzahl, die den Nutzern angezeigt wird, |
Lang |
Inhaltskategorien | Optional | Beschreiben Sie die Kategorie des Inhalts in der Entität. | Liste der möglichen Aufzählungen
Weitere Informationen finden Sie im Abschnitt Inhaltskategorie. . |
Bildspezifikationen
Die erforderlichen Spezifikationen für Bild-Assets sind in der folgenden Tabelle aufgeführt:
Seitenverhältnis | Mindestanzahl Pixel | Empfohlene Pixel |
---|---|---|
Quadrat (1 × 1) Bevorzugt |
300 × 300 | 1200 × 1200 |
Querformat (1,91 x 1) | 600 × 314 | 1200 × 628 |
Hochformat (4:5) | 480 × 600 | 960 × 1200 |
Die Images müssen auf öffentlichen CDNs gehostet werden, damit Google auf sie zugreifen kann .
Dateiformate
PNG, JPG, statisches GIF, WebP
Maximale Dateigröße
5.120 KB
Weitere Empfehlungen
- Bildbereich:Wichtige Inhalte sollten in den mittleren 80% des Bild.
- Verwenden Sie einen transparenten Hintergrund, damit das Bild Einstellungen für das dunkle und helle Design.
Content-Kategorie
Mit der Inhaltskategorie können Apps Inhalte veröffentlichen, die mehreren Kategorien. Dadurch wird der Inhalt einigen der vordefinierten Kategorien zugeordnet, nämlich:
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
Die Images müssen auf öffentlichen CDNs gehostet werden, damit Google auf sie zugreifen kann .
Richtlinien für die Verwendung der Inhaltskategorien
- Einige Entitäten wie ArticleEntity und GenericFeaturedEntity sind Content-Kategorien verwenden dürfen. Für andere Entitäten wie EventEntity, EventReservationEntity, PersonEntity, nur eine Teilmenge dieser Kategorien infrage kommen. Liste der infrage kommenden Kategorien anzeigen einen Entitätstyp aus, bevor Sie die Liste ausfüllen.
Den spezifischen Entitätstyp für einige Inhaltskategorien statt einer Kombination verwenden der generischen Entitäten und der ContentCategory:
- TYPE_MovieS_AND_TV_SHOWS - Entdecke die TV-Sender von Smartwatch-Integrationsleitfaden ansehen, bevor du das generische Entitäten.
- TYPE_BOOKS - Lesen Sie EbookEntity verwenden, bevor Sie das generische Entitäten.
- TYPE_AUDIOBOOKS - zur Kasse Hörbuchentität vorher mithilfe der generischen Entitäten.
- TYPE_SHOPPING - Bezahlen ShoppingEntity vor mithilfe der generischen Entitäten.
- TYPE_FOOD_AND_DRINK – Entitäten aus bezahlen Leitfaden für die Integration von Lebensmitteln, bevor Sie den generische Entitäten.
Das Feld "ContentCategory" ist optional und sollte leer bleiben, wenn gehört zu keiner der oben genannten Kategorien.
Falls mehrere Inhaltskategorien angegeben werden, geben Sie diese in der Reihenfolge an. für den Content mit der relevantesten Inhaltskategorie an erster Stelle.
Schritt 2: Clusterdaten bereitstellen
Es wird empfohlen, den Job zur Inhaltsveröffentlichung im Hintergrund auszuführen. (z. B. mit WorkManager) regelmäßig oder auf Ereignisbasis (z. B. jedes Mal wenn der Nutzer die App öffnet oder gerade etwas in den Einkaufswagen gelegt hat.
AppEngagePublishClient
ist für das Veröffentlichen von Clustern zuständig.
Es gibt die folgenden APIs, um Cluster im Client zu veröffentlichen:
isServiceAvailable
publishRecommendationClusters
publishFeaturedCluster
publishContinuationCluster
publishUserAccountManagementRequest
updatePublishStatus
deleteRecommendationsClusters
deleteFeaturedCluster
deleteContinuationCluster
deleteUserManagementCluster
deleteClusters
isServiceAvailable
Mit dieser API wird geprüft, ob der Dienst für die Integration verfügbar ist ob die Inhalte auf dem Gerät angezeigt werden können.
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
Diese API wird verwendet, um eine Liste von RecommendationCluster
-Objekten zu veröffentlichen.
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());
Wenn der Dienst die Anfrage erhält, werden die folgenden Aktionen innerhalb von eine Transaktion:
- Vorhandene
RecommendationCluster
-Daten des Entwicklerpartners werden entfernt. - Daten aus der Anfrage werden geparst und in der aktualisierten Empfehlung gespeichert Cluster.
Tritt ein Fehler auf, wird die gesamte Anfrage abgelehnt und der aktuelle Status lautet beibehalten werden.
publishFeaturedCluster
Diese API wird verwendet, um eine Liste von FeaturedCluster
-Objekten zu veröffentlichen.
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());
Wenn der Dienst die Anfrage erhält, werden die folgenden Aktionen innerhalb von eine Transaktion:
- Vorhandene
FeaturedCluster
-Daten des Entwicklerpartners werden entfernt. - Die Daten aus der Anfrage werden geparst und im aktualisierten „Featured Cluster“ gespeichert.
Tritt ein Fehler auf, wird die gesamte Anfrage abgelehnt und der aktuelle Status lautet beibehalten werden.
publishContinuationCluster
Diese API wird zum Veröffentlichen eines ContinuationCluster
-Objekts verwendet.
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());
Wenn der Dienst die Anfrage erhält, werden die folgenden Aktionen innerhalb von eine Transaktion:
- Vorhandene
ContinuationCluster
-Daten des Entwicklerpartners werden entfernt. - Die Daten aus der Anfrage werden geparst und in der aktualisierten Continuation gespeichert. Cluster.
Tritt ein Fehler auf, wird die gesamte Anfrage abgelehnt und der aktuelle Status lautet beibehalten werden.
publishUserAccountManagementRequest
Dieses API wird verwendet, um eine Anmeldekarte zu veröffentlichen . Bei der Anmeldung werden Nutzer weitergeleitet zu Anmeldeseite der App hinzufügen, damit die App Inhalte veröffentlichen oder weitere personalisierte Inhalte)
Die folgenden Metadaten sind Teil der Anmeldekarte:
Attribut | Anforderungen | Beschreibung |
---|---|---|
Aktions-URI | Erforderlich | Deeplink zu Aktion (z.B. Weiterleitung zur Anmeldeseite der App) |
Bild | Optional – falls nicht angegeben, muss ein Titel angegeben werden |
Bild auf der Karte Bilder mit einem Seitenverhältnis von 16:9 und einer Auflösung von 1264 x 712 |
Titel | Optional – falls nicht angegeben, muss ein Bild angegeben werden | Titel auf der Karte |
Aktionstext | Optional | Text, der im CTA angezeigt wird (z.B. „Anmelden“) |
Untertitel | Optional | Optionale Untertitel auf der Karte |
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());
Wenn der Dienst die Anfrage erhält, werden die folgenden Aktionen innerhalb von eine Transaktion:
- Vorhandene
UserAccountManagementCluster
-Daten vom Entwicklerpartner sind entfernt. - Die Daten aus der Anfrage werden geparst und in der aktualisierten UserAccountManagementCluster-Cluster.
Tritt ein Fehler auf, wird die gesamte Anfrage abgelehnt und der aktuelle Status lautet beibehalten werden.
updatePublishStatus
Wird aus internen geschäftlichen Gründen keiner der Cluster veröffentlicht, dringend, den Veröffentlichungsstatus mithilfe der updatePublishStatus verwenden. Dies ist aus folgenden Gründen wichtig :
- Angabe des Status in allen Szenarien, auch wenn die Inhalte veröffentlicht wurden (STATUS == VERÖFFENTLICHT) ist wichtig, um Dashboards mit diesem expliziten Status, um den Zustand und andere Messwerte deiner Integration zu vermitteln.
- Wenn keine Inhalte veröffentlicht werden, der Integrationsstatus aber nicht fehlerhaft ist (STATUS == NOT_PUBLISHED), Google kann verhindern, dass Benachrichtigungen in der App ausgelöst werden Gesundheits-Dashboards. Er bestätigt, dass Inhalte aufgrund eines erwartete Situation aus Sicht des Anbieters.
- Es hilft Entwickelnden, Erkenntnisse darüber zu geben, wann die Daten veröffentlicht werden nicht.
- Google kann die Statuscodes verwenden, um Nutzer zu bestimmten Aktionen in damit sie den App-Inhalt sehen oder überwinden können.
Die Liste der zulässigen Veröffentlichungsstatuscodes sieht so aus :
// 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
Wenn die Inhalte nicht veröffentlicht werden, weil ein Nutzer nicht angemeldet ist, verwendet Google empfehlen wir, die Anmeldekarte zu veröffentlichen. Wenn Anbieter nicht in der Lage sind, um die Anmeldekarte zu veröffentlichen, dann empfehlen wir, die updatePublishStatus API mit dem Statuscode NICHT_VERÖFFENTLICHT_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
Mit dieser API wird der Inhalt von Empfehlungsclustern gelöscht.
Kotlin
client.deleteRecommendationClusters()
Java
client.deleteRecommendationClusters();
Wenn der Dienst die Anfrage erhält, werden die vorhandenen Daten aus der Empfehlungscluster. Tritt ein Fehler auf, wird die gesamte Anfrage abgelehnt der bestehende Zustand beibehalten wird.
deleteFeaturedCluster
Diese API wird verwendet, um den Inhalt von empfohlenen Clustern zu löschen.
Kotlin
client.deleteFeaturedCluster()
Java
client.deleteFeaturedCluster();
Wenn der Dienst die Anfrage erhält, werden die vorhandenen Daten aus der Empfohlener Cluster. Tritt ein Fehler auf, wird die gesamte Anfrage abgelehnt und der der aktuelle Zustand beibehalten wird.
deleteContinuationCluster
Diese API wird verwendet, um den Inhalt des Fortsetzungsclusters zu löschen.
Kotlin
client.deleteContinuationCluster()
Java
client.deleteContinuationCluster();
Wenn der Dienst die Anfrage erhält, werden die vorhandenen Daten aus der Fortsetzungscluster. Tritt ein Fehler auf, wird die gesamte Anfrage abgelehnt der bestehende Zustand beibehalten wird.
deleteUserManagementCluster
Diese API wird verwendet, um den Inhalt des UserAccountManagement-Clusters zu löschen.
Kotlin
client.deleteUserManagementCluster()
Java
client.deleteUserManagementCluster();
Wenn der Dienst die Anfrage erhält, werden die vorhandenen Daten aus der UserAccountManagement-Cluster. Tritt ein Fehler auf, wird die gesamte Anfrage abgelehnt und der bestehende Status wird beibehalten.
deleteClusters
Diese API wird verwendet, um den Inhalt eines bestimmten Clustertyps zu löschen.
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());
Wenn der Dienst die Anfrage erhält, werden die vorhandenen Daten aus allen Cluster, die den angegebenen Clustertypen entsprechen. Kunden können ein oder mehrere viele Clustertypen. Tritt ein Fehler auf, wird die gesamte Anfrage abgelehnt und der der aktuelle Zustand beibehalten wird.
Fehlerbehandlung
Es wird dringend empfohlen, das Aufgabenergebnis der Publish-APIs wie dass eine Folgeaktion ergriffen werden kann, um eine erfolgreiche Aufgabe wiederherzustellen und erneut zu senden.
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 } } } });
Der Fehler wird als AppEngageException
zurückgegeben, wobei die Ursache
Fehlercode angezeigt.
Fehlercode | Hinweis |
---|---|
SERVICE_NOT_FOUND |
Der Dienst ist auf dem betreffenden Gerät nicht verfügbar. |
SERVICE_NOT_AVAILABLE |
Der Dienst ist auf dem jeweiligen Gerät verfügbar, aber nicht. zum Zeitpunkt des Aufrufs ändern (z. B. explizit deaktiviert). |
SERVICE_CALL_EXECUTION_FAILURE |
Die Aufgabe konnte aufgrund von Threading-Problemen nicht ausgeführt werden. In diesem Fall kann es erneut versuchen können. |
SERVICE_CALL_PERMISSION_DENIED |
Der Aufrufer ist nicht berechtigt, den Dienstaufruf durchzuführen. |
SERVICE_CALL_INVALID_ARGUMENT |
Die Anfrage enthält ungültige Daten (zum Beispiel mehr als die zulässigen Clusteranzahl). |
SERVICE_CALL_INTERNAL |
Dienstseitig ist ein Fehler aufgetreten. |
SERVICE_CALL_RESOURCE_EXHAUSTED |
Der Dienstaufruf erfolgt zu häufig. |
Schritt 3: Mit Broadcast-Intents umgehen
Neben den Aufrufen der
Content API zum Veröffentlichen über einen Job
für die Einrichtung eines
BroadcastReceiver
zum Empfangen von
um die Veröffentlichung
von Inhalten zu beantragen.
Das Ziel von Broadcast-Intents besteht hauptsächlich zur Reaktivierung von Apps und zum Erzwingen von Daten. synchronisieren. Broadcast-Intents sind nicht für das häufige Senden konzipiert. Es ist nur die ausgelöst werden, wenn Google Engage für Agenturen feststellt, dass die Inhalte veraltet sind (für z. B. eine Woche alt). Auf diese Weise besteht ein größeres Vertrauen, dass die Nutzenden Inhalte aktualisieren, auch wenn die App länger als lange Zeit verbringen.
BroadcastReceiver
muss auf zwei Arten eingerichtet werden:
- Dynamisches Registrieren einer Instanz der
BroadcastReceiver
-Klasse mithilfe vonContext.registerReceiver()
. Dies ermöglicht die Kommunikation von Anwendungen die sich noch im Arbeitsspeicher befinden.
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)); }
- Sie müssen eine Implementierung mit dem
<receiver>
-Tag in IhremAndroidManifest.xml
-Datei. Dadurch kann die Anwendung Nachrichten an alle Intents erstellt, wenn sie nicht ausgeführt wird, und ermöglicht der App, für den Inhalt.
<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>
Die folgenden Intents werden vom Dienst:
com.google.android.engage.action.PUBLISH_RECOMMENDATION
Empfohlen , um bei Erhalt dieses Intents einenpublishRecommendationClusters
-Aufruf zu starten.com.google.android.engage.action.PUBLISH_FEATURED
Wir empfehlen, einenpublishFeaturedCluster
-Aufruf starten, wenn Sie diesen Intent erhalten.com.google.android.engage.action.PUBLISH_CONTINUATION
Wir empfehlen, einenpublishContinuationCluster
-Aufruf starten, wenn Sie diesen Intent erhalten.
Integrationsablauf
Eine detaillierte Anleitung zur Verifizierung deiner Integration nach Abschluss findest du unter Workflow zur Einbindung von Entwicklern:
Häufig gestellte Fragen
Weitere Informationen finden Sie in den häufig gestellten Fragen zum Engage SDK für FAQs
Kontakt
Kontakt Engage-developers@google.com, falls folgende Voraussetzungen erfüllt sind: Fragen während des Integrationsprozesses stellen.
Nächste Schritte
Nach Abschluss der Integration sind folgende Schritte erforderlich:
- E-Mail senden an Engage-developers@google.com und hängen Sie Ihr integriertes APK an, das von Google getestet werden kann.
- Google führt eine Überprüfung durch und prüft diese intern, um sicherzustellen, wie erwartet funktioniert. Falls Änderungen erforderlich sind, kontaktiert Google Sie. mit allen erforderlichen Details.
- Wenn die Tests abgeschlossen sind und keine Änderungen erforderlich sind, kontaktiert Google Sie, benachrichtigt Sie, dass Sie mit der Veröffentlichung des aktualisierten und integrierten APK beginnen können. im Play Store.
- Nachdem Google bestätigt hat, dass Ihr aktualisiertes APK im Play Store, Ihre Empfehlung, Angesagt und Fortsetzung Cluster können veröffentlicht und für Nutzer sichtbar sein.