In dieser Anleitung wird beschrieben, wie Sie den Dienst für den Kundenabgleich für Treuepunkteprogramme in der Merchant API verwenden. Mit diesem Dienst können Händler Kundentreuedaten wie Nutzerkennungen und Stufeninformationen für die organische Personalisierung in der Google Suche verwalten, ohne dass ein aktives Google Ads-Konto erforderlich ist.
Übersicht
Mit dem Dienst für den Kundenabgleich für Treuepunkteprogramme können Sie Treuedaten hochladen, die dann verwendet werden, um organische Personalisierungsfunktionen für Treuepunkteprogramme in der Google Suche bereitzustellen, z. B. die Anzeige von mitgliederspezifischen Preisen. Mit der ManageLoyaltyCustomerMatch
benutzerdefinierten Methode können Sie Ihre Kunden mit Stufen von Treuepunkteprogrammen verknüpfen. So können
Sie den Treuestatus anhand von Nutzer
kennungen einfügen, aktualisieren oder entfernen.
Wichtige Konzepte
- Einheitliche Benutzeroberfläche: Ein eindeutiger Endpunkt zum Hinzufügen, Aktualisieren oder Entfernen von Details zu Kundentreuestufen.
- Datenschutzorientiertes Design: Zum Schutz der Privatsphäre von Nutzern und zur Verhinderung unbefugter Kontoabfragen werden von der API keine GET- oder LIST-Vorgänge unterstützt. So wird sichergestellt, dass Daten ohne Abruf oder Überprüfung verwaltet werden.
- Flexible Identifizierung: Nutzer können mit mindestens einer gültigen Kennung abgeglichen werden, z. B. einer E‑Mail-Adresse, einer Postanschrift oder einer Telefonnummer.
- Einwilligungsbasierte Verarbeitung: Der Dienst speichert und verwendet Kundendaten nur wenn der Endnutzer Google die erforderliche Einwilligung erteilt hat. Zum Schutz vor Abfragen des Kontostatus oder des Einwilligungsstatus gibt der Dienst bei fehlender Übereinstimmung oder fehlender Einwilligung eine stumme Erfolgsmeldung zurück.
Vorbereitung
Folgende Voraussetzungen müssen erfüllt sein, um den Dienst für den Kundenabgleich für Treuepunkteprogramme verwenden zu können:
- Kontoeinrichtung:Sie benötigen ein aktives Merchant Center-Konto. Sie müssen kein Google Ads-Konto erstellen, um den Dienst für den Kundenabgleich für Treuepunkteprogramme verwenden zu können.
- Konfiguration des Treuepunkteprogramms: Aktivieren Sie das Treuepunkteprogramm in Ihrem Merchant Center-Konto und legen Sie Treuestufen fest.
- Reihenfolge der Stufen:Achten Sie auf die Reihenfolge, in der Ihre Treuestufen in der Merchant Center-Benutzeroberfläche definiert sind. Die API verwendet genau diese Reihenfolge für die Zuordnung von Aufzählungen.
Methode: ManageLoyaltyCustomerMatch
Die Methode ManageLoyaltyCustomerMatch dient als zentrale Schnittstelle für die Verwaltung von Verknüpfungen für Kundentreue. Anhand der eingegebenen Daten ermittelt der Dienst automatisch, ob der Treuestufenstatus eines Kunden eingefügt, aktualisiert oder entfernt werden soll. Der Vorgang ist
idempotent: Wiederholte identische
Anfragen haben dieselbe Wirkung wie eine einzelne Anfrage.
Die folgende Anfrage zeigt, wie Sie Verknüpfungen für Kundentreue über die API verwalten:
POST https://merchantapi.googleapis.com/{api_version}/accounts/{account_id}/loyaltyCustomers:manage
In dieser Anfrage werden die folgenden erforderlichen Pfadparameter definiert:
api_version: Die API-Version, z. B. v1.account_id: Die Merchant Center-Konto-ID.
Fügen Sie im Anfragetext ein loyaltyCustomer-Objekt ein.
{
"userIdentifier": {
"emailAddress": "string",
"address": {
"addressLines": ["string"],
"locality": "string",
"administrativeArea": "string",
"postalCode": "string",
"regionCode": "string"
},
"phoneNumber": "string"
},
"loyaltyTier": "LoyaltyTier",
"pointBalance": "integer"
}
loyaltyCustomer-Felder
- userIdentifier: Die Kennungen, die zum Abgleich des Kunden verwendet werden. Mindestens ein Feld in „userIdentifier“ muss angegeben und gültig sein.
- loyaltyTier: Die Treuestufe, die mit dem
Kunden verknüpft werden soll. Entspricht der Reihenfolge der Stufe in der Merchant Center-Einrichtung.
Weitere Informationen finden Sie unter
Zuordnung
loyaltyTier. Verwenden Sie NON_MEMBER , um eine vorhandene Verknüpfung zu entfernen. - pointBalance: Der aktuelle Punktestand des Kunden.
userIdentifier-Felder
Es muss mindestens eines der folgenden Felder verfügbar sein:
- emailAddress: Die E‑Mail-Adresse des Kunden.
- address: Die Postanschrift des Kunden. Die Postleitzahl ist erforderlich.
- phoneNumber: Die Telefonnummer des Kunden. Das E.164-Format wird empfohlen.
Zuordnung von loyaltyTier
Die API verwendet nicht die benutzerdefinierten Namen. Die Aufzählungswerte von loyaltyTier (TIER1 bis TIER7) sind semantische Labels. Sie verwenden nicht die benutzerdefinierten Namen (z. B. „Gold Rewards“) oder benutzerdefinierten Labels (z. B. „gold_tier“), die Sie in der Merchant Center-Benutzeroberfläche zugewiesen haben. Stattdessen werden sie genau der Reihenfolge zugeordnet, in der Sie Ihre Stufen in den Einstellungen für das Treuepunkteprogramm im Merchant Center definiert haben:
TIER1: Entspricht der ersten Stufe, die in der Konfiguration des Treuepunkteprogramms im Merchant Center aufgeführt ist.TIER2: Entspricht der zweiten Stufe, die in der Konfiguration des Treuepunkteprogramms im Merchant Center aufgeführt ist.TIER3bisTIER7: Entsprechen der dritten bis siebten Stufe , die in der Konfiguration des Treuepunkteprogramms im Merchant Center aufgeführt sind.
Beispiel :
Wenn in Ihrem Merchant Center-Treuepunkteprogramm Stufen in dieser Reihenfolge definiert sind:
- Stufenname: „Silberstatus“, Stufenlabel: „silber“
- Stufenname: „Gold-Mitglied“, Stufenlabel: „gold“
- Stufenname: „Platinum Elite“, Stufenlabel: „platinum“
Dann in accounts.loyaltyCustomers.manage
-API-Aufrufen:
- Um einen Kunden der Stufe „Silberstatus“ zuzuweisen, müssen Sie
loyaltyTier: TIER1verwenden. - Um einen Kunden der Stufe „Gold-Mitglied“ zuzuweisen, müssen Sie
loyaltyTier: TIER2verwenden. - Um einen Kunden der Stufe „Platinum Elite“ zuzuweisen, müssen Sie
loyaltyTier: TIER3verwenden.
Aufzählungswerte für LoyaltyTier
TIER1TIER2TIER3TIER4TIER5TIER6TIER7NON_MEMBER(wird verwendet, um die Entfernung der Treueverknüpfung des Kunden zu signalisieren)
Antworttext von ManageLoyaltyCustomerMatch
Die ManageLoyaltyCustomerMatch Methode gibt ein
ManageLoyaltyCustomerMatchResponse Objekt zurück:
{
"loyaltyCustomer": {
// loyaltyCustomer object from the request
}
}
Wichtige Hinweise zu möglichen Antworten:
Erfolgreiches Upsert (Daten gespeichert) : Damit die Treuestufenverknüpfung eines Kunden erfolgreich gespeichert oder aktualisiert werden kann, müssen die folgenden Bedingungen erfüllt sein:
- Sie gleichen einen Google-Nutzer mit der angegebenen
userIdentifierab. - Sie legen
loyaltyTierin der Anfrage auf einen gültigen Wert fest, der nichtNON_MEMBERist. - Der abgeglichene Nutzer hat der Datennutzung für Treuedaten zugestimmt.
- Sie gleichen einen Google-Nutzer mit der angegebenen
Die Antwort enthält das loyaltyCustomer-Objekt aus Ihrer Anfrage. Das bedeutet, dass die Daten erfolgreich verarbeitet und gespeichert wurden:
{
"loyaltyCustomer": {
"userIdentifier": {
"emailAddress": "customer@example.com"
},
"loyaltyTier": "TIER2",
"pointBalance": 1500
}
}
- Erfolgreiches Löschen: Damit eine vorhandene Treueverknüpfung für den Kunden mit diesem Händler erfolgreich entfernt werden kann, müssen die folgenden Bedingungen erfüllt sein:
- Sie gleichen einen Google-Nutzer mit der angegebenen
userIdentifierab. - Sie legen
loyaltyTierin der Anfrage aufNON_MEMBERfest.
- Sie gleichen einen Google-Nutzer mit der angegebenen
Die Antwort ist ein leeres JSON-Objekt:
{}
- Keine Übereinstimmung / keine Einwilligung (stumme Erfolgsmeldung) : Wenn die angegebene
userIdentifiernicht mit einem Google-Konto übereinstimmt oder der abgeglichene Nutzer der Verwendung von Treuedaten nicht zugestimmt hat, gibt die API den Status HTTP 200 OK mit einem leeren JSON-Objekt zurück:{}. Das gilt sowohl für Upsert- als auch für Entfernungs versuche.
Beispiele
TIER1 entspricht der ersten definierten Stufe des Händlers, „Basic“, und TIER2 der zweiten Stufe, „Premium“
Wenn Sie einen Kunden zu TIER2 hinzufügen oder seinen Status mit einer E‑Mail-Adresse aktualisieren möchten, senden Sie die folgende Anfrage:
POST
"https://merchantapi.googleapis.com/v1/accounts/{account_id}/loyaltyCustomers:manage"
-d '{
"userIdentifier": {
"emailAddress": "customer@example.com"
},
"loyaltyTier": "TIER2",
"pointBalance": 1500
}'
Wenn ein Nutzer erfolgreich abgeglichen wurde und seine Einwilligung erteilt hat, gibt die API die folgende Antwort zurück:
{
"loyaltyCustomer": {
"userIdentifier": {
"emailAddress": "customer@example.com"
},
"loyaltyTier": "TIER2",
"pointBalance": 1500
}
}
Wenn keine Übereinstimmung vorliegt oder der Nutzer keine Einwilligung erteilt hat, gibt die API die folgende Antwort zurück:
{}
Wenn Sie die Treueverknüpfung eines Kunden mit einer Telefonnummer entfernen möchten, senden Sie die folgende Anfrage:
POST
"https://merchantapi.googleapis.com/v1/accounts/{account_id}/loyaltyCustomers:manage" \
-d '{
"userIdentifier": {
"phoneNumber": "+18005550132"
},
"loyaltyTier": "NON_MEMBER"
}'
Unabhängig davon, ob ein Datensatz vorhanden war, gibt die API die folgende Erfolgsmeldung zurück:
{}
Wenn Sie einen Kunden mit mehreren Kennungen hinzufügen oder aktualisieren möchten, senden Sie die folgende Anfrage:
POST
"https://merchantapi.googleapis.com/v1/accounts/{account_id}/loyaltyCustomers:manage" \
-d '{
"userIdentifier": {
"emailAddress": "user@example.com",
"address": {
"postalCode": "94043",
"regionCode": "US"
}
},
"loyaltyTier": "TIER1"
}'
Die Antwort ähnelt dem ersten Beispiel, je nach Übereinstimmung und Einwilligung.
Fehlerbehandlung
Die API verwendet Standard-HTTP-Codes. Häufige Fehlerstrings sind:
| HTTP-Code | Fehlerstring | Beschreibung |
| 400 | INVALID_ARGUMENT | user_identifier oder loyalty_tier fehlt oder die Kennung ist leer. |
| 401 | UNAUTHENTICATED | Ungültige oder fehlende Anmeldedaten. |
| 403 | PERMISSION_DENIED | Der authentifizierte Nutzer hat keinen Zugriff auf das angegebene Merchant Center-Konto. |
| 404 | NOT_FOUND | Das angegebene Stufenlabel für die Treuestufe ist in Ihrer Konfiguration nicht vorhanden. |
| 412 | FAILED_PRECONDITION | Sie haben in Ihrem Konto kein Treuepunkteprogramm konfiguriert. |
| 429 | RESOURCE_EXHAUSTED | Kontingentlimit erreicht. |
Beispiele für Fehler
Beispiel für 404 NOT_FOUND :
Gültige Anfragen an eine Konto-ID, für die kein Treuepunkteprogramm konfiguriert ist.
Die API gibt die folgende Fehlerantwort zurück:
{
"error": {
"code": 404,
"message": "The loyalty program is not found for account: {account_id}.",
"status": "NOT_FOUND",
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "notFound",
"domain": "merchantapi.googleapis.com",
"metadata": {
"ACCOUNT_ID": "{account_id}",
"REASON": "NOT_FOUND_LOYALTY_PROGRAM"
}
}
]
}
}
Grund:Das Händlerkonto im Pfad hat kein aktives Treuepunkteprogramm.
Beispiele für 400 INVALID_ARGUMENT :
Ein Fehler tritt auf, wenn die Anfrage einen ungültigen Wert für das Feld loyaltyTier enthält:
{
"loyaltyCustomer": {
"userIdentifier": {
"emailAddress": "customer@example.com"
},
"loyaltyTier": "TIER11",
"pointBalance": 100
}
}
Die API gibt die folgende Fehlerantwort zurück:
{
"error": {
"code": 400,
"message": "Invalid value at 'loyalty_customer.loyalty_tier' (type.googleapis.com/google.shopping.merchant.loyaltycustomers.v1.LoyaltyCustomer.LoyaltyTier), \"TIER11\"",
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.rpc.BadRequest",
"fieldViolations": [
{
"field": "loyalty_customer.loyalty_tier",
"description": "Invalid value at 'loyalty_customer.loyalty_tier' (type.googleapis.com/google.shopping.merchant.loyaltycustomers.v1.LoyaltyCustomer.LoyaltyTier), \"TIER11\""
}
]
}
]
}
}
Grund:TIER11 ist kein gültiger Aufzählungswert für loyaltyTier. Derselbe Fehler kann auftreten, wenn Sie TIER2 angeben, obwohl nur eine Stufe verfügbar ist.
Ein Fehler tritt auf, wenn das erforderliche Feld loyaltyTier im Anfragetext fehlt:
{
"loyaltyCustomer": {
"userIdentifier": {
"emailAddress": "customer@example.com"
},
"pointBalance": 100
}
}
Die API gibt die folgende Fehlerantwort zurück:
{
"error": {
"code": 400,
"message": "[loyalty_customer.loyalty_tier] Required field not provided: loyalty_customer.loyalty_tier",
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "required",
"domain": "merchantapi.googleapis.com",
"metadata": {
"FIELD_LOCATION": "loyalty_customer.loyalty_tier",
"REASON": "MISSING_REQUIRED_FIELD"
}
}
]
}
}
Grund:Das Feld loyaltyTier ist erforderlich.
Ein Fehler tritt auf, wenn eine Adresskennung unvollständig ist, z. B. wenn das Feld „postalCode“ fehlt:
{
"loyaltyCustomer": {
"userIdentifier": {
"address": {
"locality": "Sunnyvale",
"administrativeArea": "CA",
"regionCode": "US"
}
},
"loyaltyTier": "TIER1",
"pointBalance": 100
}
}
Die API gibt die folgende Fehlerantwort zurück:
{
"error": {
"code": 400,
"message": "[loyalty_customer.user_identifier] The format of loyalty_customer.user_identifier does not match the expected format ... Value: at least one valid user identifier should be provided.",
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "invalid",
"domain": "merchantapi.googleapis.com",
"metadata": {
"FIELD_NAME": "loyalty_customer.user_identifier",
"REASON": "INVALID_VALUE"
}
}
]
}
}
Grund:Es wurde eine Adresse angegeben, aber das erforderliche Feld postalCode fehlt. Daher wird sie nicht als gültige Kennung betrachtet.
Ein Fehler tritt auf, wenn Sie einen Stufenindex anfordern, der außerhalb des Bereichs für das konfigurierte Programm liegt:
Szenario:Der Händler hat im Merchant Center nur eine Stufe konfiguriert.
{
"loyaltyCustomer": {
"userIdentifier": {
"emailAddress": "customer@example.com"
},
"loyaltyTier": "TIER2",
"pointBalance": 100
}
}
Die API gibt die folgende Fehlerantwort zurück:
{
"error": {
"code": 400,
"message": "[loyalty_customer.loyalty_tier] The format of loyalty_customer.loyalty_tier does not match the expected format `valid LoyaltyTier`. Value: TIER2.",
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "invalid",
"domain": "merchantapi.googleapis.com",
"metadata": {
"FIELD_NAME": "loyalty_customer.loyalty_tier",
"PATTERN": "valid LoyaltyTier",
"FIELD_VALUE": "TIER2",
"REASON": "INVALID_VALUE"
}
}
]
}
}
Grund:Es wurde TIER2 angefordert, aber für das mit dem Konto verknüpfte Treuepunkteprogramm ist keine zweite Stufe definiert.
Ein Fehler tritt auf, wenn die Anfrage eine fehlerhafte emailAddress enthält:
{
"loyaltyCustomer": {
"userIdentifier": {
"emailAddress": "customer@google"
},
"loyaltyTier": "TIER1",
"pointBalance": 100
}
}
Die API gibt die folgende Fehlerantwort zurück:
{
"error": {
"code": 400,
"message": "[loyalty_customer.user_identifier] The format of loyalty_customer.user_identifier does not match the expected format `email_address: \t \"customer@google\"\n`. Value: at least one valid user identifier should be provided.",
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "invalid",
"domain": "merchantapi.googleapis.com",
"metadata": {
"FIELD_NAME": "loyalty_customer.user_identifier",
"REASON": "INVALID_VALUE"
}
}
]
}
}
Grund:Das Format der E‑Mail-Adresse ist ungültig.
Ein Fehler tritt auf, wenn das userIdentifier-Objekt leer ist:
{
"loyaltyCustomer": {
"userIdentifier": {},
"loyaltyTier": "TIER1",
"pointBalance": 100
}
}
Die API gibt die folgende Fehlerantwort zurück:
{
"error": {
"code": 400,
"message": "[loyalty_customer.user_identifier] Required field not provided: loyalty_customer.user_identifier",
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "required",
"domain": "merchantapi.googleapis.com",
"metadata": {
"FIELD_LOCATION": "loyalty_customer.user_identifier",
"REASON": "MISSING_REQUIRED_FIELD"
}
}
]
}
}
Grund:Das userIdentifier-Objekt ist vorhanden, enthält aber keine tatsächlichen Kennungsfelder.
Hinweis zur Kennungsüberprüfung :
- Die API führt grundlegende Formatprüfungen für Kennungen durch (z. B. E‑Mail-Struktur, Vorhandensein von
postalCodein Adressen). - Einige Kennungen, die die ersten Prüfungen bestehen, stimmen jedoch möglicherweise nicht mit einem Google-Nutzerkonto überein oder haben kein Format, das vom Backend-Abgleichsystem erkannt wird. In solchen Fällen erhalten Sie die stumme Erfolgsmeldung
{}mit dem HTTP-Status200 OK.
Best Practices
Mit diesen Best Practices können Sie Ihre Integration optimieren.
Für die groß angelegte Integration:Da die API auf Anfragebasis funktioniert, ist clientseitiger Parallelismus erforderlich, um den erforderlichen Durchsatz für große Datensätze zu erzielen. Sie sollten Ihre Integration so gestalten, dass mehrere gleichzeitige Anfragen verarbeitet werden können. Eine Anleitung zum Strukturieren Ihrer Implementierung zur Verarbeitung größerer Mengen durch Parallelisierung finden Sie in unserer Anleitung zum Senden mehrerer Anfragen.
Kontingentverwaltung:Das Standardkontingent beträgt 1.000.000 Anfragen pro Tag und 10.000 Anfragen pro Minute. Informationen zum Überwachen und Prüfen Ihrer Kontingente finden Sie unter Kontingente und Limits.
E‑Mail-Adresse priorisieren:Fügen Sie nach Möglichkeit die
emailAddressdes Kunden inuserIdentifierein. E‑Mail-Adressen sind in der Regel die genaueste und zuverlässigste Kennung, um Nutzer ihren Google-Konten zuzuordnen.Leere Antworten verarbeiten:Gestalten Sie Ihre Anwendung so, dass leere
{}-Antworten korrekt als Erfolg interpretiert werden. Das bedeutet, dass die Daten aus Datenschutzgründen nicht gespeichert wurden (keine Übereinstimmung oder keine Einwilligung). Versuchen Sie die Anfrage nicht noch einmal.Reihenfolge der Stufen überprüfen:Bestätigen Sie immer die Reihenfolge Ihrer Treuestufen in der Merchant Center-Benutzeroberfläche, um sicherzustellen, dass Sie in Ihren API-Aufrufen die richtigen Aufzählungswerte für
TIER1bisTIER7verwenden. Diese Zuordnung basiert auf der definierten Reihenfolge in der Benutzeroberfläche, nicht auf den Namen.Fehler beobachten:Protokollieren und beobachten Sie API-Antworten und achten Sie auf alle
4xx-Fehler, um Integrationsprobleme zu erkennen, insbesondere404-Fehler, die auf eine Abweichung im Verständnis der Stufen hinweisen können.