Engage SDK Food: 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 Entwicklerpartner zur Integration ihrer und nutzen das Engage SDK, um sowohl die neue Oberfläche als auch vorhandenen Google-Plattformen.

Integrationsdetails

Terminologie

Diese Integration umfasst die folgenden fünf Clustertypen: Empfehlung, Vorgestellt, Lebensmitteleinkaufswagen, Lebensmitteleinkaufsliste und Nachbestellen.

  • Empfehlungscluster zeigen personalisierte, auf Essen bezogene Vorschläge von einer einzelnen Entwicklerpartner. Diese Empfehlungen können auf die oder generalisiert (z. B. Neu im Angebot). Verwenden Sie sie, um Rezepte anzuzeigen, Geschäften, Geschirr, Lebensmitteln usw.

    • Ein Empfehlungscluster kann aus ProductEntity, StoreEntity oder RecipeEntity-Einträge, jedoch keine Mischung aus verschiedenen Entitätstypen.
    Abbildung : „ProductEntity“, „StoreEntity“ und „RezeptEntity“. (*Benutzeroberfläche nur zur Veranschaulichung)
  • Im Cluster Empfohlen wird der ausgewählte Hero ProductEntity präsentiert, StoreEntity oder RecipeEntity von vielen Entwicklerpartnern in einer einzigen Benutzeroberfläche Gruppierung. Es gibt einen einzelnen Feature-Cluster, der in der Nähe von im oberen Bereich der Benutzeroberfläche, mit einer Prioritätsplatzierung über allen Empfehlungen. Cluster. Jeder Entwicklerpartner darf eine einzelne Entität übertragen. eines unterstützten Typs in "Featured" mit vielen Entitäten (möglicherweise unterschiedlich Typen) von mehreren App-Entwicklern im Cluster „Empfohlen“.

    <ph type="x-smartling-placeholder">
    </ph> <ph type="x-smartling-placeholder">
    </ph> Abbildung : Empfohlener Cluster mit „RecipeEntity“. (*Benutzeroberfläche nur zur Veranschaulichung)
  • Der Cluster Lebensmitteleinkaufswagen bietet einen kleinen Vorgeschmack auf das Einkaufen von Lebensmitteln. Warenkörbe von mehreren Entwicklerpartnern in einer UI-Gruppierung zusammengefasst, ihre ausstehenden Warenkörbe abzuschließen. Es gibt einen Lebensmitteleinkaufswagen. Cluster.

    • Im Warenkorb-Cluster muss die Gesamtzahl der Artikel im Warenkorb und können auch Bilder für X Artikel im Warenkorb des Nutzers enthalten.

      <ph type="x-smartling-placeholder">
      </ph> <ph type="x-smartling-placeholder">
      </ph> Abbildung: Lebensmitteleinkaufswagen-Cluster aus einer einzelnen Partner. (*Benutzeroberfläche nur zur Veranschaulichung)
  • Die Gruppe Lebensmitteleinkaufsliste bietet eine Vorschau auf den Lebensmitteleinkauf. Listen von mehreren Entwicklerpartnern in einer UI-Gruppierung an, kehren zur entsprechenden App zurück, um die Listen zu aktualisieren und zu vervollständigen. Es gibt eine Cluster für Lebensmittel-Einkaufslisten.

    <ph type="x-smartling-placeholder">
    </ph> <ph type="x-smartling-placeholder">
    </ph> Abbildung:Lebensmittel-Einkaufslisten-Cluster aus einer einzelnen Partner. (*Benutzeroberfläche nur zur Veranschaulichung)
  • Der Cluster Neu anordnen bietet eine Vorschau der vorherigen Bestellungen von mehrere Entwicklerpartner in einer UI-Gruppierung gruppieren, wodurch Nutzer aufgefordert werden, ihre Bestellung nachzubestellen. Es gibt einen einzelnen Reorder-Cluster.

    • Der neu angeordnete Cluster muss die Gesamtzahl der Elemente im vorherige Bestellung des Nutzers und muss außerdem eines der folgenden Elemente enthalten:

      • Bilder für X Artikel in der vorherigen Bestellung des Nutzers.
      • Labels für X Elemente in der vorherigen Bestellung des Nutzers.
    Abbildung:Food Reorder-Cluster aus einer einzelnen Partner. (*Benutzeroberfläche nur zur Veranschaulichung)

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

