class Google::Cloud::Retail::V2::UserEventService::Client
Client
for the UserEventService
service.
Service
for ingesting end user actions on the customer website.
Attributes
Get the associated client for long-running operations.
@return [::Google::Cloud::Retail::V2::UserEventService::Operations]
@private
Public Class Methods
Configure the UserEventService
Client
class.
See {::Google::Cloud::Retail::V2::UserEventService::Client::Configuration} for a description of the configuration fields.
@example
# Modify the configuration for all UserEventService clients ::Google::Cloud::Retail::V2::UserEventService::Client.configure do |config| config.timeout = 10.0 end
@yield [config] Configure the Client
client. @yieldparam config [Client::Configuration]
@return [Client::Configuration]
# File lib/google/cloud/retail/v2/user_event_service/client.rb, line 56 def self.configure @configure ||= begin namespace = ["Google", "Cloud", "Retail", "V2"] parent_config = while namespace.any? parent_name = namespace.join "::" parent_const = const_get parent_name break parent_const.configure if parent_const.respond_to? :configure namespace.pop end default_config = Client::Configuration.new parent_config default_config.timeout = 5.0 default_config.retry_policy = { initial_delay: 0.1, max_delay: 5.0, multiplier: 1.3, retry_codes: [14, 4] } default_config.rpcs.purge_user_events.timeout = 30.0 default_config.rpcs.purge_user_events.retry_policy = { initial_delay: 0.1, max_delay: 30.0, multiplier: 1.3, retry_codes: [14, 4] } default_config.rpcs.import_user_events.timeout = 300.0 default_config.rpcs.import_user_events.retry_policy = { initial_delay: 0.1, max_delay: 300.0, multiplier: 1.3, retry_codes: [14, 4] } default_config end yield @configure if block_given? @configure end
Create a new UserEventService
client object.
@example
# Create a client using the default configuration client = ::Google::Cloud::Retail::V2::UserEventService::Client.new # Create a client using a custom configuration client = ::Google::Cloud::Retail::V2::UserEventService::Client.new do |config| config.timeout = 10.0 end
@yield [config] Configure the UserEventService
client. @yieldparam config [Client::Configuration]
# File lib/google/cloud/retail/v2/user_event_service/client.rb, line 124 def initialize # These require statements are intentionally placed here to initialize # the gRPC module only when it's required. # See https://github.com/googleapis/toolkit/issues/446 require "gapic/grpc" require "google/cloud/retail/v2/user_event_service_services_pb" # Create the configuration object @config = Configuration.new Client.configure # Yield the configuration if needed yield @config if block_given? # Create credentials credentials = @config.credentials # Use self-signed JWT if the endpoint is unchanged from default, # but only if the default endpoint does not have a region prefix. enable_self_signed_jwt = @config.endpoint == Client.configure.endpoint && !@config.endpoint.split(".").first.include?("-") credentials ||= Credentials.default scope: @config.scope, enable_self_signed_jwt: enable_self_signed_jwt if credentials.is_a?(::String) || credentials.is_a?(::Hash) credentials = Credentials.new credentials, scope: @config.scope end @quota_project_id = @config.quota_project @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id @operations_client = Operations.new do |config| config.credentials = credentials config.endpoint = @config.endpoint end @user_event_service_stub = ::Gapic::ServiceStub.new( ::Google::Cloud::Retail::V2::UserEventService::Stub, credentials: credentials, endpoint: @config.endpoint, channel_args: @config.channel_args, interceptors: @config.interceptors ) end
Public Instance Methods
Writes a single user event from the browser. This uses a GET request to due to browser restriction of POST-ing to a 3rd party domain.
This method is used only by the Retail
API JavaScript pixel and Google
Tag Manager. Users should not call this method directly.
@overload collect_user_event
(request, options = nil)
Pass arguments to `collect_user_event` via a request object, either of type {::Google::Cloud::Retail::V2::CollectUserEventRequest} or an equivalent Hash. @param request [::Google::Cloud::Retail::V2::CollectUserEventRequest, ::Hash] A request object representing the call parameters. Required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash. @param options [::Gapic::CallOptions, ::Hash] Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
@overload collect_user_event
(parent: nil, user_event: nil, uri: nil, ets: nil)
Pass arguments to `collect_user_event` via keyword arguments. Note that at least one keyword argument is required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash as a request object (see above). @param parent [::String] Required. The parent catalog name, such as `projects/1234/locations/global/catalogs/default_catalog`. @param user_event [::String] Required. URL encoded UserEvent proto with a length limit of 2,000,000 characters. @param uri [::String] The URL including cgi-parameters but excluding the hash fragment with a length limit of 5,000 characters. This is often more useful than the referer URL, because many browsers only send the domain for 3rd party requests. @param ets [::Integer] The event timestamp in milliseconds. This prevents browser caching of otherwise identical get requests. The name is abbreviated to reduce the payload bytes.
@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Google::Api::HttpBody] @yieldparam operation [::GRPC::ActiveCall::Operation]
@return [::Google::Api::HttpBody]
@raise [::Google::Cloud::Error] if the RPC is aborted.
# File lib/google/cloud/retail/v2/user_event_service/client.rb, line 291 def collect_user_event request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Retail::V2::CollectUserEventRequest # Converts hash and nil to an options object options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h # Customize the options with defaults metadata = @config.rpcs.collect_user_event.metadata.to_h # Set x-goog-api-client and x-goog-user-project headers metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ lib_name: @config.lib_name, lib_version: @config.lib_version, gapic_version: ::Google::Cloud::Retail::V2::VERSION metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = { "parent" => request.parent } request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") metadata[:"x-goog-request-params"] ||= request_params_header options.apply_defaults timeout: @config.rpcs.collect_user_event.timeout, metadata: metadata, retry_policy: @config.rpcs.collect_user_event.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @user_event_service_stub.call_rpc :collect_user_event, request, options: options do |response, operation| yield response, operation if block_given? return response end rescue ::GRPC::BadStatus => e raise ::Google::Cloud::Error.from_error(e) end
Configure the UserEventService
Client
instance.
The configuration is set to the derived mode, meaning that values can be changed, but structural changes (adding new fields, etc.) are not allowed. Structural changes should be made on {Client.configure}.
See {::Google::Cloud::Retail::V2::UserEventService::Client::Configuration} for a description of the configuration fields.
@yield [config] Configure the Client
client. @yieldparam config [Client::Configuration]
@return [Client::Configuration]
# File lib/google/cloud/retail/v2/user_event_service/client.rb, line 103 def configure yield @config if block_given? @config end
Bulk import of User events. Request processing might be synchronous. Events that already exist are skipped. Use this method for backfilling historical user events.
Operation.response is of type ImportResponse. Note that it is possible for a subset of the items to be successfully inserted. Operation.metadata is of type ImportMetadata.
@overload import_user_events
(request, options = nil)
Pass arguments to `import_user_events` via a request object, either of type {::Google::Cloud::Retail::V2::ImportUserEventsRequest} or an equivalent Hash. @param request [::Google::Cloud::Retail::V2::ImportUserEventsRequest, ::Hash] A request object representing the call parameters. Required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash. @param options [::Gapic::CallOptions, ::Hash] Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
@overload import_user_events
(parent: nil, input_config: nil, errors_config: nil)
Pass arguments to `import_user_events` via keyword arguments. Note that at least one keyword argument is required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash as a request object (see above). @param parent [::String] Required. `projects/1234/locations/global/catalogs/default_catalog` @param input_config [::Google::Cloud::Retail::V2::UserEventInputConfig, ::Hash] Required. The desired input location of the data. @param errors_config [::Google::Cloud::Retail::V2::ImportErrorsConfig, ::Hash] The desired location of errors incurred during the Import. Cannot be set for inline user event imports.
@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Gapic::Operation] @yieldparam operation [::GRPC::ActiveCall::Operation]
@return [::Gapic::Operation]
@raise [::Google::Cloud::Error] if the RPC is aborted.
# File lib/google/cloud/retail/v2/user_event_service/client.rb, line 472 def import_user_events request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Retail::V2::ImportUserEventsRequest # Converts hash and nil to an options object options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h # Customize the options with defaults metadata = @config.rpcs.import_user_events.metadata.to_h # Set x-goog-api-client and x-goog-user-project headers metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ lib_name: @config.lib_name, lib_version: @config.lib_version, gapic_version: ::Google::Cloud::Retail::V2::VERSION metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = { "parent" => request.parent } request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") metadata[:"x-goog-request-params"] ||= request_params_header options.apply_defaults timeout: @config.rpcs.import_user_events.timeout, metadata: metadata, retry_policy: @config.rpcs.import_user_events.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @user_event_service_stub.call_rpc :import_user_events, request, options: options do |response, operation| response = ::Gapic::Operation.new response, @operations_client, options: options yield response, operation if block_given? return response end rescue ::GRPC::BadStatus => e raise ::Google::Cloud::Error.from_error(e) end
Deletes permanently all user events specified by the filter provided. Depending on the number of events specified by the filter, this operation could take hours or days to complete. To test a filter, use the list command first.
@overload purge_user_events
(request, options = nil)
Pass arguments to `purge_user_events` via a request object, either of type {::Google::Cloud::Retail::V2::PurgeUserEventsRequest} or an equivalent Hash. @param request [::Google::Cloud::Retail::V2::PurgeUserEventsRequest, ::Hash] A request object representing the call parameters. Required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash. @param options [::Gapic::CallOptions, ::Hash] Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
@overload purge_user_events
(parent: nil, filter: nil, force: nil)
Pass arguments to `purge_user_events` via keyword arguments. Note that at least one keyword argument is required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash as a request object (see above). @param parent [::String] Required. The resource name of the catalog under which the events are created. The format is `projects/${projectId}/locations/global/catalogs/${catalogId}` @param filter [::String] Required. The filter string to specify the events to be deleted with a length limit of 5,000 characters. Empty string filter is not allowed. The eligible fields for filtering are: * `eventType`: Double quoted {::Google::Cloud::Retail::V2::UserEvent#event_type UserEvent.event_type} string. * `eventTime`: in ISO 8601 "zulu" format. * `visitorId`: Double quoted string. Specifying this will delete all events associated with a visitor. * `userId`: Double quoted string. Specifying this will delete all events associated with a user. Examples: * Deleting all events in a time range: `eventTime > "2012-04-23T18:25:43.511Z" eventTime < "2012-04-23T18:30:43.511Z"` * Deleting specific eventType in time range: `eventTime > "2012-04-23T18:25:43.511Z" eventType = "detail-page-view"` * Deleting all events for a specific visitor: `visitorId = "visitor1024"` The filtering fields are assumed to have an implicit AND. @param force [::Boolean] Actually perform the purge. If `force` is set to false, the method will return the expected purge count without deleting any user events.
@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Gapic::Operation] @yieldparam operation [::GRPC::ActiveCall::Operation]
@return [::Gapic::Operation]
@raise [::Google::Cloud::Error] if the RPC is aborted.
# File lib/google/cloud/retail/v2/user_event_service/client.rb, line 392 def purge_user_events request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Retail::V2::PurgeUserEventsRequest # Converts hash and nil to an options object options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h # Customize the options with defaults metadata = @config.rpcs.purge_user_events.metadata.to_h # Set x-goog-api-client and x-goog-user-project headers metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ lib_name: @config.lib_name, lib_version: @config.lib_version, gapic_version: ::Google::Cloud::Retail::V2::VERSION metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = { "parent" => request.parent } request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") metadata[:"x-goog-request-params"] ||= request_params_header options.apply_defaults timeout: @config.rpcs.purge_user_events.timeout, metadata: metadata, retry_policy: @config.rpcs.purge_user_events.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @user_event_service_stub.call_rpc :purge_user_events, request, options: options do |response, operation| response = ::Gapic::Operation.new response, @operations_client, options: options yield response, operation if block_given? return response end rescue ::GRPC::BadStatus => e raise ::Google::Cloud::Error.from_error(e) end
Triggers a user event rejoin operation with latest product catalog. Events will not be annotated with detailed product information if product is missing from the catalog at the time the user event is ingested, and these events are stored as unjoined events with a limited usage on training and serving. This API can be used to trigger a 'join' operation on specified events with latest version of product catalog. It can also be used to correct events joined with wrong product catalog.
@overload rejoin_user_events
(request, options = nil)
Pass arguments to `rejoin_user_events` via a request object, either of type {::Google::Cloud::Retail::V2::RejoinUserEventsRequest} or an equivalent Hash. @param request [::Google::Cloud::Retail::V2::RejoinUserEventsRequest, ::Hash] A request object representing the call parameters. Required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash. @param options [::Gapic::CallOptions, ::Hash] Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
@overload rejoin_user_events
(parent: nil, user_event_rejoin_scope: nil)
Pass arguments to `rejoin_user_events` via keyword arguments. Note that at least one keyword argument is required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash as a request object (see above). @param parent [::String] Required. The parent catalog resource name, such as `projects/1234/locations/global/catalogs/default_catalog`. @param user_event_rejoin_scope [::Google::Cloud::Retail::V2::RejoinUserEventsRequest::UserEventRejoinScope] The type of the user event rejoin to define the scope and range of the user events to be rejoined with the latest product catalog. Defaults to USER_EVENT_REJOIN_SCOPE_UNSPECIFIED if this field is not set, or set to an invalid integer value.
@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Gapic::Operation] @yieldparam operation [::GRPC::ActiveCall::Operation]
@return [::Gapic::Operation]
@raise [::Google::Cloud::Error] if the RPC is aborted.
# File lib/google/cloud/retail/v2/user_event_service/client.rb, line 553 def rejoin_user_events request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Retail::V2::RejoinUserEventsRequest # Converts hash and nil to an options object options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h # Customize the options with defaults metadata = @config.rpcs.rejoin_user_events.metadata.to_h # Set x-goog-api-client and x-goog-user-project headers metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ lib_name: @config.lib_name, lib_version: @config.lib_version, gapic_version: ::Google::Cloud::Retail::V2::VERSION metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = { "parent" => request.parent } request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") metadata[:"x-goog-request-params"] ||= request_params_header options.apply_defaults timeout: @config.rpcs.rejoin_user_events.timeout, metadata: metadata, retry_policy: @config.rpcs.rejoin_user_events.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @user_event_service_stub.call_rpc :rejoin_user_events, request, options: options do |response, operation| response = ::Gapic::Operation.new response, @operations_client, options: options yield response, operation if block_given? return response end rescue ::GRPC::BadStatus => e raise ::Google::Cloud::Error.from_error(e) end
Writes a single user event.
@overload write_user_event
(request, options = nil)
Pass arguments to `write_user_event` via a request object, either of type {::Google::Cloud::Retail::V2::WriteUserEventRequest} or an equivalent Hash. @param request [::Google::Cloud::Retail::V2::WriteUserEventRequest, ::Hash] A request object representing the call parameters. Required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash. @param options [::Gapic::CallOptions, ::Hash] Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
@overload write_user_event
(parent: nil, user_event: nil)
Pass arguments to `write_user_event` via keyword arguments. Note that at least one keyword argument is required. To specify no parameters, or to keep all the default parameter values, pass an empty Hash as a request object (see above). @param parent [::String] Required. The parent catalog resource name, such as `projects/1234/locations/global/catalogs/default_catalog`. @param user_event [::Google::Cloud::Retail::V2::UserEvent, ::Hash] Required. User event to write.
@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Google::Cloud::Retail::V2::UserEvent] @yieldparam operation [::GRPC::ActiveCall::Operation]
@return [::Google::Cloud::Retail::V2::UserEvent]
@raise [::Google::Cloud::Error] if the RPC is aborted.
# File lib/google/cloud/retail/v2/user_event_service/client.rb, line 206 def write_user_event request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Retail::V2::WriteUserEventRequest # Converts hash and nil to an options object options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h # Customize the options with defaults metadata = @config.rpcs.write_user_event.metadata.to_h # Set x-goog-api-client and x-goog-user-project headers metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ lib_name: @config.lib_name, lib_version: @config.lib_version, gapic_version: ::Google::Cloud::Retail::V2::VERSION metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = { "parent" => request.parent } request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") metadata[:"x-goog-request-params"] ||= request_params_header options.apply_defaults timeout: @config.rpcs.write_user_event.timeout, metadata: metadata, retry_policy: @config.rpcs.write_user_event.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @user_event_service_stub.call_rpc :write_user_event, request, options: options do |response, operation| yield response, operation if block_given? return response end rescue ::GRPC::BadStatus => e raise ::Google::Cloud::Error.from_error(e) end