Nutzerereignisse

Auf dieser Seite wird das Nutzerereignisobjekt beschrieben, einschließlich der Auflistung potenzieller Nutzerereignistypen. Außerdem finden Sie Beispieldaten für alle Nutzerereignistypen.

Vertex AI Search for Commerce verwendet Nutzerereignisse in Echtzeit, um Empfehlungen und Suchergebnisse zu generieren. Wenn Sie Daten hochladen, können sowohl Empfehlungen als auch die Suche diese Daten verwenden. Sie müssen also nicht dieselben Ereignisse zweimal hochladen, wenn Sie beide Dienste verwenden.

Funktionsweise der Suchattribution

Funktionsweise der Attribution

Nutzerereignistypen

Es gibt mehrere Nutzerereignistypen, die Sie aufzeichnen können, wenn Nutzer Ihre Einzelhandels-Website besuchen:

Name des Nutzerereignisses Nutzeraktion Google Analytics 4 event_name
home-page-view Ruft die Startseite auf. view_homepage
search (Suchen und surfen) Durchsucht den Katalog. view_item_list + [searchQuery ODER pageCategories + filter]
category-page-view (nur Empfehlungen) Zeigt spezielle Seiten an, wie Verkaufs- oder Werbeaktionsseiten. view_item_list + pageCategories
detail-page-view Ruft die Produktdetailseite auf. view_item
add-to-cart Legt Artikel in den Einkaufswagen. add_to_cart
shopping-cart-page-view Ruft den Einkaufswagen auf. begin_checkout
purchase-complete Schließt den Bestellprozess ab. purchase

Eine ausführliche Liste der GA4-Ereignisfelder finden Sie unter Google Analytics 4-Felder für Nutzerereignisse.

Ausführliche Informationen zum UserEvent-Objekt finden Sie unter UserEvent.

Ereignistyppriorität

Für optimale Ergebnisse empfehlen wir, Nutzerereignisse für alle Ereignistypen aufzuzeichnen. In der folgenden Tabelle wird die Priorität der verschiedenen Nutzerereignistypen beschrieben. Sie müssen die Nutzerereignisse mit der höchsten Priorität protokollieren, um qualitativ hochwertige Datenmodelle zu erhalten.

Priorität Nutzerereignistypen

Erforderlich für den ersten Live-Test für Empfehlungen

(Ereignistypen hängen vom Typ des Empfehlungsmodells ab)

detail-page-view

add-to-cart

purchase-complete

home-page-view

Zusätzliches Ereignis für Live-Test in der Suche erforderlich

search

Anforderungen und Best Practices für Nutzerereignisse

In den folgenden Tabellen sind die Anforderungen und Best Practices für Nutzerereignistypen aufgeführt, die für Empfehlungen und die Suche verwendet werden. Prüfen Sie, ob Ihre Nutzerereignisse diese Anforderungen erfüllen, damit Vertex AI Search for Commerce Qualitätsergebnisse generieren kann.

In diesem Abschnitt wird Folgendes aufgelistet:

Wenn Sie Empfehlungsmodelle verwenden, sehen Sie sich auch die Datenanforderungen für Modelltypen an, wo zusätzliche Anforderungen aufgelistet werden, in Abhängigkeit von den zu verwendenden Empfehlungsmodelltypen und Optimierungszielen.

Messwerte zur Datenqualität für die Suche finden Sie in der Search for Commerce Console auf der Seite Datenqualität. Diese Messwerte geben den Prozentsatz der Produkte und Nutzerereignisse an, die die empfohlenen Standards für die Datenqualität erfüllen. Informationen dazu, wie Sie die Qualität von Suchdaten ansehen können, finden Sie unter Leistungsstufen für die Suche freischalten.

Allgemeine Anforderungen an Nutzerereignisse

Achten Sie darauf, dass Ihre Nutzerereignisse die folgenden Anforderungen erfüllen, damit Vertex AI Search für den Einzelhandel Qualitätsergebnisse generieren kann. Diese gelten sowohl für Empfehlungen als auch für die Suche.

Ereignistyp Anforderung Auswirkungen
Alle Termine

Geben Sie keine synthetischen Daten oder doppelten Ereignisse an.

Synthetische oder doppelte Ereignisse wirken sich negativ auf die Modellqualität aus und verhindern oft ein erfolgreiches Modelltraining. Doppelte Ereignisse können zu falschen Messwerten führen.

Geben Sie mindestens 100 eindeutige Besucher-IDs für jeden aufgenommenen Ereignistyp an.

So wird geprüft, ob Vertex AI Search für den Einzelhandel über genügend Daten verfügt, um gute Ergebnisse zu generieren.

Besucher-IDs müssen beim Importieren oder Aufzeichnen von Ereignissen und in API-Anfragen genau gleich formatiert sein.

Wenn Sie ein einheitliches Format für Besucher-IDs verwenden, können Besuchermuster richtig erkannt und auf Grundlage des Nutzerverhaltens qualitativ hochwertigere Ergebnisse erzielt werden.

Die in den Ereignissen enthaltenen Produkte sollten in Ihrem Produktkatalog enthalten sein.

Das Verhältnis von nicht verbundenen Ereignissen sollte so niedrig wie möglich sein. Ein hohes Verhältnis kann sich negativ auf die Qualität der Empfehlung oder der Suchergebnisse auswirken.

Nicht verknüpfte Ereignisdaten werden nicht zum Trainieren von Modellen verwendet. Nicht verknüpfte Ereignisse können jedoch später verknüpft werden, nachdem die zugehörigen Produkte aufgenommen wurden. Weitere Informationen finden Sie unter Nutzerereignisse neu verknüpfen.

