Optional. Extra user event features to include in the recommendation
model.
For product recommendation, an example of extra user information is
traffic_channel, i.e. how user arrives at the site. Users can arrive
at the site by coming to the site directly, or coming through Google
search, and etc.
public RepeatedField<string> ExperimentIds { get; }
Optional. 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 Recommendation
Engine system, using different recommendation models).
Optional. 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 pageViewId property should be kept the same for all these events so
that they can be grouped together properly. This pageViewId will be
automatically generated if using the JavaScript pixel.
Optional. Recommendation token included in the recommendation prediction
response.
This field enables accurate attribution of recommendation model
performance.
This token enables us to accurately attribute page view or purchase back to
the event and the particular predict response containing this
clicked/purchased item. If user clicks on product K in the recommendation
results, pass the PredictResponse.recommendationToken property as a url
parameter to product K's page. When recording events on product K's page,
log the PredictResponse.recommendation_token to this field.
Optional, but highly encouraged for user events that are the result of a
recommendation prediction query.
Optional. Complete url (window.location.href) of the user's current page.
When using the JavaScript pixel, this value is filled in automatically.
Maximum length 5KB.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThis document provides reference and code samples for the \u003ccode\u003eEventDetail\u003c/code\u003e class within the Recommendations AI v1beta1 API, a class that details user events shared by all recommendation types.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eEventDetail\u003c/code\u003e class inherits from \u003ccode\u003eobject\u003c/code\u003e and implements interfaces such as \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and \u003ccode\u003eIBufferMessage\u003c/code\u003e, offering various functionalities.\u003c/p\u003e\n"],["\u003cp\u003eConstructors for \u003ccode\u003eEventDetail\u003c/code\u003e allow for creating an empty instance or copying from an existing \u003ccode\u003eEventDetail\u003c/code\u003e object.\u003c/p\u003e\n"],["\u003cp\u003eThe class includes several properties such as \u003ccode\u003eEventAttributes\u003c/code\u003e, \u003ccode\u003eExperimentIds\u003c/code\u003e, \u003ccode\u003ePageViewId\u003c/code\u003e, \u003ccode\u003eRecommendationToken\u003c/code\u003e, \u003ccode\u003eReferrerUri\u003c/code\u003e, and \u003ccode\u003eUri\u003c/code\u003e, which provide details about user event data and their interactions.\u003c/p\u003e\n"],["\u003cp\u003eIt is designed for product recommendation models, and tracks user interactions such as how they arrive at the site, their navigation, and experiment groups.\u003c/p\u003e\n"]]],[],null,["# Recommendations AI v1beta1 API - Class EventDetail (2.0.0-beta06)\n\nVersion latestkeyboard_arrow_down\n\n- [2.0.0-beta06 (latest)](/dotnet/docs/reference/Google.Cloud.RecommendationEngine.V1Beta1/latest/Google.Cloud.RecommendationEngine.V1Beta1.EventDetail)\n- [2.0.0-beta05](/dotnet/docs/reference/Google.Cloud.RecommendationEngine.V1Beta1/2.0.0-beta05/Google.Cloud.RecommendationEngine.V1Beta1.EventDetail)\n- [1.0.0-beta03](/dotnet/docs/reference/Google.Cloud.RecommendationEngine.V1Beta1/1.0.0-beta03/Google.Cloud.RecommendationEngine.V1Beta1.EventDetail) \n\n public sealed class EventDetail : IMessage\u003cEventDetail\u003e, IEquatable\u003cEventDetail\u003e, IDeepCloneable\u003cEventDetail\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Recommendations AI v1beta1 API class EventDetail.\n\nUser event details shared by all recommendation types. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e EventDetail \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[EventDetail](/dotnet/docs/reference/Google.Cloud.RecommendationEngine.V1Beta1/latest/Google.Cloud.RecommendationEngine.V1Beta1.EventDetail), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[EventDetail](/dotnet/docs/reference/Google.Cloud.RecommendationEngine.V1Beta1/latest/Google.Cloud.RecommendationEngine.V1Beta1.EventDetail), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[EventDetail](/dotnet/docs/reference/Google.Cloud.RecommendationEngine.V1Beta1/latest/Google.Cloud.RecommendationEngine.V1Beta1.EventDetail), [IBufferMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage.html), [IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage.html) \n\nInherited Members\n-----------------\n\n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Google.Cloud.RecommendationEngine.V1Beta1](/dotnet/docs/reference/Google.Cloud.RecommendationEngine.V1Beta1/latest/Google.Cloud.RecommendationEngine.V1Beta1)\n\nAssembly\n--------\n\nGoogle.Cloud.RecommendationEngine.V1Beta1.dll\n\nConstructors\n------------\n\n### EventDetail()\n\n public EventDetail()\n\n### EventDetail(EventDetail)\n\n public EventDetail(EventDetail other)\n\nProperties\n----------\n\n### EventAttributes\n\n public FeatureMap EventAttributes { get; set; }\n\nOptional. Extra user event features to include in the recommendation\nmodel.\n\nFor product recommendation, an example of extra user information is\ntraffic_channel, i.e. how user arrives at the site. Users can arrive\nat the site by coming to the site directly, or coming through Google\nsearch, and etc.\n\n### ExperimentIds\n\n public RepeatedField\u003cstring\u003e ExperimentIds { get; }\n\nOptional. A list of identifiers for the independent experiment groups\nthis user event belongs to. This is used to distinguish between user events\nassociated with different experiment setups (e.g. using Recommendation\nEngine system, using different recommendation models).\n\n### PageViewId\n\n public string PageViewId { get; set; }\n\nOptional. A unique id of a web page view.\nThis should be kept the same for all user events triggered from the same\npageview. For example, an item detail page view could trigger multiple\nevents as the user is browsing the page.\nThe `pageViewId` property should be kept the same for all these events so\nthat they can be grouped together properly. This `pageViewId` will be\nautomatically generated if using the JavaScript pixel.\n\n### RecommendationToken\n\n public string RecommendationToken { get; set; }\n\nOptional. Recommendation token included in the recommendation prediction\nresponse.\n\nThis field enables accurate attribution of recommendation model\nperformance.\n\nThis token enables us to accurately attribute page view or purchase back to\nthe event and the particular predict response containing this\nclicked/purchased item. If user clicks on product K in the recommendation\nresults, pass the `PredictResponse.recommendationToken` property as a url\nparameter to product K's page. When recording events on product K's page,\nlog the PredictResponse.recommendation_token to this field.\n\nOptional, but highly encouraged for user events that are the result of a\nrecommendation prediction query.\n\n### ReferrerUri\n\n public string ReferrerUri { get; set; }\n\nOptional. The referrer url of the current page. When using\nthe JavaScript pixel, this value is filled in automatically.\n\n### Uri\n\n public string Uri { get; set; }\n\nOptional. Complete url (window.location.href) of the user's current page.\nWhen using the JavaScript pixel, this value is filled in automatically.\nMaximum length 5KB."]]