Die Daten, die ein Client veröffentlichen kann, unterliegen den folgenden Beschränkungen für verschiedene Clustertypen:

Clustertyp Cluster limits Maximale Entitätslimits in einem Cluster
Empfehlungscluster Höchstens 5 Höchstens 25 (ProductEntity, RecipeEntity oder StoreEntity)
Ausgewählter Cluster Höchstens 1 Höchstens 1 (ProductEntity, RecipeEntity oder StoreEntity)
Lebensmitteleinkaufswagen-Set Höchstens 1 Höchstens 1 ShoppingCartEntity
Lebensmittel-Einkaufslisten-Cluster Höchstens 1 Höchstens 1 ShoppingListEntity
Cluster für Lebensmittel-Neubestellung Höchstens 1 Höchstens 1 ReorderEntity

Schritt 1: Entitätsdaten angeben

Im SDK sind verschiedene Entitäten für jeden Elementtyp definiert. Wir unterstützen die folgenden Entitäten für die Kategorie „Lebensmittel“ verwenden:

  1. ProductEntity
  2. StoreEntity
  3. RecipeEntity
  4. FoodShoppingCart
  5. FoodShoppingList
  6. FoodReorderCluster

In den folgenden Tabellen sind die verfügbaren Attribute und Anforderungen für die einzelnen Typen aufgeführt.

ProductEntity

Das ProductEntity-Objekt steht für einen einzelnen Artikel, z. B. einen Lebensmittelladen. Artikel, Gericht aus einem Restaurant oder eine Werbeaktion), die Entwicklerpartner Veröffentlichen.

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph> Abbildung : Attribute von ProductEntity

Attribut Anforderungen Beschreibung Formatieren
Posterbilder Erforderlich Es muss mindestens ein Bild zur Verfügung gestellt werden. Weitere Informationen finden Sie unter Bildspezifikationen.
Aktions-URI Erforderlich

Der Deeplink zur Seite in der App mit Details zum Produkt.

Hinweis: Für die Attribution können Sie Deeplinks verwenden. <ph type="x-smartling-placeholder"></ph> Weitere Informationen

Uri
Titel Optional Der Name des Produkts.

Freier Text

Empfohlene Textgröße: unter 90 Zeichen (Text mit einer Zu lang werden Auslassungspunkte angezeigt)

Preis – aktuell Bedingt erforderlich

Der aktuelle Preis des Produkts.

Muss angegeben werden, wenn ein durchgestrichener Preis angegeben ist.

Freier Text
Preis – durchgestrichen Optional Der ursprüngliche Preis des Elements, der im UI. Freier Text
Zusatzinformationen Optional Erweiterung mit Zusatzinformationen zum Präsentieren einer Werbeaktion, eines Ereignisses oder eines Updates für das Produkt, falls verfügbar.

Freier Text

Empfohlene Textgröße: unter 45 Zeichen (Text mit Zu lang werden Auslassungspunkte angezeigt)

Kleingedrucktes mit Zusatzinformationen Optional Kleingedruckter Text für die Zusatzinformationen.

Freier Text

Empfohlene Textgröße: unter 45 Zeichen (Text mit Zu lang werden Auslassungspunkte angezeigt)

Bewertung (optional) – Hinweis: Alle Bewertungen werden angezeigt. mit unserem Standard-Bewertungssystem.
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 Produkt.