Einige Nutzerereignisse sollten dieselbe Besucher-ID haben.

Damit gültige Verhaltenssequenzverläufe erstellt werden können, müssen in Vertex AI Search for Commerce mehrere Ereignisse mit derselben Besucher-ID vorhanden sein.

visitor123 hat sich beispielsweise fünf Produktdetailseiten angesehen, drei Produkte in den Einkaufswagen gelegt und dann zwei der ursprünglichen fünf Produkte gekauft. Wenn diese Ereignisse alle dieselbe, einheitlich formatierte Besucher-ID enthalten, kann Vertex AI Search for Commerce diese Verhaltenssequenz in seinen Modellen berücksichtigen.

detail-page-view

Fügen Sie genau ein Produkt pro Ereignis ein.

Das Ereignis kann nicht verwendet werden, wenn kein Produkt vorhanden ist. Wenn mehrere Produkte angegeben sind, wird das Ereignis fehlerhaft und kann nicht verwendet werden.

add-to-cart

Fügen Sie genau ein Produkt pro Ereignis ein.

Wenn mehrere Produkte angegeben sind, ist das Ereignis fehlerhaft und kann nicht verwendet werden.

purchase-complete

Schließen Sie purchase_transaction.revenue ein.

purchase-complete-Ereignisse, bei denen das Feld revenue fehlt, werden nicht zum Trainieren von Modellen verwendet.

Schließen Sie genau ein purchase_transaction.currency_code für alle Kaufereignisse ein.

Es gibt keinen Standardwährungscode. Ein Code muss angegeben werden.

Kaufereignisse ohne dieses Feld führen zu falschen Umsatzmesswerten.

Prüfen Sie, ob einige Kaufereignisse mehrere Produkte enthalten.

Wenn Sie einige Kaufereignisse mit mehreren Produkten haben, kann das Modell Muster für gemeinsame Käufe lernen.

Recommendations-spezifische Anforderungen

Wenn Sie Empfehlungen verwenden, müssen Ihre Nutzerereignisse die folgenden Anforderungen erfüllen.

Wenn Sie Empfehlungsmodelle verwenden, sehen Sie sich auch die Datenanforderungen für Modelltypen an, wo zusätzliche Anforderungen aufgelistet werden, in Abhängigkeit von den zu verwendenden Empfehlungsmodelltypen und Optimierungszielen.

Ereignistyp Anforderung Auswirkungen
purchase-complete

Vereinfachen Sie Einkaufswagen mit mehreren Artikeln nicht zu mehreren Kaufereignissen. Sie sollten weiterhin als einzelne Kaufereignisse verbleiben, die mehrere Produkte enthalten.

Dadurch wird sichergestellt, dass gültige Muster für gemeinsame Käufe generiert werden.

Suchspezifische Anforderungen

Wenn Sie die Suche verwenden, müssen Ihre Nutzerereignisse die folgenden Mindestanforderungen erfüllen, damit Ergebnisse zurückgegeben werden.

Ereignistyp Anforderung Auswirkungen
search

searchQuery muss für Suchereignisse und pageCategories für Stöberereignisse vorhanden sein.

Wenn Sie dieses Feld nicht angeben, kann sich dies erheblich auf die Qualität und Messwerte der Suchergebnisse auswirken.

Die Besucher-ID in Suchanfragen sollte mit der Besucher-ID übereinstimmen, die in Ereignissen gesendet wurde, die sich auf diese Suchanfrage beziehen.

Wenn sie nicht übereinstimmen, sind die Ereignisse fehlerhaft und die Messwerte sind möglicherweise falsch.

Die Liste der Produkt-IDs in Suchereignissen muss vollständig mit der Liste der Produkte übereinstimmen, die dem Nutzer angezeigt werden.

Wenn sie nicht übereinstimmen, kann die negative Auswirkung auf die Qualität der Suchergebnisse hoch sein und die Messwerte sind falsch.

Wenn bei der Suche ein Filter verwendet wird, muss filter vorhanden sein und korrekt geparst werden.

Wenn dieses Feld nicht vorhanden ist, kann Vertex AI Search for Commerce den Filterteil der Daten nicht verwenden, was sich negativ auf die Qualität der Suchergebnisse auswirken kann.

Fügen Sie das Feld attribution_token ein, um andere Ereignisse mit Suchereignissen zu verknüpfen.

Wenn Sie kein Attributions-Token angeben, wird in der Suche für den Handel ein Fehler ausgelöst. Dies hat erhebliche negative Auswirkungen auf die Suchqualität und Messwertgenauigkeit.

Voraussetzungen für die Suchmaschinenoptimierung

Damit die Suche die Suchergebnisse automatisch auf Grundlage allgemeiner Nutzertrends optimieren kann, laden Sie die folgenden Daten hoch.

Ereignisse sollten mindestens täglich mit einer maximalen Verzögerung von 24 Stunden hochgeladen werden.

Messwert für Ereignisse Anzahl/Häufigkeit von Ereignissen Beschreibung
Anzahl der search-Ereignisse 250.000 in den letzten 90 Tagen

Für die Optimierung der Suchfunktion auf Grundlage der aufgenommenen Ereignisse sind mindestens 250.000 Ereignisse in den letzten 90 Tagen erforderlich.

Wir empfehlen, Ereignisse mindestens täglich hochzuladen, um eine gute Datenqualität zu gewährleisten. Achten Sie beim Importieren von Verlaufsdaten darauf, dass die Datenverteilung zum neuesten Zeitstempel hin verzerrt ist. Die Anzahl der Ereignisse am letzten Timestamp-Tag sollte mindestens dem durchschnittlichen täglichen Ereignisvolumen entsprechen.

