Optional. Indicates if the request is made directly from the end user
in which case the user_agent and ip_address fields can be populated
from the HTTP request. This should not be set when using the javascript
pixel. This flag should be set only if the API request is made directly
from the end user such as a mobile app (and not if a gateway or a server is
processing and pushing the user events).
Optional. IP address of the user. This could be either IPv4 (e.g. 104.133.9.80) or
IPv6 (e.g. 2001:0db8:85a3:0000:0000:8a2e:0370:7334). This should not be
set when using the javascript pixel or if direct_user_request is set.
Used to extract location information for personalization.
Required. A unique identifier for tracking visitors with a length limit of
128 bytes.
For example, this could be implemented with a 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.
Maximum length 128 bytes. Cannot be empty.
[[["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\u003eThe \u003ccode\u003eUserInfo\u003c/code\u003e class in the Recommendations AI v1beta1 API provides information about end users and can be found in the \u003ccode\u003eGoogle.Cloud.RecommendationEngine.V1Beta1\u003c/code\u003e namespace.\u003c/p\u003e\n"],["\u003cp\u003eThis class, \u003ccode\u003eUserInfo\u003c/code\u003e, is used to capture details like IP address, user agent, and unique identifiers for both logged-in users and visitors, which are crucial for user tracking and personalization.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eDirectUserRequest\u003c/code\u003e property indicates if the API call is directly from the end user, influencing whether fields like \u003ccode\u003euser_agent\u003c/code\u003e and \u003ccode\u003eip_address\u003c/code\u003e should be populated.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eUserInfo\u003c/code\u003e class implements several interfaces, including \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, and \u003ccode\u003eIDeepCloneable\u003c/code\u003e, indicating its capabilities for message handling, equality comparison, and deep cloning.\u003c/p\u003e\n"],["\u003cp\u003eThere are 2 constructors available for the \u003ccode\u003eUserInfo\u003c/code\u003e class, one of them being a copy constructor that accepts another instance of the \u003ccode\u003eUserInfo\u003c/code\u003e class.\u003c/p\u003e\n"]]],[],null,[]]