Resource: UserEvent
UserEvent captures all metadata information Retail API needs to know about how end users interact with customers' website.
JSON representation |
---|
{ "eventType": string, "visitorId": string, "sessionId": string, "eventTime": string, "experimentIds": [ string ], "attributionToken": string, "productDetails": [ { object ( |
Fields | |
---|---|
eventType |
Required. User event type. Allowed values are:
|
visitorId |
Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. Don't set the field to the same fixed ID for different users. This mixes the event history of those users together, which results in degraded model quality. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. The field should not contain PII or user-data. We recommend to use Google Analytics Client ID for this field. |
sessionId |
A unique identifier for tracking a visitor session with a length limit of 128 bytes. A session is an aggregation of an end user behavior in a time span. A general guideline to populate the sesion_id: 1. If user has no activity for 30 min, a new sessionId should be assigned. 2. The sessionId should be unique across users, suggest use uuid or add visitorId as prefix. |
eventTime |
Only required for A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: |
experimentIds[] |
A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models). |
attributionToken |
Highly recommended for user events that are the result of The value must be a valid This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass |
productDetails[] |
The main product details related to the event. This field is optional except for the following event types:
In a |
completionDetail |
The main auto-completion details related to the event. This field should be set for |
attributes |
Extra user event features to include in the recommendation model. If you provide custom attributes for ingested user events, also include them in the user events that you associate with prediction requests. Custom attribute formatting must be consistent between imported events and events provided with prediction requests. This lets the Retail API use those custom attributes when training models and serving predictions, which helps improve recommendation quality. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned:
For product recommendations, an example of extra user information is traffic_channel, which is how a user arrives at the site. Users can arrive at the site by coming to the site directly, coming through Google search, or in other ways. |
attributes.text[] |
The textual values of this custom attribute. For example, Empty string is not allowed. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of |
attributes.numbers[] |
The numerical values of this custom attribute. For example, Exactly one of |
attributes.searchable |
This field is normally ignored unless This field is ignored in a Only set if type |
attributes.indexable |
This field is normally ignored unless This field is ignored in a See |
cartId |
The ID or name of the associated shopping cart. This ID is used to associate multiple items added or present in the cart before purchase. This can only be set for |
purchaseTransaction |
A transaction represents the entire purchase transaction. Required for |
searchQuery |
The user's search query. See The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of |
filter |
The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. See The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. |
orderBy |
The order in which products are returned. See The value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This can only be set for |
offset |
An integer that specifies the current offset for pagination (the 0-indexed starting location, amongst the products deemed by the API as relevant). See If this field is negative, an INVALID_ARGUMENT is returned. This can only be set for |
pageCategories[] |
The categories associated with a category page. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: "pageCategories" : ["Sales > 2017 Black Friday Deals"]. Required for |
userInfo |
User information. |
uri |
Complete URL (window.location.href) of the user's current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters. |
referrerUri |
The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. |
pageViewId |
A unique ID of a web page view. This should be kept the same for all user events triggered from the same pageview. For example, an item detail page view could trigger multiple events as the user is browsing the page. The When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. |
entity |
The entity for customers that may run multiple different entities, domains, sites or regions, for example, |
ProductDetail
Detailed product information associated with a user event.
JSON representation |
---|
{
"product": {
object ( |
Fields | |
---|---|
product |
Required. Required field(s): Optional override field(s): If any supported optional fields are provided, we will treat them as a full override when looking up product information from the catalog. Thus, it is important to ensure that the overriding fields are accurate and complete. All other product fields are ignored and instead populated via catalog lookup after event ingestion. |
quantity |
Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for |
CompletionDetail
Detailed completion information including completion attribution token and clicked completion info.
JSON representation |
---|
{ "completionAttributionToken": string, "selectedSuggestion": string, "selectedPosition": integer } |
Fields | |
---|---|
completionAttributionToken |
Completion attribution token in |
selectedSuggestion |
End user selected |
selectedPosition |
End user selected |
PurchaseTransaction
A transaction represents the entire purchase transaction.
JSON representation |
---|
{ "id": string, "revenue": number, "tax": number, "cost": number, "currencyCode": string } |
Fields | |
---|---|
id |
The transaction ID with a length limit of 128 characters. |
revenue |
Required. Total non-zero revenue or grand total associated with the transaction. This value include shipping, tax, or other adjustments to total revenue that you want to include as part of your revenue calculations. |
tax |
All the taxes associated with the transaction. |
cost |
All the costs associated with the products. These can be manufacturing costs, shipping expenses not borne by the end user, or any other costs, such that: |
currencyCode |
Required. Currency code. Use three-character ISO-4217 code. |
UserInfo
Information of an end user.
JSON representation |
---|
{ "userId": string, "ipAddress": string, "userAgent": string, "directUserRequest": boolean } |
Fields | |
---|---|
userId |
Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. Don't set for anonymous users. Always use a hashed value for this ID. Don't set the field to the same fixed ID for different users. This mixes the event history of those users together, which results in degraded model quality. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. |
ipAddress |
The end user's IP address. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. "104.133.9.80") or an IPv6 address (e.g. "2001:0db8:85a3:0000:0000:8a2e:0370:7334"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when:
|
userAgent |
User agent as included in the HTTP header. Required for getting The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in |
directUserRequest |
True if the request is made directly from the end user, in which case the This should not be set when using the JavaScript tag in |
Methods |
|
---|---|
|
Writes a single user event from the browser. |
|
Bulk import of User events. |
|
Deletes permanently all user events specified by the filter provided. |
|
Starts a user-event rejoin operation with latest product catalog. |
|
Writes a single user event. |