Anzahl der detail-page-view, die einem search-Ereignis zugeordnet werden 500.000 in den letzten 30 Tagen Für die Optimierung von Suchergebnissen anhand von Nutzerereignissen sind mindestens 500.000 Ereignisse erforderlich.
Durchschnittliche Anzahl von detail-page-view-Ereignissen, die einem search-Ereignis pro Produkt zugeordnet werden 10 in den letzten 30 Tagen Erforderlich, um Suchergebnisse anhand der erfassten Ereignisse zu optimieren, sofern keine Ereignisse für die letzten 21 Tage hochgeladen werden.
Anteil der search-Ereignisse mit parsierbaren Filtern 0,1 in den letzten 30 Tagen Empfohlen zum Optimieren der Reihenfolge dynamischer Attribute in der Suchantwort.
Anteil der gesuchten Produkte mit Preis 0,95 in den letzten 30 Tagen Erforderlich, um Suchergebnisse anhand der erfassten Ereignisse zu optimieren.
Durchschnittliche Anzahl von add-to-cart-Ereignissen, die einem search-Ereignis pro Produkt mit Preis zugeordnet werden 0,5 in den letzten 30 Tagen Empfohlen für umsatzoptimierte Suchergebnisse.
Durchschnittliche Anzahl von purchase-complete-Ereignissen, die einem search-Ereignis pro durchsuchbarem Produkt mit Preis zugeordnet werden 0,5 in den letzten 30 Tagen Empfohlen für umsatzoptimierte Suchergebnisse.

Anforderungen für die Personalisierung der Suche

Für die Personalisierung der Textsuche und der Suchergebnisse für Ihre Nutzer auf Grundlage ihrer Aktivitäten sind die folgenden Daten erforderlich.

Nachdem Sie die folgenden Daten hochgeladen haben, können Suchergebnisse automatisch personalisiert werden.

Messwert für Ereignisse Anzahl/Häufigkeit von Ereignissen Beschreibung
Volumen der von der Suche bereitgestellten search-Ereignisse 100.000 in den letzten 30 Tagen

Es müssen mindestens 100.000 Suchereignisse in den letzten 30 Tagen vorliegen,um eine Personalisierung zu ermöglichen.

Suchergebnisse werden nicht im Cache gespeichert Weniger als 1% der letzten 100.000 Nutzerereignisse

Suchergebnisse für Text- oder Browsersuchen sollten nicht im Cache gespeichert werden, wenn Sie eine Personalisierung verwenden möchten. Wenn für alle Besucher dieselben Ergebnisse verwendet werden, kann die Suche keine wirklich personalisierten Ergebnisse für einzelne Nutzer liefern. Außerdem besteht das Risiko, dass private Daten von Nutzern offengelegt werden. Die Personalisierung der Suche wird automatisch deaktiviert, wenn Caching erkannt wird.

Wenn Sie nur Suchergebnisse im Cache speichern, kann die Suche weiterhin Stöberergebnisse personalisieren. Wenn Sie hingegen nur Browsergebnisse im Cache speichern, können die Suchergebnisse für Textanfragen weiterhin personalisiert werden.

Übereinstimmungen zwischen Besucher-IDs in SearchRequests und Nutzerereignissen Mehr als 10% Übereinstimmung bei den letzten 100.000 Nutzerereignissen Achten Sie darauf, dass die Abstände und die Formatierung der Besucher-ID in SearchRequests und Nutzerereignissen übereinstimmen. Durch die einheitliche Formatierung der Besucher-ID wird sichergestellt, dass die Suche Nutzeraktivitäten richtig identifizieren kann.

Beispiele für Nutzerereignistypen und Schemas

In diesem Abschnitt werden die Datenformate für jeden unterstützten Ereignistyp bereitgestellt.

Beispiele für JavaScript Pixel und Tag Manager werden bereitgestellt. Für BigQuery wird das vollständige Tabellenschema für jeden Typ bereitgestellt.

Für alle Nutzerereignistypen ist userId optional. Die Felder mit Produktinformationen (priceInfo und availability) sind optional.

Hinweis:

  • Das Feld experimentIds ist nur erforderlich, wenn Sie einen A/B-Test machen.
  • Das Feld attributionToken ist nur für Vertex AI Search for Commerce erforderlich. Es wird verwendet, um die Leistung zu messen. Attributionstokens sollten nicht an predict, search und detail-page-view oder an Klickereignisse gesendet werden.
  • Achten Sie darauf, dass für alle Ereignisse eine einzige Währung verwendet wird, insbesondere wenn Sie mit derGoogle Cloud -Konsole Umsatzmesswerte abrufen möchten. Die Vertex AI Search for Commerce API unterstützt nicht die Verwendung mehrerer Währungen pro Katalog.

Weitere Informationen zum Nutzerereignisobjekt finden Sie in der API-Referenzdokumentation für UserEvent.

In den Einkaufswagen

Im Folgenden sehen Sie das Nutzerereignisformat add-to-cart.

In den folgenden Beispielen werden nur die erforderlichen Felder des Nutzerereignisformats add-to-cart gezeigt.

Beim Importieren von Ereignissen müssen Sie den Zeitstempel im Feld eventTime in dem von RFC 3339 angegebenen Format festlegen.

Je nach verwendeter API-Methode oder wenn zusätzliche Felder verwendet werden, sind möglicherweise weitere Felder erforderlich. Wenn das Nutzerereignis beispielsweise mit einer Entität verknüpft ist, geben Sie das Feld entity an. Ausführliche Informationen zu den einzelnen Feldern und dazu, wann sie erforderlich sind, finden Sie in der API-Referenzdokumentation zu UserEvent.