Hinweis:Geben Sie dieses Feld an, wenn Ihre App steuert, wie die Anzahl den Nutzern angezeigt wird. Verwenden Sie einen kurzen String. Wenn die Anzahl beispielsweise 1.000.000 beträgt, sollten Sie eine Abkürzung verwenden z. B. 1 Mio., damit die Anzahl bei kleineren Display-Größen nicht abgeschnitten wird.

String
Bewertung – Anzahl Optional

Die Anzahl der Bewertungen für das Produkt.

Hinweis: Geben Sie dieses Feld an, wenn Sie nicht für die Anzeige der Abkürzungslogik selbst. Wenn sowohl „Anzahl“ als auch „Anzahl“-Werte vorhanden sind, wird die Anzahl den Nutzern angezeigt.

Lang
DisplayTimeWindow (optional): Zeitfenster festlegen bis ein Inhalt auf der Oberfläche angezeigt wird.
Startzeitstempel Optional

Der Epochenzeitstempel, nach dem der Inhalt im Oberfläche.

Wenn die Richtlinie nicht konfiguriert ist, können Inhalte auf der Oberfläche angezeigt werden.

Epochen-Zeitstempel in Millisekunden
Endzeitstempel Optional

Der Epochenzeitstempel, nach dem der Inhalt nicht mehr zu sehen ist an die Oberfläche.

Wenn die Richtlinie nicht konfiguriert ist, können Inhalte auf der Oberfläche angezeigt werden.

Epochen-Zeitstempel in Millisekunden

StoreEntity

Das StoreEntity-Objekt steht für einen einzelnen Speicher, den Entwicklerpartner z. B. ein Restaurant oder ein Lebensmittelgeschäft.

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph> Abbildung : Attribute von StoreEntity

Attribut Anforderungen Beschreibung Formatieren
Posterbilder Erforderlich Es muss mindestens ein Bild zur Verfügung gestellt werden. Weitere Informationen finden Sie unter Bildspezifikationen.
Aktions-URI Erforderlich

Der Deeplink zur Seite in der App mit Details zum speichern.

Hinweis: Für die Attribution können Sie Deeplinks verwenden. <ph type="x-smartling-placeholder"></ph> Weitere Informationen

Uri
Titel Optional Der Name des Geschäfts.

Freier Text

Empfohlene Textgröße: unter 45 Zeichen (Text mit Zu lang werden Auslassungspunkte angezeigt)

Standort Optional Der Standort des Geschäfts.

Freier Text

Empfohlene Textgröße: unter 45 Zeichen (Text mit Zu lang werden Auslassungspunkte angezeigt)

Zusatzinformationen Optional Zusatzinformationen zum Präsentieren einer Werbeaktion, eines Ereignisses oder einer Aktualisierung für das Geschäft, falls verfügbar.

Freier Text

Empfohlene Textgröße: unter 45 Zeichen (Text mit Zu lang werden Auslassungspunkte angezeigt)

Kleingedrucktes mit Zusatzinformationen Optional Kleingedruckter Text für die Zusatzinformationen.

Freier Text

Empfohlene Textgröße: unter 45 Zeichen (Text mit Zu lang werden Auslassungspunkte angezeigt)

Beschreibung Optional Eine Beschreibung des Geschäfts

Freier Text

Empfohlene Textgröße: unter 90 Zeichen (Text mit einer Zu lang werden Auslassungspunkte angezeigt)

Hinweis: Alle Bewertungen werden mithilfe der Standardbewertungssystem.
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 den Händler.

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 den Händler.

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

RecipeEntity

Das RecipeEntity-Objekt steht für ein Rezeptelement, das Entwicklerpartner wünschen. die Sie veröffentlichen möchten.

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph> Abbildung : Attribute von RecipeEntity

Attribut Anforderungen Beschreibung Formatieren
Posterbilder Erforderlich Es muss mindestens ein Bild zur Verfügung gestellt werden. Weitere Informationen finden Sie unter Bildspezifikationen.
Aktions-URI Erforderlich

