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 Rich Contents in einem eigenen Kanal außerhalb von Google zu präsentieren. ihrer App.
Dieser Leitfaden enthält Anweisungen für Entwicklerpartner zur Integration mit dem Engage SDK die neue Oberfläche und bestehende Google-Plattformen wie Entertainment Space.
Integrationsdetails
Terminologie
Diese Integration umfasst die folgenden fünf Clustertypen: Empfehlung, Empfohlen, Einkaufswagen, Einkaufsliste, Neu anordnen und Bestellverfolgung:
Empfehlungscluster zeigen personalisierte Shopping-Vorschläge aus einer einzelnen Entwicklerpartner. Diese Empfehlungen können auf die Nutzer oder generalisiert werden (z. B. Trendartikel). Nutzen Sie diese, um Produkten, Veranstaltungen, Sonderangeboten, Werbeaktionen oder Abos.
Ihre Empfehlungen haben folgende Struktur:
Empfehlungscluster:Eine UI-Ansicht, die eine Gruppe von vom selben Entwicklerpartner erhalten.
ShoppingEntity:Ein Objekt, das einen einzelnen Artikel in einem Cluster darstellt.
Im Cluster Empfohlen wird der ausgewählte Held
ShoppingEntity
aus vielen präsentiert. Entwicklerpartner in einer UI-Gruppierung zusammengefasst. Es gibt einen einzelnen Cluster, der oben in der UI angezeigt wird, mit einer Priorität die über allen Empfehlungsclustern liegt. Jeder Entwicklerpartner eine einzelne ShoppingEntity im „Featured Cluster“ veröffentlichen.Der Cluster Einkaufswagen bietet eine Vorschau der Einkaufswagen von vielen Entwicklerpartner in einer UI-Gruppierung zusammengefasst, um Nutzer zum Abschließen ihrer ausstehende Warenkörbe. Es gibt einen Einkaufswagen-Cluster, erscheinen im oberen Bereich der Benutzeroberfläche, wobei vor allem eine Prioritätsplatzierung Empfehlungscluster. Jeder Entwicklerpartner darf bis zu 3
ShoppingCart
-Instanzen im Einkaufswagen-ClusterIhr Einkaufswagen hat folgende Struktur:
Einkaufswagen-Cluster: Eine UI-Ansicht, die eine Gruppe von Einkaufswagen enthält. Warenkorbvorschauen von vielen Entwicklerpartnern ansehen.
ShoppingCart:Ein Objekt, das die Einkaufswagenvorschau darstellt. für einen einzelnen Entwicklerpartner, die im Einkaufswagen angezeigt werden sollen. Cluster.
ShoppingCart
muss die Gesamtzahl der Elemente in den sowie Bilder für einige Artikel im Einkaufswagen enthalten.
Die Gruppe Einkaufsliste zeigt einen kleinen Vorgeschmack auf das Einkaufsangebot. 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 einzelnen Einkaufslisten-Cluster.
Der Cluster Neu anordnen bietet eine Vorschau der vorherigen Bestellungen von mehrere Entwicklerpartner in einer UI-Gruppierung, die Nutzer zum Nachbestellen auffordern. 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.
Der Cluster Shopping Order Tracking (Bestellverfolgung) bietet eine Vorschau auf ausstehende oder kürzlich abgeschlossene Einkaufsbestellungen von vielen Entwicklerpartnern in einer einzigen Benutzeroberfläche Gruppierung, sodass Nutzende ihre Bestellungen verfolgen können.
Es wird ein einzelner ShoppingOrderTracking-Cluster angezeigt, im oberen Bereich der Benutzeroberfläche mit einer Prioritätsplatzierung über der Empfehlung. Cluster. Jeder Entwicklerpartner darf mehrere ShoppingOrderTrackingEntity-Artikel im Cluster zur Bestellverfolgung.
Ihr ShoppingOrderTrackingCluster hat die folgende Struktur:
- ShoppingOrderTracking Cluster: Eine UI-Ansicht, die eine Gruppe von Vorschauen der Bestellverfolgung von vielen Entwicklerpartnern
- ShoppingOrderTrackingEntity: Ein Objekt, das eine Bestellung darstellt. für einen einzelnen Entwicklerpartner, die im Cluster zur Bestellverfolgung. Die ShoppingOrderTrackingEntity muss Folgendes anzeigen: Status der Bestellung und die Uhrzeit der Bestellung angezeigt. Wir empfehlen dringend, zum Eingeben der voraussichtlichen Lieferdauer für ShoppingOrderTrackingEntity wie und wird Nutzern angezeigt, sofern sie bereitgestellt werden.
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'
}
Weitere Informationen zur Paketsichtbarkeit in Android 11.
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 ShoppingEntity |
Ausgewählter Cluster | Höchstens 1 | Höchstens 1 ShoppingEntity |
Einkaufswagen-Cluster | Höchstens 1 | Höchstens 3 ShoppingCart
Mehrere Einkaufswagen werden nur bei Apps mit separaten Einkaufswagen pro Händler erwartet. |
Einkaufslisten-Cluster | Höchstens 1 | Höchstens 1 ShoppingListEntity |
Shopping-Neuanordnungs-Cluster | Höchstens 1 | Höchstens 1 ReorderEntity |
Cluster zur Bestellverfolgung | Höchstens 3 | Höchstens 3 ShoppingOrderTrackingEntity |
Schritt 1: Entitätsdaten angeben
Im SDK sind verschiedene Entitäten für jeden Elementtyp definiert. Die Folgende Entitäten werden für die Kategorie „Shopping“ unterstützt:
ShoppingEntity
ShoppingCart
ShoppingList
Reorder
ShoppingOrderTracking
In den folgenden Tabellen sind die verfügbaren Attribute und Anforderungen für die einzelnen Typen aufgeführt.
ShoppingEntity
Das ShoppingEntity
-Objekt steht für ein Produkt, eine Werbeaktion, ein Angebot, ein Abo
oder Ereignisse, die
Entwicklerpartner veröffentlichen möchten.
ShoppingEntity
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 Entität. Hinweis: Für die Attribution können Sie Deeplinks verwenden. <ph type="x-smartling-placeholder"></ph> Weitere Informationen |
Uri |
Titel | Optional | Der Name der Entität. | Freier Text Empfohlene Textgröße: unter 90 Zeichen (Text mit einer zu lang sind möglicherweise Auslassungspunkte) |
Preis – aktuell | Bedingt erforderlich |
Der aktuelle Preis der Entität. 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 | Callout zum Präsentieren einer Werbeaktion, eines Ereignisses oder einer Aktualisierung für die Entität, falls verfügbar. | Freier Text Empfohlene Textgröße: unter 45 Zeichen (Text mit zu lang sind möglicherweise Auslassungspunkte) |
Kleingedrucktes mit Zusatzinformationen | Optional | Kleingedruckter Text für die Zusatzinformationen. | Freier Text Empfohlene Textgröße: unter 45 Zeichen (Text mit zu lang sind möglicherweise Auslassungspunkte) |
Bewertung (optional) – Hinweis: Alle Bewertungen sind die mithilfe unseres Standardbewertungssystems angezeigt werden. | |||
Bewertung – Maximalwert | Optional | Der Maximalwert der Bewertungsskala. Muss angegeben werden, wenn der aktuelle Wert der Bewertung ebenfalls bereitgestellt werden. |
Zahl >= 0,0 |
Bewertung – Aktueller Wert | Optional | Der aktuelle Wert der Bewertungsskala. Muss angegeben werden, wenn auch der Höchstwert für die Bewertung vorhanden ist bereitgestellt werden. |
Zahl >= 0,0 |
Bewertung – Anzahl | Optional |
Die Anzahl der Bewertungen für die Entität. 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 die Entität. Hinweis: Geben Sie dieses Feld an, wenn Sie nicht für die Anzeige der Abkürzungslogik. 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 |
ShoppingCart
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. <ph type="x-smartling-placeholder"></ph> Weitere Informationen |
Uri |
Anzahl der Elemente | Erforderlich |
Die Anzahl der Artikel im Einkaufswagen (nicht nur die Anzahl der Produkte). <ph type="x-smartling-placeholder"></ph> Beispiel: Wenn sich drei identische T-Shirts und ein Hut im Warenkorb befinden, sollte diese Zahl 4 sein. |
Ganzzahl >= 1 |
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 |
Titel | Optional | Der Titel des Einkaufswagens, z. B. Meine Einkaufswagen. Wenn der Entwickler keinen Titel angibt, Ihr Einkaufswagen ist die Standardeinstellung. Wenn der Entwicklerpartner einen separaten Einkaufswagen pro Händler veröffentlicht, Bitte erwähne den Namen des Händlers im Titel. |
Freier Text Empfohlene Textgröße: unter 25 Zeichen (Text mit zu lang sind möglicherweise Auslassungspunkte) |
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 sind möglicherweise Auslassungspunkte) |
Zeitstempel der letzten Nutzerinteraktion | Optional | Anzahl der während der Epoche verstrichenen Millisekunden, um den letzten Zeitpunkt anzugeben
wenn der Nutzer mit dem Einkaufswagen interagiert hat.
Diese wird als Eingabe vom Entwicklerpartner, die einen separaten Einkaufswagen pro Händler veröffentlichen und möglicherweise verwendet werden für das Ranking. |
Epochen-Zeitstempel in Millisekunden |
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 |
ShoppingList
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 zu lang sind möglicherweise Auslassungspunkte) |
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 sind möglicherweise Auslassungspunkte) |
ShoppingReorderCluster
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. <ph type="x-smartling-placeholder"></ph> Beispiel: Wenn es im Raum drei kleine Kaffees und ein Croissant gibt, in der vorherigen Bestellung besteht, 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 einer zu lang sind möglicherweise Auslassungspunkte) |
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. |
ShoppingOrderTrackingCluster
Attribut | Anforderungen | Beschreibung | Formatieren |
---|---|---|---|
Titel | Erforderlich |
Ein kurzer Titel des Pakets/Artikels, das verfolgt wird, oder der Sendung Nummer. |
Freier Text Empfohlene Textgröße: 50 Zeichen. Bei zu langem Text Ellipsen einblenden) |
Bestellart | Erforderlich |
Ein kurzer Titel des Pakets/Artikels, das verfolgt wird, oder der Sendung Nummer. |
Aufzählung: IN_STORE_PICKUP, SAME_DAY_DELIVERY, MULTI_DAY_DELIVERY |
Status | Erforderlich |
Der aktuelle Status der Bestellung. Beispiele: „Verspätung“, „Unterwegs“, „Verspätung“, „Versendet“, „Zugestellt“, „Nicht auf Lager“, „Bestellbar“ |
Freier Text Empfohlene Textgröße: 25 Zeichen. Bei zu langem Text Ellipsen einblenden) |
Bestellzeitpunkt | Erforderlich |
Der Epochenzeitstempel in Millisekunden, zu dem die Bestellung aufgegeben wurde. Die Bestellzeit wird im voraussichtliche Lieferzeitfenster angezeigt. ist nicht vorhanden |
Epochen-Zeitstempel in Millisekunden |
Aktions-URI | Erforderlich |
Deeplink zur Bestellverfolgung in der Partner-App. |
Uri |
OrderDeliveryTimeWindow (optional): Uhrzeit festlegen Zeitfenster für den Auftrag, der vom Zeitpunkt der Bestellung an verfolgt wird zum Zeitpunkt der erwarteten/tatsächlichen Lieferung platziert. | |||
OrderDeliveryTimeWindow - Startzeit | Optional |
Der Epochenzeitstempel in Millisekunden ab dem oder nach dem die Bestellung ausgeführt wird geliefert werden oder zur Abholung bereit sein müssen. |
Epochen-Zeitstempel in Millisekunden |
OrderDeliveryTimeWindow - Endzeit | Optional |
Der Epochenzeitstempel in Millisekunden, ab dem bzw. vor dem die Bestellung erfolgt geliefert werden oder zur Abholung bereit sein müssen. |
Epochen-Zeitstempel in Millisekunden |
Posterbilder | Optional | Bild eines Artikels/Produkts, das Teil der Bestellung ist. Empfohlenes Seitenverhältnis: 1:1 |
Weitere Informationen finden Sie unter Bildspezifikationen. |
Anzahl der Elemente | Optional | Die Anzahl der Artikel in der Bestellung. | Ganzzahl >= 1 |
Beschreibung | Optional | Ein einzelner Textabschnitt, der die Artikel in der Bestellung beschreibt. Hinweis: Es wird entweder eine Beschreibung oder eine Untertitelliste angezeigt werden, nicht beides. |
Freier Text Empfohlene Textgröße: 180 Zeichen |
Untertitelliste | Optional | Bis zu drei Untertitel mit jeweils einer Textzeile. Hinweis: Es wird entweder eine Beschreibung oder eine Untertitelliste angezeigt werden, nicht beides. |
Freier Text Empfohlene Textgröße für jeden Untertitel: maximal 50 Zeichen |
Bestellwert – CurrentPrice | Optional | Der aktuelle Wert des Auftrags. | Freier Text |
Bestellnummer | Optional | Die Bestellnummer/ID, anhand derer die Bestellung eindeutig identifiziert werden kann. |
Freier Text Empfohlene Textgröße: max. 25 Zeichen |
Sendungsnummer | Optional | Die Verfolgungsnummer für die Bestellung/Paketzustellung für den Fall, dass die Bestellung eine Lieferung erfordert. |
Freier Text Empfohlene Textgröße: max. 25 Zeichen |
Bildspezifikationen
Im Folgenden finden Sie die erforderlichen Spezifikationen für Bild-Assets:
Seitenverhältnis | Mindestanzahl Pixel | Empfohlene Pixel |
---|---|---|
Quadrat (1 × 1) Bevorzugt für nicht vorgestellte Cluster |
300 × 300 | 1200 × 1200 |
Querformat (1,91 x 1) Bevorzugt für vorgestellte Cluster |
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 für einen Termin (z. B. jedes Mal die Nutzenden die App öffnen oder gerade etwas in den Warenkorb gelegt haben.
AppEngageShoppingClient
ist für die Veröffentlichung von Shopping-Clustern zuständig.
Die folgenden APIs werden für die Veröffentlichung von Clustern im Client verfügbar gemacht:
isServiceAvailable
publishRecommendationClusters
publishFeaturedCluster
publishShoppingCart
publishShoppingCarts
publishShoppingList
publishShoppingReorderCluster
publishShoppingOrderTrackingCluster
publishUserAccountManagementRequest
updatePublishStatus
deleteRecommendationsClusters
deleteFeaturedCluster
deleteShoppingCartCluster
deleteShoppingListCluster
deleteShoppingReorderCluster
deleteShoppingOrderTrackingCluster
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.
Ein RecommendationCluster
-Objekt kann die folgenden Attribute haben:
Attribut | Anforderungen | Beschreibung |
---|---|---|
Liste der ShoppingEntity | Erforderlich | Eine Liste der ShoppingEntity-Objekte, die die Empfehlungen für zu diesem Empfehlungscluster. |
Titel | Erforderlich | Der Titel für den Empfehlungscluster. Empfohlene Textgröße: unter 25 Zeichen (Text mit zu lang sind möglicherweise Auslassungspunkte) |
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. <ph type="x-smartling-placeholder"></ph> Weitere Informationen |
Kotlin
client.publishRecommendationClusters( PublishRecommendationClustersRequest.Builder() .addRecommendationCluster( RecommendationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .setTitle("Black Friday Deals") .build()) .build())
Java
client.publishRecommendationClusters( new PublishRecommendationClustersRequest.Builder() .addRecommendationCluster( new RecommendationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .setTitle("Black Friday Deals") .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.
publishShoppingCart
Diese API wird zum Veröffentlichen eines ShoppingCartCluster
-Objekts verwendet.
Kotlin
client.publishShoppingCart( PublishShoppingCartRequest.Builder() .setShoppingCart( ShoppingCart.Builder() ... .build()) .build())
Java
client.publishShoppingCart( new PublishShoppingCartRequest.Builder() .setShoppingCart( new ShoppingCart.Builder() ... .build()) .build())
Wenn der Dienst die Anfrage erhält, werden die folgenden Aktionen innerhalb von eine Transaktion:
- Vorhandene
ShoppingCart
-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.
publishShoppingCarts
Diese API wird zum Veröffentlichen mehrerer ShoppingCart
-Objekte verwendet. Dies ist
gilt für Entwicklerpartner, die separate Einkaufswagen pro Händler veröffentlichen. Einschließen
Händlernamen im Titel enthalten, wenn diese API verwendet wird.
Kotlin
client.publishShoppingCarts( PublishShoppingCartClustersRequest.Builder() .addShoppingCart( ShoppingCart.Builder() ... .build()) .build())
Java
client.publishShoppingCarts( new PublishShoppingCartClustersRequest.Builder() .addShoppingCart( new ShoppingCart.Builder() ... .build()) .build())
Wenn der Dienst die Anfrage erhält, werden die folgenden Aktionen innerhalb von eine Transaktion:
- Vorhandene
ShoppingCart
-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.
publishShoppingList
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.
publishShoppingReorderCluster
Diese API wird zum Veröffentlichen eines ShoppingReorderCluster
-Objekts verwendet.
Kotlin
client.publishShoppingReorderCluster( PublishShoppingReorderClusterRequest.Builder() .setReorderCluster( ShoppingReorderCluster.Builder() ... .build()) .build())
Java
client.publishShoppingReorderCluster( new PublishShoppingReorderClusterRequest.Builder() .setReorderCluster( new ShoppingReorderCluster.Builder() ... .build()) .build());
Wenn der Dienst die Anfrage empfängt, werden die folgenden Aktionen innerhalb von eine Transaktion:
- Vorhandene
ShoppingReorderCluster
-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.
publishShoppingOrderTrackingCluster
Diese API wird zum Veröffentlichen eines ShoppingOrderTrackingCluster
-Objekts verwendet.
Kotlin
client.publishShoppingOrderTrackingCluster( PublishShoppingOrderTrackingClusterRequest.Builder() .setShoppingOrderTrackingCluster( ShoppingOrderTrackingCluster.Builder() ... .build()) .build())
Java
client.publishShoppingOrderTrackingCluster( new PublishShoppingOrderTrackingClusterRequest.Builder() .setShoppingOrderTrackingCluster( new ShoppingOrderTrackingCluster.Builder() ... .build()) .build());
Wenn der Dienst die Anfrage empfängt, werden die folgenden Aktionen innerhalb von eine Transaktion:
- Vorhandene
ShoppingOrderTrackingCluster
-Daten vom Entwicklerpartner sind entfernt. - Die Daten aus der Anfrage werden geparst und in der aktualisierten Shopping Order gespeichert. Tracking-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
Wenn aus internen geschäftlichen Gründen keiner der Cluster veröffentlicht wird, empfehlen wir dringend, den Veröffentlichungsstatus über die 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
Mit dieser API wird der Inhalt von Empfehlungsclustern gelöscht.
Kotlin
client.deleteRecommendationClusters()
Java
client.deleteRecommendationClusters();
Wenn der Dienst die Anfrage erhält, werden die vorhandenen Daten aus der Empfehlungscluster. 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.
deleteShoppingCartCluster
Diese API wird verwendet, um den Inhalt des Einkaufswagen-Clusters zu löschen.
Kotlin
client.deleteShoppingCartCluster()
Java
client.deleteShoppingCartCluster();
Wenn der Dienst die Anfrage erhält, werden die vorhandenen Daten aus der Einkaufswagen-Cluster. Bei einem Fehler wird die gesamte Anfrage abgelehnt. und der bestehende Zustand beibehalten wird.
deleteShoppingListCluster
Diese API wird verwendet, um den Inhalt des Einkaufslistenclusters zu löschen.
Kotlin
client.deleteShoppingListCluster()
Java
client.deleteShoppingListCluster();
Wenn der Dienst die Anfrage erhält, werden die vorhandenen Daten aus der Einkaufslisten-Cluster. Bei einem Fehler wird die gesamte Anfrage abgelehnt. und der bestehende Zustand beibehalten wird.
deleteShoppingReorderCluster
Diese API wird verwendet, um den Inhalt des Shopping-Reorder-Clusters zu löschen.
Kotlin
client.deleteShoppingReorderCluster()
Java
client.deleteShoppingReorderCluster();
Wenn der Dienst die Anfrage erhält, werden die vorhandenen Daten aus der Shopping-Neuanordnungs-Cluster. Bei einem Fehler wird die gesamte Anfrage abgelehnt. und der bestehende Zustand beibehalten wird.
deleteShoppingOrderTrackingCluster
Diese API wird verwendet, um den Inhalt des Clusters zur Bestellverfolgung zu löschen.
Kotlin
client.deleteShoppingOrderTrackingCluster()
Java
client.deleteShoppingOrderTrackingCluster();
Wenn der Dienst die Anfrage erhält, werden die vorhandenen Daten aus der Cluster zur Bestellverfolgung. Tritt ein Fehler auf, wird die gesamte Anfrage abgelehnt und der bestehende Status wird beibehalten.
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 von den 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 (z. B. mehr als die zulässigen Clusteranzahl). |
SERVICE_CALL_INTERNAL |
Dienstseitig ist ein Fehler aufgetreten. |
SERVICE_CALL_RESOURCE_EXHAUSTED |
Der Dienstaufruf erfolgt zu häufig. |
Schritt 3: Mit Broadcast-Intents umgehen
Neben den Aufrufen der
Content API zum Veröffentlichen über einen Job
für die Einrichtung eines
BroadcastReceiver
zum Empfangen von
um die Veröffentlichung
von Inhalten zu beantragen.
Das Ziel von Broadcast-Intents besteht hauptsächlich zur Reaktivierung von Apps und zum Erzwingen von Daten. synchronisieren. Broadcast-Intents sind nicht für das häufige Senden konzipiert. Es ist nur die ausgelöst werden, wenn Google Engage für Agenturen feststellt, dass die Inhalte veraltet sind (für z. B. eine Woche alt). Auf diese Weise besteht ein größeres Vertrauen, dass die Nutzenden Inhalte aktualisieren, auch wenn die App seit einem lange Zeit verbringen.
BroadcastReceiver
muss auf zwei Arten eingerichtet werden:
- Dynamisches Registrieren einer Instanz der
BroadcastReceiver
-Klasse mithilfe vonContext.registerReceiver()
. Dies ermöglicht die Kommunikation von Anwendungen die sich noch im Arbeitsspeicher befinden.
Kotlin
class AppEngageBroadcastReceiver : BroadcastReceiver(){ // Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION // broadcast is received // Trigger featured cluster publish when PUBLISH_FEATURED broadcast is // received // Trigger shopping cart cluster publish when PUBLISH_SHOPPING_CART broadcast // is received // Trigger shopping list cluster publish when PUBLISH_SHOPPING_LIST broadcast // is received // Trigger reorder cluster publish when PUBLISH_REORDER_CLUSTER broadcast is // received // Trigger shopping order tracking cluster publish when // PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER 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 Shopping Cart Cluster Publish Intent context.registerReceiver(AppEngageBroadcastReceiver(), IntentFilter(Intents.ACTION_PUBLISH_SHOPPING_CART)) // Register Shopping List Cluster Publish Intent context.registerReceiver(AppEngageBroadcastReceiver(), IntentFilter(Intents.ACTION_PUBLISH_SHOPPING_LIST)) // Register Reorder Cluster Publish Intent context.registerReceiver(AppEngageBroadcastReceiver(), IntentFilter(Intents.ACTION_PUBLISH_REORDER_CLUSTER)) // Register Shopping Order Tracking Cluster Publish Intent context.registerReceiver(AppEngageBroadcastReceiver(), IntentFilter(Intents.ACTION_PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER)) }
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 shopping cart cluster publish when PUBLISH_SHOPPING_CART broadcast is // received // Trigger shopping list cluster publish when PUBLISH_SHOPPING_LIST broadcast is // received // Trigger reorder cluster publish when PUBLISH_REORDER_CLUSTER broadcast is // received // Trigger reorder cluster publish when PUBLISH_SHOPPING_ORDER_TRACKING_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.shopping.service.Intents.ACTION_PUBLISH_SHOPPING_CART)); // Register Shopping List Cluster Publish Intent context.registerReceiver(new AppEngageBroadcastReceiver(), new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_SHOPPING_LIST)); // Register Reorder Cluster Publish Intent context.registerReceiver(new AppEngageBroadcastReceiver(), new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_REORDER_CLUSTER)); // Register Shopping Order Tracking Cluster Publish Intent context.registerReceiver(new AppEngageBroadcastReceiver(), new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER)); }
- Sie müssen eine Implementierung mit dem
<receiver>
-Tag in IhremAndroidManifest.xml
-Datei. Dadurch kann die Anwendung Nachrichten an alle Intents erstellt, wenn sie nicht ausgeführt wird, und ermöglicht der App, für den Inhalt.
<application>
<receiver
android:name=".AppEngageBroadcastReceiver"
android:exported="true"
android:enabled="true">
<intent-filter>
<action android:name="com.google.android.engage.action.PUBLISH_RECOMMENDATION" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.engage.action.PUBLISH_FEATURED" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.engage.action.shopping.PUBLISH_SHOPPING_CART" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.engage.action.shopping.PUBLISH_SHOPPING_LIST" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.engage.action.shopping.PUBLISH_REORDER_CLUSTER" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.engage.action.shopping.PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER" />
</intent-filter>
</receiver>
</application>
Die folgenden Intents werden vom Dienst:
com.google.android.engage.action.PUBLISH_RECOMMENDATION
Es empfiehlt sich, einenpublishRecommendationClusters
-Aufruf zu starten, wenn Intent empfangen wird.com.google.android.engage.action.PUBLISH_FEATURED
Es wird empfohlen, einenpublishFeaturedCluster
-Aufruf zu starten, wenn dieser Intent erhalten haben.com.google.android.engage.action.shopping.PUBLISH_SHOPPING_CART
Es wird empfohlen, einenpublishShoppingCart
-Aufruf zu starten, wenn dieser Intent erhalten haben.com.google.android.engage.action.shopping.PUBLISH_SHOPPING_LIST
Es wird empfohlen, einenpublishShoppingList
-Aufruf zu starten, wenn dieser Intent erhalten haben.com.google.android.engage.action.shopping.PUBLISH_REORDER_CLUSTER
Es wird empfohlen, einenpublishReorderCluster
-Aufruf zu starten, wenn dieser Intent erhalten haben.com.google.android.engage.action.shopping.PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER
Es empfiehlt sich, einenpublishShoppingOrderTrackingCluster
-Anruf zu starten, wenn dieser Intent empfangen wird.
Integrationsablauf
Eine detaillierte Anleitung zur Verifizierung deiner Integration nach Fertigstellung findest du unter Workflow zur Einbindung von Entwicklern:
Häufig gestellte Fragen
Weitere Informationen finden Sie in den häufig gestellten Fragen zum Engage SDK für FAQs
Kontakt
Kontakt [email protected], falls folgende Voraussetzungen erfüllt sind: Fragen während des Integrationsprozesses stellen. Unser Team antwortet möglich.
Nächste Schritte
Nach Abschluss der Integration sind folgende Schritte erforderlich:
- E-Mail senden an [email protected] und fügen Sie dein integriertes APK, 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, 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 Einkaufsliste, Cluster für neu anzuordnen und Cluster zur Bestellverfolgung Cluster können veröffentlicht und für Nutzer sichtbar sein.