JavaScript Pixel

var user_event = {
  "eventType": "add-to-cart",
  "visitorId": "visitor-id",
  "productDetails": [{
    "product": {
      "id": "product-id"
    },
    "quantity": { "value": product-quantity }
  }]
};

Tag Manager

<script>
    dataLayer = dataLayer || [];
    dataLayer.push({
      'cloud_retail': {
        'eventType': 'add-to-cart',
        'visitorId': 'visitor-id',
        // You can also define the visitor ID
        // directly on the Tag Manager tag.
        'productDetails': [{
          'product': {
            'id': 'product-id'
          },
          'quantity': product-quantity
        }]
      }
    });
</script>

BigQuery

Dies ist das vollständige JSON-Schema für diesen Nutzerereignistyp. Geben Sie dieses Schema an, wenn Sie Tabellen für diesen Nutzerereignistyp in BigQuery erstellen.

Die Modi für Pflichtfelder werden auf REQUIRED oder REPEATED gesetzt. Die Modi für optionale Felder sind auf NULLABLE gesetzt.

Beachten Sie, dass eventTime zum Importieren von Ereignissen mit BigQuery erforderlich ist. eventTime ist ein String mit einem Zeitstempelformat.

[
 {
   "name": "eventType",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "visitorId",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "eventTime",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "experimentIds",
   "type": "STRING",
   "mode": "REPEATED"
 },
 {
   "name": "attributionToken",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "productDetails",
   "type": "RECORD",
   "mode": "REPEATED",
   "fields": [
     {
       "name": "product",
       "type": "RECORD",
       "mode": "REQUIRED",
       "fields": [
         {
           "name": "id",
           "type": "STRING",
           "mode": "REQUIRED"
         }
       ]
     },
     {
       "name": "quantity",
       "type": "INTEGER",
       "mode": "REQUIRED"
     }
   ]
 },
 {
   "name": "cartId",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "userInfo",
   "type": "RECORD",
   "mode": "NULLABLE",
   "fields": [
     {
       "name": "userId",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "ipAddress",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "userAgent",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "directUserRequest",
       "type": "BOOLEAN",
       "mode": "NULLABLE"
     }
   ]
 },
 {
   "name": "uri",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "referrerUri",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "pageViewId",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "entity",
   "type": "STRING",
   "mode": "NULLABLE"
 }
]

Aufruf von Seite „Kategorie“

Im Folgenden sehen Sie das Nutzerereignisformat category-page-view.

In den folgenden Beispielen werden nur die erforderlichen Felder des Nutzerereignisformats category-page-view gezeigt.

Obwohl normalerweise nur eine Kategorie mit einer Seite verknüpft ist, unterstützt das Feld pageCategories auch eine Kategoriehierarchie, die Sie als Liste bereitstellen können.

Beim Importieren von Ereignissen müssen Sie den Zeitstempel im Feld eventTime in dem von RFC 3339 angegebenen Format festlegen.

Je nach verwendeter API-Methode oder wenn zusätzliche Felder verwendet werden, sind möglicherweise weitere Felder erforderlich. Wenn das Nutzerereignis beispielsweise mit einer Entität verknüpft ist, geben Sie das Feld entity an. Ausführliche Informationen zu den einzelnen Feldern und dazu, wann sie erforderlich sind, finden Sie in der API-Referenzdokumentation zu UserEvent.

JavaScript Pixel

var user_event = {
  "eventType": "category-page-view",
  "visitorId": "visitor-id",
  "pageCategories": ["category1 > category2"]
};

Tag Manager

<script>
    dataLayer = dataLayer || [];
    dataLayer.push({
      'cloud_retail': {
        'eventType': 'category-page-view',
        'visitorId": 'visitor-id',
        // You can also define the user ID and visitor ID
        // directly on the Tag Manager tag.
        'pageCategories': ['category1 > category2']
      }
    });
</script>

BigQuery

Dies ist das vollständige JSON-Schema für diesen Nutzerereignistyp. Geben Sie dieses Schema an, wenn Sie Tabellen für diesen Nutzerereignistyp in BigQuery erstellen.

Die Modi für Pflichtfelder werden auf REQUIRED oder REPEATED gesetzt. Die Modi für optionale Felder sind auf NULLABLE gesetzt.

Beachten Sie, dass eventTime zum Importieren von Ereignissen mit BigQuery erforderlich ist. eventTime ist ein String mit einem Zeitstempelformat.

[
 {
   "name": "eventType",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "visitorId",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "eventTime",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "experimentIds",
   "type": "STRING",
   "mode": "REPEATED"
 },
 {
   "name": "attributionToken",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "productDetails",
   "type": "RECORD",
   "mode": "REPEATED",
   "fields": [
     {
       "name": "product",
       "type": "RECORD",
       "mode": "REQUIRED",
       "fields": [
         {
           "name": "id",
           "type": "STRING",
           "mode": "REQUIRED"
         }
       ]
     }
   ]
 },
 {
   "name": "pageCategories",
   "type": "STRING",
   "mode": "REPEATED"
 },
 {
   "name": "userInfo",
   "type": "RECORD",
   "mode": "NULLABLE",
   "fields": [
     {
       "name": "userId",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "ipAddress",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "userAgent",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "directUserRequest",
       "type": "BOOLEAN",
       "mode": "NULLABLE"
     }
   ]
 },
 {
   "name": "uri",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "referrerUri",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "pageViewId",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "entity",
   "type": "STRING",
   "mode": "NULLABLE"
 }
]

Detailseitenansicht

Im Folgenden sehen Sie das Datenformat des Nutzerereignisses detail-page-view.

In den folgenden Beispielen werden nur die erforderlichen Felder des Nutzerereignisformats detail-page-view gezeigt.

