In diesem Leitfaden wird beschrieben, wie Sie den Dienst zum Abgleich von Kundendaten aus Treuepunkten in der Merchant API verwenden. Mit diesem Dienst können Händler und Drittanbieter von Treuepunkten, die im Namen von Händlern handeln, Kundentreuepunktdaten wie Nutzer-IDs und Stufeninformationen für die organische Personalisierung in der Google Suche verwalten, ohne dass ein aktives Google Ads-Konto erforderlich ist.
Übersicht
Mit dem Kundenabgleich für Treuepunkteprogramme können Sie Treuepunktdaten hochladen, die dann verwendet werden, um organische Personalisierungsfunktionen für Treuepunkteprogramme in der Google Suche bereitzustellen, z. B. die Anzeige von mitgliedsspezifischen Preisen. Mit der benutzerdefinierten Methode ManageLoyaltyCustomerMatch können Sie Ihre Kunden mit Treuepunkteprogramm-Stufen verknüpfen und ihren Treuepunkteprogramm-Status anhand von Nutzer-IDs einfügen, aktualisieren oder entfernen.
Wichtige Konzepte
- Einheitliche Schnittstelle:Ein eindeutiger Endpunkt zum Hinzufügen, Aktualisieren oder Entfernen von Details zur Kundenbindung.
- Datenschutzorientiertes Design:Zum Schutz der Privatsphäre von Nutzern und zur Verhinderung unbefugter Kontoüberprüfungen werden in der API keine GET- oder LIST-Vorgänge unterstützt. So wird sichergestellt, dass Daten ohne Abruf oder Überprüfung verwaltet werden.
- Flexible Identifizierung:Sie können Nutzer anhand von mindestens einer gültigen Kennung abgleichen, z. B. einer E-Mail-Adresse, Postanschrift oder Telefonnummer.
- Verarbeitung auf Grundlage der Einwilligung:Der Dienst speichert und verwendet Kundendaten nur, wenn der Endnutzer die erforderliche Einwilligung für Google erteilt hat. Zum Schutz vor dem Abrufen von Konten oder des Einwilligungsstatus gibt der Dienst einen stillen Erfolg zurück, wenn keine Übereinstimmung gefunden wird oder keine Einwilligung erteilt wurde.
Vorbereitung
Beachten Sie die folgenden Anforderungen für die Nutzung des Kundenabgleichs für Treuepunkte:
- Kontoeinrichtung:Sie benötigen ein aktives Merchant Center-Konto (oder autorisierten Zugriff auf das Konto des Händlers, wenn Sie ein Drittanbieter für Treuepunkte sind). Sie müssen kein Google Ads-Konto erstellen, um den Dienst zum Abgleich von Kunden mit Treuepunkten zu verwenden.
- Konfiguration des Treuepunkteprogramms:Aktivieren Sie das Treuepunkteprogramm in Ihrem Merchant Center-Konto und sorgen Sie dafür, dass Sie Treuepunkteprogramm-Stufen definiert haben.
- Reihenfolge der Stufen: Achten Sie auf die Reihenfolge, in der Ihre Treuepunkteprogramm-Stufen in der Merchant Center-Benutzeroberfläche definiert sind. Die API verwendet genau diese Reihenfolge für die Enum-Zuordnung.
Methode: ManageLoyaltyCustomerMatch
Die Methode ManageLoyaltyCustomerMatch dient als zentrale Schnittstelle für die Verwaltung von Kundenbindungskonten. Anhand der bereitgestellten Eingabe wird automatisch ermittelt, ob der Treuepunkte-Status 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 Kundenbindungskonten ü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 ein loyaltyCustomer-Objekt in den Anfragetext 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 Gruppe von Kennungen, die zum Abgleichen des Kunden verwendet werden. Mindestens ein Feld in „userIdentifier“ muss angegeben und gültig sein.
- loyaltyTier: Die Treuestufe, die dem Kunden zugewiesen werden soll. Entspricht der Reihenfolge der Stufe bei der Einrichtung im Merchant Center.
Weitere Informationen finden Sie unter
loyaltyTier-Zuordnung. Verwenden Sie NON_MEMBER, um eine bestehende Verknüpfung zu entfernen. - pointBalance: Der aktuelle Punktestand des Kunden.
userIdentifier-Felder
Mindestens eines der folgenden Felder muss ausgefüllt sein:
- emailAddress: Die E-Mail-Adresse des Kunden.
- address: Die physische Adresse des Kunden. PostalCode ist erforderlich.
- phoneNumber: Die Telefonnummer des Kunden. Das E.164-Format wird empfohlen.
loyaltyTier-Zuordnung verstehen
Die API verwendet die benutzerdefinierten Namen nicht. Die loyaltyTier-Enum-Werte (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 Ihres Treuepunkteprogramms im Merchant Center aufgeführt ist.TIER2: Entspricht der zweiten Stufe, die in der Konfiguration Ihres Treuepunkteprogramms im Merchant Center aufgeführt ist.TIER3bisTIER7: Entsprechen der dritten bis siebten Stufe, die in der Konfiguration Ihres Treuepunkteprogramms im Merchant Center aufgeführt sind.
Beispiel:
Wenn in Ihrem Merchant Center-Treuepunkteprogramm Stufen in dieser Reihenfolge definiert sind:
- Stufenname: „Silver Status“, Stufenlabel: „silver“
- Stufenname: „Gold Member“, Stufenlabel: „gold“
- Stufenname: „Platinum Elite“, Stufenlabel: „platinum“
Gehen Sie dann bei accounts.loyaltyCustomers.manage-API-Aufrufen so vor:
- Wenn Sie einem Kunden den Silver-Status zuweisen möchten, müssen Sie
loyaltyTier: TIER1verwenden. - Wenn Sie einem Kunden „Gold Member“ zuweisen möchten, müssen Sie
loyaltyTier: TIER2verwenden. - Wenn Sie einem Kunden „Platinum Elite“ zuweisen möchten, müssen Sie
loyaltyTier: TIER3verwenden.
Enum-Werte für LoyaltyTier
TIER1TIER2TIER3TIER4TIER5TIER6TIER7NON_MEMBER(wird verwendet, um die Entfernung der Treuepunkteverknüpfung des Kunden zu signalisieren)
Antworttext von „ManageLoyaltyCustomerMatch“
Die Methode ManageLoyaltyCustomerMatch gibt ein ManageLoyaltyCustomerMatchResponse-Objekt zurück:
{
"loyaltyCustomer": {
// loyaltyCustomer object from the request
}
}
Wichtige Hinweise zu Antworten
Erfolgreiches Upsert (Daten gespeichert): Damit die Treuepunktezuordnung eines Kunden erfolgreich gespeichert oder aktualisiert werden kann, müssen die folgenden Bedingungen erfüllt sein:
- Sie stimmen einen Google-Nutzer mit der angegebenen
userIdentifierab. - Sie haben
loyaltyTierin der Anfrage auf einen gültigen Wert festgelegt, der nichtNON_MEMBERist. - Der abgeglichene Nutzer hat der Datennutzung für Treuedaten zugestimmt.
- Sie stimmen einen Google-Nutzer mit der angegebenen
Die Antwort enthält das loyaltyCustomer-Objekt aus Ihrer Anfrage. Das bedeutet, dass der Dienst die Daten erfolgreich verarbeitet und gespeichert hat:
{
"loyaltyCustomer": {
"userIdentifier": {
"emailAddress": "customer@example.com"
},
"loyaltyTier": "TIER2",
"pointBalance": 1500
}
}
- Erfolgreiches Löschen:Damit eine bestehende Treuepunkteverknüpfung für den Kunden mit diesem Händler erfolgreich entfernt werden kann, müssen die folgenden Bedingungen erfüllt sein:
- Sie stimmen einen Google-Nutzer mit der angegebenen
userIdentifierab. - Sie haben
loyaltyTierin der Anfrage aufNON_MEMBERfestgelegt.
- Sie stimmen einen Google-Nutzer mit der angegebenen
Die Antwort ist ein leeres JSON-Objekt:
{}
- Keine Übereinstimmung / keine Einwilligung (stiller Erfolg): Wenn die angegebene
userIdentifiernicht mit einem Google-Konto übereinstimmt oder der übereinstimmende Nutzer der Verwendung von Treuepunkteprogrammdaten nicht zugestimmt hat, gibt die API den Status HTTP 200 OK mit einem leeren JSON-Objekt zurück:{}. Das passiert sowohl bei Upsert- als auch bei Entfernungsversuchen.
Beispiele
TIER1 entspricht der ersten definierten Stufe (z. B. „Basic“) und TIER2 der zweiten Stufe (z. B. „Premium“).
Wenn Sie einen Kunden zu TIER2 hinzufügen oder seinen Status über eine 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 es keine Übereinstimmung gibt oder der Nutzer nicht eingewilligt hat, gibt die API die folgende Antwort zurück:
{}
Wenn Sie die Treuepunktezuordnung eines Kunden über eine 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 Erfolgsantwort 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:
| HTTP-Code | Fehlerstring | Beschreibung |
| 400 | INVALID_ARGUMENT | user_identifier oder loyalty_tier fehlt oder die Kennzeichnung 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 des Treuepunkteprogramms 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:
Jede gültige Anfrage 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 Enum-Wert für loyaltyTier. Derselbe Fehler kann auftreten, wenn Sie TIER2 angeben, aber 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 Kennzeichnung betrachtet.
Ein Fehler tritt auf, wenn Sie einen Stufenindex anfordern, der außerhalb des Bereichs des konfigurierten Programms liegt:
Szenario:Der Händler hat nur eine Stufe im Merchant Center 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:TIER2 wurde angefordert, aber für das mit dem Konto verknüpfte Treueprogramm 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.
Wenn das userIdentifier-Objekt leer ist, tritt ein Fehler auf:
{
"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 Kennzeichnungsfelder.
Hinweis: Validierung von Kennungen:
- Die API führt grundlegende Formatprüfungen für Kennungen durch, z. B. für die E-Mail-Struktur und das 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 leere Antwort
{}mit dem HTTP-Status200 OK.
Best Practices
Mit diesen Best Practices können Sie Ihre Integration optimieren.
Für die Integration im großen Maßstab:Da die API anfragebasiert funktioniert, ist clientseitige Parallelität erforderlich, um den erforderlichen Durchsatz für große Datasets zu erzielen. Sie sollten Ihre Integration so gestalten, dass sie mehrere gleichzeitige Anfragen verarbeiten kann. Eine Anleitung dazu, wie Sie Ihre Implementierung strukturieren, um höhere Volumina durch Parallelisierung zu bewältigen, finden Sie in unserem Leitfaden 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 in dieuserIdentifierein. E‑Mail-Adressen sind in der Regel die genaueste und zuverlässigste Kennung, um Nutzer ihren Google-Konten zuzuordnen.Leere Antworten verarbeiten:Ihre Anwendung muss leere
{}-Antworten als Erfolg interpretieren. Das bedeutet, dass die Daten aus Datenschutzgründen nicht gespeichert wurden (keine Übereinstimmung oder keine Einwilligung). Die Anfrage nicht noch einmal senden.Stufenreihenfolge prüfen:Prüfen Sie immer die Reihenfolge Ihrer Treuestufen in der Merchant Center-Benutzeroberfläche, um sicherzugehen, dass Sie in Ihren API-Aufrufen die richtigen Enum-Werte von
TIER1bisTIER7verwenden. Diese Zuordnung basiert auf der in der Benutzeroberfläche definierten Reihenfolge, nicht auf den Namen.Fehler im Blick behalten:Protokollieren und überwachen Sie API-Antworten und achten Sie auf
4xx-Fehler, um Integrationsprobleme zu erkennen, insbesondere404-Fehler, die auf eine Diskrepanz bei der Stufenzuordnung hinweisen können.