Engage SDK Dating: Anleitung zur technischen Integration von Drittanbietern

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, oder EventEntity, 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">
        </ph>
        Abbildung 1:Benutzeroberfläche mit einer einzelnen ArticleEntity im Empfehlungscluster.
      • 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">
        </ph>
        Abbildung 2: Benutzeroberfläche mit einer einzelnen PersonEntity in Empfehlungscluster.
      • EventEntity: EventEntity repräsentiert ein Ereignis, das in der in der Zukunft. Der Beginn eines Ereignisses ist eine wichtige Information, den Nutzenden vermittelt werden muss.

        <ph type="x-smartling-placeholder">
        </ph>
        Abbildung 3:Benutzeroberfläche mit einer einzelnen EventEntity im Empfehlungscluster an.
  • 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">
      </ph>
      Abbildung 6: Benutzeroberfläche mit einer einzelnen ArticleEntity ein Continuation-Cluster.
    • EventReservationEntity: EventReservationEntity steht für Reservierung für eine Veranstaltung und hilft Nutzern dabei, anstehende oder laufende und Reservierungen für Dating- und Treffentreffen.

      <ph type="x-smartling-placeholder">
      </ph>
      Abbildung 8: Benutzeroberfläche mit einer EventReservationEntity in einem Continuation-Cluster.
  • 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">
      </ph>
      Abbildung 12: Benutzeroberfläche mit einem FeaturedCluster und einem Liste der GenericFeaturedEntity

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“:

  1. GenericFeaturedEntity
  2. ArticleEntity
  3. PersonEntity
  4. EventEntity
  5. 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 Textabsatz zur Beschreibung der Entität.

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-Oberfläche auf dem Bild/Video, z. B. als Logo Overlay auf dem Bild

  • „Live-Update“
  • Lesedauer für Artikel
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 Textabsatz zur Beschreibung der Entität.

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-Oberfläche auf dem Bild/Video, z. B. als Logo Overlay auf dem Bild

  • Beispiel: „Live-Update“
  • Beispiel: Lesedauer eines Artikels
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
Zeitpunkt der letzten Interaktion 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

Das Kopfzeilenbild Sollte sich vom Profilbild unterscheiden. Diese Option kann verwendet werden, wenn es ein zusätzliches Bild gibt, das die Person ihre Arbeit gefällt.

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 Maximalwert 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 selbst. 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 Textabsatz zur Beschreibung der Entität.

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

  • TYPE_HEALTH_AND_FITENESS (Beispiel – Yoga/Fitnesstrainer)
  • TYPE_HOME_AND_AUTO (Beispiel – Klempner)
  • TYPE_SPORTS (Beispiel – Spieler)
  • TYPE_DATING

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, an 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 Textabsatz zur Beschreibung der Entität.

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

  • TYPE_MovieS_AND_TV_SHOWS (Beispiel – Kino)
  • TYPE_DIGITAL_GAMES (Beispiel – eSports)
  • TYPE_MUSIC (Beispiel – Konzert)
  • TYPE_TRAVEL_AND_LOCAL (Beispiel – Tour, Festival)
  • TYPE_HEALTH_AND_FITENESS (Beispiel – Yoga-Kurs)
  • TYPE_EDUCATION (Beispiel – Klasse)
  • TYPE_SPORTS (Beispiel – Fußballspiel)
  • TYPE_DATING (Beispiel – Meetup)

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, an 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 Textabsatz zur Beschreibung der Entität.

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 Maximalwert 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 selbst. 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

  • TYPE_MovieS_AND_TV_SHOWS (Beispiel – Kino)
  • TYPE_DIGITAL_GAMES (Beispiel – eSports)
  • TYPE_MUSIC (Beispiel – Konzert)
  • TYPE_TRAVEL_AND_LOCAL (Beispiel – Tour, Festival)
  • TYPE_HEALTH_AND_FITENESS (Beispiel – Yoga-Kurs)
  • TYPE_EDUCATION (Beispiel – Klasse)
  • TYPE_SPORTS (Beispiel – Fußballspiel)
  • TYPE_DATING (Beispiel – Meetup)

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

  1. 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.
  2. Den spezifischen Entitätstyp für einige Inhaltskategorien statt einer Kombination verwenden der generischen Entitäten und der ContentCategory:

  3. Das Feld "ContentCategory" ist optional und sollte leer bleiben, wenn gehört zu keiner der oben genannten Kategorien.

  4. Falls mehrere Inhaltskategorien angegeben werden, geben Sie diese in der Reihenfolge an. 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 Inhalte nicht veröffentlicht werden, weil ein Nutzer nicht angemeldet ist, verwendet Google empfehlen, 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

Diese API wird verwendet, um den Inhalt von Empfehlungsclustern zu löschen.

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 darin, die App wieder zu aktivieren und Daten zu erzwingen 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 von Context.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 Ihrem AndroidManifest.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 einen publishRecommendationClusters-Aufruf zu starten.
  • com.google.android.engage.action.PUBLISH_FEATURED Wir empfehlen, einen publishFeaturedCluster-Aufruf starten, wenn Sie diesen Intent erhalten.
  • com.google.android.engage.action.PUBLISH_CONTINUATION Wir empfehlen, einen publishContinuationCluster-Aufruf starten, wenn Sie diesen Intent erhalten.

Integrationsablauf

Eine detaillierte Anleitung zur Verifizierung deiner Integration nach Fertigstellung findest du unter Workflow zur Einbindung von Entwicklern:

Häufig gestellte Fragen

Häufig gestellte 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.