In den meisten Fällen enthält productDetails Details zum zugehörigen Produkt, es sei denn, mehrere Artikel werden gemeinsam verkauft.

Beim Importieren von Ereignissen müssen Sie den Zeitstempel im Feld eventTime in dem von RFC 3339 angegebenen Format festlegen.

Je nach verwendeter API-Methode oder wenn zusätzliche Felder verwendet werden, sind möglicherweise weitere Felder erforderlich. Wenn das Nutzerereignis beispielsweise mit einer Entität verknüpft ist, geben Sie das Feld entity an. Ausführliche Informationen zu den einzelnen Feldern und dazu, wann sie erforderlich sind, finden Sie in der API-Referenzdokumentation zu UserEvent.

JavaScript Pixel

var user_event = {
  "eventType": "detail-page-view",
  "visitorId": "visitor-id",
  "productDetails": [{
    "product": {
      "id": "product-id"
    }
  }]
};

Tag Manager

<script>
    dataLayer = dataLayer || [];
    dataLayer.push({
      'cloud_retail': {
        'eventType': 'detail-page-view',
        'visitorId': 'visitor-id',
        // You can also define the visitor ID directly on
        // the Tag Manager tag.
        'productDetails': [{
          'product': {
            'id': 'product-id'
          }
        }]
      }
    });
</script>

BigQuery

Dies ist das vollständige JSON-Schema für diesen Nutzerereignistyp. Geben Sie dieses Schema an, wenn Sie Tabellen für diesen Nutzerereignistyp in BigQuery erstellen.

Die Modi für Pflichtfelder werden auf REQUIRED oder REPEATED gesetzt. Die Modi für optionale Felder sind auf NULLABLE gesetzt.

Beachten Sie, dass eventTime zum Importieren von Ereignissen mit BigQuery erforderlich ist. eventTime ist ein String mit einem Zeitstempelformat.

[
 {
   "name": "eventType",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "visitorId",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "eventTime",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "experimentIds",
   "type": "STRING",
   "mode": "REPEATED"
 },
 {
   "name": "attributionToken",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "productDetails",
   "type": "RECORD",
   "mode": "REPEATED",
   "fields": [
     {
       "name": "product",
       "type": "RECORD",
       "mode": "REQUIRED",
       "fields": [
         {
           "name": "id",
           "type": "STRING",
           "mode": "REQUIRED"
         }
       ]
     }
   ]
 },
 {
   "name": "userInfo",
   "type": "RECORD",
   "mode": "NULLABLE",
   "fields": [
     {
       "name": "userId",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "ipAddress",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "userAgent",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "directUserRequest",
       "type": "BOOLEAN",
       "mode": "NULLABLE"
     }
   ]
 },
 {
   "name": "uri",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "referrerUri",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "pageViewId",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "entity",
   "type": "STRING",
   "mode": "NULLABLE"
 }
]

Startseitenansicht

Im Folgenden sehen Sie das Nutzerereignisformat home-page-view.

In den folgenden Beispielen werden nur die erforderlichen Felder des Nutzerereignisformats home-page-view gezeigt.

Beim Importieren von Ereignissen müssen Sie den Zeitstempel im Feld eventTime in dem von RFC 3339 angegebenen Format festlegen.

Je nach verwendeter API-Methode oder wenn zusätzliche Felder verwendet werden, sind möglicherweise weitere Felder erforderlich. Wenn das Nutzerereignis beispielsweise mit einer Entität verknüpft ist, geben Sie das Feld entity an. Ausführliche Informationen zu den einzelnen Feldern und dazu, wann sie erforderlich sind, finden Sie in der API-Referenzdokumentation zu UserEvent.

JavaScript Pixel

var user_event = {
  "eventType": "home-page-view",
  "visitorId": "visitor-id",
};

Tag Manager

<script>
    dataLayer = dataLayer || [];
    dataLayer.push({
      'cloud_retail': {
        'eventType': 'home-page-view',
        'visitorId': 'visitor-id'
        // You can also define the visitor ID
        // directly on the Tag Manager tag.
      }
    });
</script>

BigQuery

Dies ist das vollständige JSON-Schema für diesen Nutzerereignistyp. Geben Sie dieses Schema an, wenn Sie Tabellen für diesen Nutzerereignistyp in BigQuery erstellen.

Die Modi für Pflichtfelder werden auf REQUIRED oder REPEATED gesetzt. Die Modi für optionale Felder sind auf NULLABLE gesetzt.

Beachten Sie, dass eventTime zum Importieren von Ereignissen mit BigQuery erforderlich ist. eventTime ist ein String mit einem Zeitstempelformat.

[
 {
   "name": "eventType",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "visitorId",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "eventTime",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "experimentIds",
   "type": "STRING",
   "mode": "REPEATED"
 },
 {
   "name": "attributionToken",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "productDetails",
   "type": "RECORD",
   "mode": "REPEATED",
   "fields": [
     {
       "name": "product",
       "type": "RECORD",
       "mode": "REQUIRED",
       "fields": [
         {
           "name": "id",
           "type": "STRING",
           "mode": "REQUIRED"
         }
       ]
     },
     {
       "name": "quantity",
       "type": "INTEGER",
       "mode": "REQUIRED"
     }
   ]
 },
 {
   "name": "userInfo",
   "type": "RECORD",
   "mode": "NULLABLE",
   "fields": [
     {
       "name": "userId",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "ipAddress",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "userAgent",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "directUserRequest",
       "type": "BOOLEAN",
       "mode": "NULLABLE"
     }
   ]
 },
 {
   "name": "uri",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "referrerUri",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "pageViewId",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "entity",
   "type": "STRING",
   "mode": "NULLABLE"
 }
]