Der Deeplink zur Seite in der App mit Details zum Rezept.

Hinweis: Für die Attribution können Sie Deeplinks verwenden. <ph type="x-smartling-placeholder"></ph> Weitere Informationen

Uri
Titel Optional Der Name des Schemas.

Freier Text

Empfohlene Textgröße: unter 45 Zeichen (Text mit Zu lang werden Auslassungspunkte angezeigt)

Autor Optional Der Autor des Rezepts.

Freier Text

Empfohlene Textgröße: unter 45 Zeichen (Text mit Zu lang werden Auslassungspunkte angezeigt)

Zubereitungszeit Optional Die Zubereitungszeit des Rezepts.

Freier Text

Empfohlene Textgröße: unter 45 Zeichen (Text mit Zu lang werden Auslassungspunkte angezeigt)

Zusatzinformationen Optional Zusatzinformation zum Präsentieren einer Werbeaktion, eines Ereignisses oder einer Aktualisierung für das Rezept, falls verfügbar.

Freier Text

Empfohlene Textgröße: unter 45 Zeichen (Text mit Zu lang werden Auslassungspunkte angezeigt)

Kategorie Optional Die Kategorie des Rezepts.

Freier Text

Empfohlene Textgröße: unter 45 Zeichen (Text mit Zu lang werden Auslassungspunkte angezeigt)

Beschreibung Optional Eine Beschreibung des Rezepts.

Freier Text

Empfohlene Textgröße: unter 90 Zeichen (Text mit einer Zu lang werden Auslassungspunkte angezeigt)

Hinweis: Alle Bewertungen werden mithilfe unserer Standardbewertungssystem.
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 Rezept.

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 Rezept.

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

FoodShoppingCart

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph> Abbildung: Clusterattribute für Einkaufswagen-Cluster.

Attribut Anforderungen Beschreibung Formatieren
Aktions-URI Erforderlich

Der Deeplink zum Einkaufswagen in der Partner-App.

Hinweis: Für die Attribution können Sie Deeplinks verwenden. Weitere Informationen finden Sie in diesen FAQs.

Uri
Anzahl der Elemente Erforderlich

Die Anzahl der Artikel (nicht nur die Anzahl der Produkte) im Shopping-Artikel Einkaufswagen.

Beispiel: Wenn sich in der ersten Reihe drei Orangen und ein Apfel befinden, sollte diese Zahl 4 sein.

Ganzzahl >= 1
Titel Optional

Der Titel des Einkaufswagens, z. B. Mein Einkaufswagen.

Wenn der Entwickler keinen Titel angibt, Ihr Einkaufswagen ist die Standardeinstellung.

Freier Text

Empfohlene Textgröße: unter 25 Zeichen (Text mit einer Zu lang werden Auslassungspunkte angezeigt)

Aktionstext Optional

Der Call-to-Action-Text der Schaltfläche im Einkaufswagen (z. B. Meine Einkaufstasche).

Wenn der Entwickler keinen Aktionstext eingibt, Die Standardeinstellung ist Einkaufswagen ansehen.

Dieses Attribut wird ab Version 1.1.0 unterstützt.

String
Bilder des Einkaufswagens Optional

Bilder der einzelnen Produkte im Einkaufswagen.

Es können bis zu 10 Bilder in der Reihenfolge ihrer Priorität bereitgestellt werden. die Die tatsächliche Anzahl der angezeigten Bilder hängt vom Geräteformat ab Faktor.

Weitere Informationen finden Sie unter Bildspezifikationen.
Elementlabels Optional

Die Liste der Labels für die Artikel auf der Einkaufsliste.

Tatsächliche Anzahl der angezeigten Labels hängt vom Formfaktor des Geräts ab.

Liste der kostenlosen Textlabels

Empfohlene Textgröße: unter 20 Zeichen (Text mit einer Zu lang werden Auslassungspunkte angezeigt)

