#[non_exhaustive]pub struct UserInfo {
pub user_id: String,
pub ip_address: String,
pub user_agent: String,
pub direct_user_request: bool,
/* private fields */
}Expand description
Information of an end user.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.user_id: StringHighly 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.
ip_address: StringThe 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:
- setting SearchRequest.user_info.
- using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
user_agent: StringUser agent as included in the HTTP header. 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 UserEventService.CollectUserEvent or if direct_user_request is set.
direct_user_request: boolTrue if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. 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).
This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent.
Implementations§
Source§impl UserInfo
impl UserInfo
pub fn new() -> Self
Sourcepub fn set_user_id<T: Into<String>>(self, v: T) -> Self
pub fn set_user_id<T: Into<String>>(self, v: T) -> Self
Sourcepub fn set_ip_address<T: Into<String>>(self, v: T) -> Self
pub fn set_ip_address<T: Into<String>>(self, v: T) -> Self
Sourcepub fn set_user_agent<T: Into<String>>(self, v: T) -> Self
pub fn set_user_agent<T: Into<String>>(self, v: T) -> Self
Sourcepub fn set_direct_user_request<T: Into<bool>>(self, v: T) -> Self
pub fn set_direct_user_request<T: Into<bool>>(self, v: T) -> Self
Sets the value of direct_user_request.
§Example
let x = UserInfo::new().set_direct_user_request(true);