Kauf abgeschlossen

Im Folgenden sehen Sie das Datenformat des Nutzerereignisses purchase-complete.

In den folgenden Beispielen werden nur die erforderlichen Felder des Nutzerereignisformats purchase-complete gezeigt.

Beim Importieren von Ereignissen müssen Sie den Zeitstempel im Feld eventTime in dem von RFC 3339 angegebenen Format festlegen.

Je nach verwendeter API-Methode oder wenn zusätzliche Felder verwendet werden, sind möglicherweise weitere Felder erforderlich. Wenn das Nutzerereignis beispielsweise mit einer Entität verknüpft ist, geben Sie das Feld entity an. Ausführliche Informationen zu den einzelnen Feldern und dazu, wann sie erforderlich sind, finden Sie in der API-Referenzdokumentation zu UserEvent.

JavaScript Pixel

var user_event = {
  "eventType": "purchase-complete",
  "visitorId": "visitor-id",
  "productDetails": [{
    "product": {
      "id": "product-id"
    },
    "quantity": product-quantity
  }],
  "purchaseTransaction": {
    "revenue": revenue,
    "currencyCode": "currency-code"
  }
};

Tag Manager

<script>
    dataLayer = dataLayer || [];
    dataLayer.push({
      'cloud_retail': {
        'eventType': 'purchase-complete',
        'visitorId': 'visitor-id',
        // You can also define the visitor ID directly on
        // the Tag Manager tag.
        'productDetails': [{
          'product': {
            'id': 'product-id'
          },
          'quantity': product-quantity
        }],
        'purchaseTransaction': {
          'revenue': revenue,
          'currencyCode': 'currency-code'
        }
      }
    });
</script>

BigQuery

Dies ist das vollständige JSON-Schema für diesen Nutzerereignistyp. Geben Sie dieses Schema an, wenn Sie Tabellen für diesen Nutzerereignistyp in BigQuery erstellen.

Die Modi für Pflichtfelder werden auf REQUIRED oder REPEATED gesetzt. Die Modi für optionale Felder sind auf NULLABLE gesetzt.

Beachten Sie, dass eventTime zum Importieren von Ereignissen mit BigQuery erforderlich ist. eventTime ist ein String mit einem Zeitstempelformat.

[
 {
   "name": "eventType",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "visitorId",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "eventTime",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "experimentIds",
   "type": "STRING",
   "mode": "REPEATED"
 },
 {
   "name": "attributionToken",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "productDetails",
   "type": "RECORD",
   "mode": "REPEATED",
   "fields": [
     {
       "name": "product",
       "type": "RECORD",
       "mode": "REQUIRED",
       "fields": [
         {
           "name": "id",
           "type": "STRING",
           "mode": "REQUIRED"
         },
         {
           "name": "priceInfo",
           "type": "RECORD",
           "mode": "NULLABLE",
           "fields": [
             {
               "name": "price",
               "type": "FLOAT",
               "mode": "REQUIRED"
             },
             {
               "name": "originalPrice",
               "type": "FLOAT",
               "mode": "NULLABLE"
             },
             {
               "name": "currencyCode",
               "type": "STRING",
               "mode": "REQUIRED"
             },
             {
               "name": "cost",
               "type": "FLOAT",
               "mode": "NULLABLE"
             }
           ]
         }
       ]
     },
     {
       "name": "quantity",
       "type": "INTEGER",
       "mode": "REQUIRED"
     }
   ]
 },
 {
   "name": "cartId",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "purchaseTransaction",
   "type": "RECORD",
   "mode": "REQUIRED",
   "fields": [
     {
       "name": "id",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "revenue",
       "type": "FLOAT",
       "mode": "REQUIRED"
     },
     {
       "name": "tax",
       "type": "FLOAT",
       "mode": "NULLABLE"
     },
     {
       "name": "cost",
       "type": "FLOAT",
       "mode": "NULLABLE"
     },
     {
       "name": "currencyCode",
       "type": "STRING",
       "mode": "REQUIRED"
     }
   ]
 },
 {
   "name": "userInfo",
   "type": "RECORD",
   "mode": "NULLABLE",
   "fields": [
     {
       "name": "userId",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "ipAddress",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "userAgent",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "directUserRequest",
       "type": "BOOLEAN",
       "mode": "NULLABLE"
     }
   ]
 },
 {
   "name": "uri",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "referrerUri",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "pageViewId",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "entity",
   "type": "STRING",
   "mode": "NULLABLE"
 }
]

Im Folgenden sehen Sie das Nutzerereignisformat search.

Mindestens erforderliches search-Objekt

Das sind die mindestens erforderlichen Felder, damit Vertex AI Search for Commerce eine Liste mit Suchergebnissen zurückgeben kann:

  • searchQuery wird aus dem Parameter search_term oder aus view_search_results-Ereignissen gelesen.
  • productDetails wird aus dem Parameter items des Ereignisses view_item_list gelesen. Sie sollte die Liste der Produkt-IDs enthalten, die dem Endnutzer auf der Suchergebnisseite angezeigt werden.
  • userEvents erfasst alle Metadaten, die für die Retail API erforderlich sind, um zu erfahren, wie Endnutzer mit der Website des Kunden interagieren.

In den folgenden Beispielen werden nur die erforderlichen Felder des Nutzerereignisformats search gezeigt.

Beim Importieren von Ereignissen müssen Sie den Zeitstempel im Feld eventTime in dem von RFC 3339 angegebenen Format festlegen.