DisplayTimeWindow (optional): Zeitfenster festlegen bis ein Inhalt auf der Oberfläche angezeigt wird.
Startzeitstempel Optional

Der Epochenzeitstempel, nach dem der Inhalt im Oberfläche.

Wenn die Richtlinie nicht konfiguriert ist, können Inhalte auf der Oberfläche angezeigt werden.

Epochen-Zeitstempel in Millisekunden
Endzeitstempel Optional

Der Epochenzeitstempel, nach dem der Inhalt nicht mehr zu sehen ist an die Oberfläche.

Wenn die Richtlinie nicht konfiguriert ist, können Inhalte auf der Oberfläche angezeigt werden.

Epochen-Zeitstempel in Millisekunden

FoodShoppingList

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph> Abbildung: Cluster für Lebensmittel-Einkaufslisten.

Attribut Anforderungen Beschreibung Formatieren
Aktions-URI Erforderlich

Der Deeplink zur Einkaufsliste in der App des Partners.

Hinweis: Für die Attribution können Sie Deeplinks verwenden. <ph type="x-smartling-placeholder"></ph> Weitere Informationen

Uri
Anzahl der Elemente Erforderlich Die Anzahl der Artikel auf der Einkaufsliste. Ganzzahl >= 1
Titel Optional

Der Titel der Liste, z. B. Meine Lebensmittelliste.

Wenn der Entwickler keinen Titel angibt, Standardmäßig ist Einkaufsliste ausgewählt.

Freier Text

Empfohlene Textgröße: unter 25 Zeichen (Text mit einer Zu lang werden Auslassungspunkte angezeigt)

Elementlabels Erforderlich

Die Liste der Labels für die Artikel auf der Einkaufsliste.

Es muss mindestens ein Label angegeben werden und es können bis zu zehn Labels angegeben werden werden in der Reihenfolge ihrer Priorität bereitgestellt. die tatsächliche Anzahl der angezeigten Labels hängt vom Formfaktor des Geräts ab.

Liste der kostenlosen Textlabels

Empfohlene Textgröße: unter 20 Zeichen (Text mit einer Zu lang werden Auslassungspunkte angezeigt)

FoodReorderCluster

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph> Abbildung: Cluster für die Essensbestellung.

Attribut Anforderungen Beschreibung Formatieren
Aktions-URI Erforderlich

Der Deeplink, der in der App des Partners neu angeordnet werden soll.

Hinweis: Für die Attribution können Sie Deeplinks verwenden. <ph type="x-smartling-placeholder"></ph> Weitere Informationen

Uri
Aktionstext Optional

Der Call-to-Action-Text der Schaltfläche in der Neuanordnung (z. B. Noch einmal bestellen).

Wenn der Entwickler keinen Aktionstext eingibt, Neu anordnen ist die Standardeinstellung.

Dieses Attribut wird ab Version 1.1.0 unterstützt.

String
Anzahl der Elemente Erforderlich

Die Anzahl der Artikel (nicht nur die Anzahl der Produkte) in den vorherigen Reihenfolge.

Beispiel: Wenn es drei kleine Kaffees und ein Croissant in der aus der vorherigen Bestellung sollte diese Zahl 4 sein.

Ganzzahl >= 1
Titel Erforderlich Der Titel des neu angeordneten Artikels.

Freier Text

Empfohlene Textgröße: unter 40 Zeichen (Text mit Zu lang werden Auslassungspunkte angezeigt)

Elementlabels

Optional

(Falls nicht, sollten auch Posterbilder zur Verfügung gestellt werden.)

Die Liste der Artikellabels für den vorherigen Auftrag.

Es können bis zu 10 Labels in der Reihenfolge ihrer Priorität bereitgestellt werden. die Die tatsächliche Anzahl der angezeigten Labels hängt vom Geräteformat ab Faktor.

Liste mit Freitext

Empfohlene Textgröße pro Label: unter 20 Zeichen (Zu langer Text zeigt möglicherweise Auslassungspunkte an.)