Je nach verwendeter API-Methode oder wenn zusätzliche Felder verwendet werden, sind möglicherweise weitere Felder erforderlich. Wenn das Nutzerereignis beispielsweise mit einer Entität verknüpft ist, geben Sie das Feld entity an. Ausführliche Informationen zu den einzelnen Feldern und dazu, wann sie erforderlich sind, finden Sie in der API-Referenzdokumentation zu UserEvent.

JavaScript Pixel

var user_event = {
  "eventType": "search",
  "visitorId": "visitor-id",
  "searchQuery": "search-query",
  "pageCategories": ["category1 > category2"],
  "productDetails": [
    {
      "product": {
        "id": "product-id1"
      }
    }, {
      "product": {
        "id": "product-id2"
      }
    }
  ]
};

Tag Manager

<script>
    dataLayer = dataLayer || [];
    dataLayer.push({
      'cloud_retail': {
        'eventType': 'search',
        'visitorId': 'visitor-id',
        // You can also define the visitor ID
        // directly on the Tag Manager tag.
        'searchQuery': 'search-query',
        'pageCategories': ['category1 > category2'],
        'productDetails': [
          {
            'product': {
              'id': 'product-id1'
            }
          }, {
            'product': {
              'id': 'product-id2'
            }
          }
        ]
      }
    });
</script>

BigQuery

Dies ist das vollständige JSON-Schema für diesen Nutzerereignistyp. Geben Sie dieses Schema an, wenn Sie Tabellen für diesen Nutzerereignistyp in BigQuery erstellen.

Die Modi für Pflichtfelder werden auf REQUIRED oder REPEATED gesetzt. Die Modi für optionale Felder sind auf NULLABLE gesetzt.

Beachten Sie, dass eventTime zum Importieren von Ereignissen mit BigQuery erforderlich ist. eventTime ist ein String mit einem Zeitstempelformat.

[
 {
   "name": "eventType",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "visitorId",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "eventTime",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "productDetails",
   "type": "RECORD",
   "mode": "REPEATED",
   "fields": [
     {
       "name": "product",
       "type": "RECORD",
       "mode": "REQUIRED",
       "fields": [
         {
           "name": "id",
           "type": "STRING",
           "mode": "REQUIRED"
         }
       ]
     }
   ]
 },
 {
   "name": "searchQuery",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "pageCategories",
   "type": "STRING",
   "mode": "REPEATED"
 },
 {
   "name": "entity",
   "type": "STRING",
   "mode": "NULLABLE"
 }
]

Automatische Vervollständigung

Dieses Feld ist nur für Suchereignisse erforderlich, wenn Sie die automatische Vervollständigung verwenden möchten. Für die Suche ist sie nicht erforderlich.

In den folgenden Beispielen wird das Feld completionDetail gezeigt, wenn ein Nutzer „sh“ eingibt und in der Vorschlagsliste auf den zweiten Vorschlag „Schuhe“ klickt, um ein Suchereignis auszulösen. Wenn der Nutzer keine Vorschläge auswählt, bleibt das Feld completionDetail leer.

eventType muss "search" lauten.

completionAttributionToken ist der attributionToken aus der Antwort completeQuery.

selectedSuggestion sollte mit searchQuery übereinstimmen.

JavaScript Pixel

var user_event = {
  "eventType": "search",
  "visitorId": "visitor-id",
  "searchQuery": "search-query",
  "pageCategories": ["category1 > category2"],
  "productDetails": [
    {
      "product": {
        "id": "product-id1"
      }
    }, {
      "product": {
        "id": "product-id2"
      }
    }
  ]
  "completionDetail": {
    "completionAttributionToken": "completion_token",
    "selectedSuggestion": "search-query",
    "selectedPosition": completion_position
  }
};

Tag Manager

<script>
    dataLayer = dataLayer || [];
    dataLayer.push({
      'cloud_retail': {
        'eventType': 'search',
        'visitorId': 'visitor-id',
        // You can also define the visitor ID
        // directly on the Tag Manager tag.
        'searchQuery': 'search-query',
        'pageCategories': ['category1 > category2'],
        'productDetails': [
          {
            'product': {
              'id': 'product-id1'
            }
          }, {
            'product': {
              'id': 'product-id2'
            }
          }
        ]
        "completionDetail": {
          "completionAttributionToken": 'completion_token',
          "selectedSuggestion": 'search-query',
          "selectedPosition": completion_position
        }
      }
    });
</script>

BigQuery

Dies ist das vollständige JSON-Schema für diesen Nutzerereignistyp. Geben Sie dieses Schema an, wenn Sie Tabellen für diesen Nutzerereignistyp in BigQuery erstellen.

Die Modi für Pflichtfelder werden auf REQUIRED oder REPEATED gesetzt. Die Modi für optionale Felder sind auf NULLABLE gesetzt.

Beachten Sie, dass eventTime zum Importieren von Ereignissen mit BigQuery erforderlich ist. eventTime ist ein String mit einem Zeitstempelformat.

[
 {
   "name": "eventType",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "visitorId",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "eventTime",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "productDetails",
   "type": "RECORD",
   "mode": "REPEATED",
   "fields": [
     {
       "name": "product",
       "type": "RECORD",
       "mode": "REQUIRED",
       "fields": [
         {
           "name": "id",
           "type": "STRING",
           "mode": "REQUIRED"
         }
       ]
     }
   ]
 },
 {
   "name": "searchQuery",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "pageCategories",
   "type": "STRING",
   "mode": "REPEATED"
 },
 {
   "name": "completionDetail",
   "type": "RECORD"
   "mode": "NULLABLE"
   "fields": [
     {
       "name": "completionAttributionToken",
       "type": "STRING",
       "mode": "REQUIRED"
     },
     {
       "name": "selectedSuggestion",
       "type": "STRING",
       "mode": "REQUIRED"
     },
     {
       "name": "selectedPosition",
       "type": "INTEGER",
       "mode": "REQUIRED"
     }
    ]
 }
]