Posterbilder

Optional

(Falls nicht angegeben, müssen Artikellabels angegeben werden.)

Bilder der Artikel in der vorherigen Bestellung.

Es können bis zu 10 Bilder in der Reihenfolge ihrer Priorität bereitgestellt werden. die Die tatsächliche Anzahl der angezeigten Bilder hängt vom Geräteformat ab Faktor.

Weitere Informationen finden Sie unter Bildspezifikationen.

Bildspezifikationen

Im Folgenden finden Sie die erforderlichen Spezifikationen für Bild-Assets:

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

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.

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.

AppEngageFoodClient ist für die Veröffentlichung von Lebensmittelclustern zuständig.

Es gibt die folgenden APIs, um Cluster im Client zu veröffentlichen:

  • isServiceAvailable
  • publishRecommendationClusters
  • publishFeaturedCluster
  • publishFoodShoppingCart
  • publishFoodShoppingList
  • publishReorderCluster
  • publishUserAccountManagementRequest
  • updatePublishStatus
  • deleteRecommendationsClusters
  • deleteFeaturedCluster
  • deleteFoodShoppingCartCluster
  • deleteFoodShoppingListCluster
  • deleteReorderCluster
  • 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 zum Veröffentlichen einer Liste mit RecommendationCluster-Objekten verwendet.

Ein RecommendationCluster-Objekt kann die folgenden Attribute haben:

Attribut Anforderungen Beschreibung
Liste von ProductEntity, StoreEntity oder RecipeEntity Erforderlich Eine Liste der Entitäten, die die Empfehlungen dafür bilden Empfehlungscluster. Entitäten in einem einzelnen Cluster müssen vom selben Typ.
Titel Erforderlich

Der Titel für den Empfehlungscluster, z. B. Big Rabatt auf das Thanksgiving-Menü).

Empfohlene Textgröße: unter 25 Zeichen (Text mit einer Zu lang werden Auslassungspunkte angezeigt)

Untertitel Optional Die Unterüberschrift für das Empfehlungscluster.
Aktions-URI Optional

Der Deeplink zu der Seite in der Partner-App, auf der Nutzer die vollständige Liste der Empfehlungen.

Hinweis: Für die Attribution können Sie Deeplinks verwenden. Weitere Informationen finden Sie in diesen FAQs.

Kotlin

client.publishRecommendationClusters(
            PublishRecommendationClustersRequest.Builder()
                .addRecommendationCluster(
                    RecommendationCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .setTitle("Big savings on Thanksgiving menu")
                        .build())
                .build())

Java

client.publishRecommendationClusters(
            new PublishRecommendationClustersRequest.Builder()
                .addRecommendationCluster(
                    new RecommendationCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .setTitle("Big savings on Thanksgiving menu")
                        .build())
                .build());

Wenn der Dienst die Anfrage erhält, werden die folgenden Aktionen innerhalb von eine Transaktion:

  • Alle vorhandenen Empfehlungsclusterdaten werden entfernt.
  • Daten aus der Anfrage werden geparst und in neuen Empfehlungsclustern gespeichert.

Tritt ein Fehler auf, wird die gesamte Anfrage abgelehnt und der aktuelle Status lautet beibehalten werden.

publishFeaturedCluster

Diese API wird zum Veröffentlichen eines FeaturedCluster-Objekts verwendet.

Kotlin

client.publishFeaturedCluster(
            PublishFeaturedClusterRequest.Builder()
                .setFeaturedCluster(
                    FeaturedCluster.Builder()
                        ...
                        .build())
                .build())

Java

client.publishFeaturedCluster(
            new PublishFeaturedClusterRequest.Builder()
                .setFeaturedCluster(
                    new FeaturedCluster.Builder()
                        ...
                        .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.

publishFoodShoppingCart

Diese API wird zum Veröffentlichen eines FoodShoppingCart-Objekts verwendet.

Kotlin

client.publishFoodShoppingCart(
            PublishFoodShoppingCartClusterRequest.Builder()
                .setShoppingCart(
                    FoodShoppingCart.Builder()
                        ...
                        .build())
                .build())

Java

client.publishFoodShoppingCart(
            new PublishFoodShoppingCartClusterRequest.Builder()
                .setShoppingCart(
                    new FoodShoppingCart.Builder()
                        ...
                        .build())
                .build());

Wenn der Dienst die Anfrage erhält, werden die folgenden Aktionen innerhalb von eine Transaktion:

  • Vorhandene FoodShoppingCart-Daten des Entwicklerpartners werden entfernt.
  • Die Daten aus der Anfrage werden geparst und im aktualisierten Einkaufswagen gespeichert. Cluster.

Tritt ein Fehler auf, wird die gesamte Anfrage abgelehnt und der aktuelle Status lautet beibehalten werden.

publishFoodShoppingList

Diese API wird zum Veröffentlichen eines FoodShoppingList-Objekts verwendet.

Kotlin

client.publishFoodShoppingList(
            PublishFoodShoppingListRequest.Builder()
                .setFoodShoppingList(
                    FoodShoppingListEntity.Builder()
                        ...
                        .build())
                .build())

Java

client.publishFoodShoppingList(
            new PublishFoodShoppingListRequest.Builder()
                .setFoodShoppingList(
                    new FoodShoppingListEntity.Builder()
                        ...
                        .build())
                .build());

Wenn der Dienst die Anfrage erhält, werden die folgenden Aktionen innerhalb von eine Transaktion:

  • Vorhandene FoodShoppingList-Daten des Entwicklerpartners werden entfernt.
  • Die Daten aus der Anfrage werden geparst und in der aktualisierten Einkaufsliste gespeichert. Cluster.

Tritt ein Fehler auf, wird die gesamte Anfrage abgelehnt und der aktuelle Status lautet beibehalten werden.

publishReorderCluster

Diese API wird zum Veröffentlichen eines FoodReorderCluster-Objekts verwendet.

Kotlin

client.publishReorderCluster(
            PublishReorderClusterRequest.Builder()
                .setReorderCluster(
                    FoodReorderCluster.Builder()
                        ...
                        .build())
                .build())

Java

client.publishReorderCluster(
            new PublishReorderClusterRequest.Builder()
                .setReorderCluster(
                    new FoodReorderCluster.Builder()
                        ...
                        .build())
                .build());

Wenn der Dienst die Anfrage erhält, werden die folgenden Aktionen innerhalb von eine Transaktion:

  • Vorhandene FoodReorderCluster-Daten des Entwicklerpartners werden entfernt.
  • Daten aus der Anfrage werden geparst und im aktualisierten Reorder Cluster gespeichert.

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

Wenn aus internen geschäftlichen Gründen keiner der Cluster veröffentlicht wird, Wir empfehlen 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 im 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 der Inhalt nicht veröffentlicht wird, weil ein Nutzer nicht angemeldet ist, Google empfiehlt, die Log-in-Karte zu veröffentlichen. Wenn Anbieter die Anmeldekarte aus irgendeinem Grund nicht veröffentlichen können sollten Sie die API updatePublishStatus aufrufen, mit dem Statuscode NOT_PUBLISHED_REQUIRES_SIGN_IN

Kotlin

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

Java

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

deleteRecommendationClusters

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. Bei einem Fehler wird die gesamte Anfrage abgelehnt. und 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. Bei einem Fehler wird die gesamte Anfrage abgelehnt. und der bestehende Zustand beibehalten wird.

deleteFoodShoppingCartCluster

Diese API wird verwendet, um den Inhalt des Lebensmitteleinkaufswagen-Clusters zu löschen.

Kotlin

client.deleteFoodShoppingCartCluster()

Java

client.deleteFoodShoppingCartCluster();

Wenn der Dienst die Anfrage erhält, werden die vorhandenen Daten aus der Lebensmitteleinkaufswagen. Bei einem Fehler wird die gesamte Anfrage abgelehnt. und der bestehende Zustand beibehalten wird.

deleteFoodShoppingListCluster

Diese API wird verwendet, um den Inhalt des Lebensmittel-Einkaufslisten-Clusters zu löschen.

Kotlin

client.deleteFoodShoppingListCluster()

Java

client.deleteFoodShoppingListCluster();

Wenn der Dienst die Anfrage erhält, werden die vorhandenen Daten aus der Einkaufslisten-Gruppe für Lebensmittel. Bei einem Fehler wird die gesamte Anfrage abgelehnt. und der bestehende Zustand beibehalten wird.

deleteReorderCluster

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

Kotlin

client.deleteReorderCluster()

Java

client.deleteReorderCluster();

Wenn der Dienst die Anfrage erhält, werden die vorhandenen Daten aus der Cluster neu anordnen. Bei einem Fehler wird die gesamte Anfrage abgelehnt. und 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_FEATURED)
      .addClusterType(ClusterType.TYPE_RECOMMENDATION)
      ...
      .build())