Einkaufswagen-Seitenansicht

Im Folgenden sehen Sie das Datenformat des Nutzerereignisses shopping-cart-page-view.

In den folgenden Beispielen werden nur die erforderlichen Felder des Nutzerereignisformats shopping-cart-page-view gezeigt.

Geben Sie die Objekte productDetails und userEvents an, sofern der Einkaufswagen nicht leer ist.

Beim Importieren von Ereignissen müssen Sie den Zeitstempel im Feld eventTime in dem von RFC 3339 angegebenen Format festlegen.

Je nach verwendeter API-Methode oder wenn zusätzliche Felder verwendet werden, sind möglicherweise weitere Felder erforderlich. Wenn das Nutzerereignis beispielsweise mit einer Entität verknüpft ist, geben Sie das Feld entity an. Ausführliche Informationen zu den einzelnen Feldern und dazu, wann sie erforderlich sind, finden Sie in der API-Referenzdokumentation zu UserEvent.

JavaScript Pixel

var user_event = {
  "eventType": "shopping-cart-page-view"",
  "visitorId": "VISITOR-ID"
  "cartId": "CART-ID",
  "productDetails": [{
      "product": {
        "id": "PRODUCT-ID"
      },
      "quantity": PRODUCT-QUANTITY
    }]
};

Ersetzen Sie PRODUCT-ID, PRODUCT-QUANTITY, VISOTOR-ID und CART-ID durch Ihre Produkt-ID, Produktmenge, Sitzungs-ID und Warenkorb-ID.

Tag Manager

<script>
    dataLayer = dataLayer || [];
    dataLayer.push({
      'cloud_retail': {
        'eventType': 'shopping-cart-page-view',
        'visitorId': 'VISITOR-ID'
        // You can also define the visitor ID
        // directly on the Tag Manager tag.
        'cartId': 'CART-ID',
        'productDetails': [{
            'product': {
              'id': 'PRODUCT-ID'
            },
            'quantity': PRODUCT-QUANTITY
          }]
      }
    });
</script>

Ersetzen Sie PRODUCT-ID, PRODUCT-QUANTITY, VISOTOR-ID und CART-ID durch Ihre Produkt-ID, Produktmenge, Sitzungs-ID und Warenkorb-ID.

BigQuery

Dies ist das vollständige JSON-Schema für diesen Nutzerereignistyp. Geben Sie dieses Schema an, wenn Sie Tabellen für diesen Nutzerereignistyp in BigQuery erstellen.

Die Modi für Pflichtfelder werden auf REQUIRED oder REPEATED gesetzt. Die Modi für optionale Felder sind auf NULLABLE gesetzt.

Beachten Sie, dass eventTime zum Importieren von Ereignissen mit BigQuery erforderlich ist. eventTime ist ein String mit einem Zeitstempelformat.

[
 {
   "name": "eventType",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "visitorId",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "eventTime",
   "type": "STRING",
   "mode": "REQUIRED"
 },
 {
   "name": "experimentIds",
   "type": "STRING",
   "mode": "REPEATED"
 },
 {
   "name": "attributionToken",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "productDetails",
   "type": "RECORD",
   "mode": "REPEATED",
   "fields": [
     {
       "name": "product",
       "type": "RECORD",
       "mode": "REQUIRED",
       "fields": [
         {
           "name": "id",
           "type": "STRING",
           "mode": "REQUIRED"
         }
       ]
     },
     {
       "name": "quantity",
       "type": "INTEGER",
       "mode": "REQUIRED"
     }
   ]
 },
 {
   "name": "cartId",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "userInfo",
   "type": "RECORD",
   "mode": "NULLABLE",
   "fields": [
     {
       "name": "userId",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "ipAddress",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "userAgent",
       "type": "STRING",
       "mode": "NULLABLE"
     },
     {
       "name": "directUserRequest",
       "type": "BOOLEAN",
       "mode": "NULLABLE"
     }
   ]
 },
 {
   "name": "uri",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "referrerUri",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "pageViewId",
   "type": "STRING",
   "mode": "NULLABLE"
 },
 {
   "name": "entity",
   "type": "STRING",
   "mode": "NULLABLE"
 }
]

Google Analytics 4-Felder für Nutzerereignisse

In der folgenden Tabelle sehen Sie, wie Google Analytics 4-Felder für Nutzerereignisse Vertex AI Search for Commerce-Feldern zugeordnet werden.

Bevor Sie Nutzerereignisse aus Google Analytics 4 importieren oder aufzeichnen, müssen Sie dafür sorgen, dass Ihre Google Analytics 4-Nutzerereignisse die folgenden Felder verwenden, damit Vertex AI Search for Commerce Ihre Daten korrekt integrieren kann.

Google Analytics 4 Einzelhandel
ecommerce.purchase_revenue purchaseTransaction.revenue
event_name eventType
event_timestamp eventTime
items.item_id productDetails.product.id
items.price productDetails.product.priceInfo.price
items.quantity productDetails.quantity
Schlüssel:
event_params.key auf "currency"

festgelegt Wert:
event_params.value.string_value
productDetails.product.priceInfo.currencyCode
Schlüssel:
event_params.key auf "currency"

festgelegt Wert:
event_params.value.string_value
purchaseTransaction.currencyCode
Schlüssel:
event_params.key auf "search_term"

festgelegt Wert:
event_params.value.string_value
searchQuery
user_id userInfo.userId
user_pseudo_id visitorId

Nächste Schritte