Java

client.deleteClusters(
            new DeleteClustersRequest.Builder()
                .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.

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.
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 shopping cart cluster publish when PUBLISH_FOOD_SHOPPING_CART
// broadcast is received

// Trigger shopping list cluster publish when PUBLISH_FOOD_SHOPPING_LIST
// broadcast is received

// Trigger reorder cluster publish when PUBLISH_REORDER_CLUSTER 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 Shopping Cart Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.food.service.Intents.ACTION_PUBLISH_FOOD_SHOPPING_CART));

// Register Shopping List Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.food.service.Intents.ACTION_PUBLISH_FOOD_SHOPPING_LIST));

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

}

  • 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.food.PUBLISH_FOOD_SHOPPING_CART" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.food.PUBLISH_FOOD_SHOPPING_LIST" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.food.PUBLISH_REORDER_CLUSTER" />
      </intent-filter>
   </receiver>
</application>

Die folgenden Intents werden vom Dienst:

  • com.google.android.engage.action.PUBLISH_RECOMMENDATION Es empfiehlt sich, einen publishRecommendationClusters-Anruf zu starten, wenn die diesen Intent erhalten.
  • com.google.android.engage.action.PUBLISH_FEATURED Bei Erhalt dieser E-Mail wird empfohlen, einen publishFeaturedCluster-Anruf zu starten. Nutzerabsicht verstehen.
  • com.google.android.engage.action.food.PUBLISH_FOOD_SHOPPING_CART Es wird empfohlen, bei einem eingehenden Anruf einen publishFoodShoppingCart-Anruf zu starten. für diesen Intent.
  • com.google.android.engage.action.food.PUBLISH_FOOD_SHOPPING_LIST Es wird empfohlen, bei einem eingehenden Anruf einen publishFoodShoppingList-Anruf zu starten. für diesen Intent.
  • com.google.android.engage.action.food.PUBLISH_REORDER_CLUSTER Bei Erhalt dieser E-Mail wird empfohlen, einen publishReorderCluster-Anruf zu starten. Nutzerabsicht verstehen.

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. Unser Team wird sich so schnell wie möglich bei dir melden, möglich.

Nächste Schritte

Nach Abschluss der Integration sind folgende Schritte erforderlich:

  • E-Mail senden an Engage-developers@google.com und fügen Sie dein integriertes APK, das von Google getestet werden kann.
  • Google führt eine interne Überprüfung durch, 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, um benachrichtigt, dass Sie mit der Veröffentlichung des aktualisierten und integrierten APK im Play Store
  • Nachdem Google bestätigt hat, dass Ihr aktualisiertes APK im Play Store, deine Empfehlung, Angesagt, Einkaufswagen Die Cluster Einkaufsliste und Neu anordnen werden veröffentlicht und sind sichtbar für Nutzenden.