Class UserEventServiceClient (0.8.10)

public class UserEventServiceClient implements BackgroundResource

Service Description: Service for ingesting end user actions on the customer website.

This class provides the ability to make remote calls to the backing service through method calls that map to API methods. Sample code to get started:


 try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
   EventStoreName parent =
       EventStoreName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[EVENT_STORE]");
   UserEvent userEvent = UserEvent.newBuilder().build();
   UserEvent response = userEventServiceClient.writeUserEvent(parent, userEvent);
 }
 

Note: close() needs to be called on the UserEventServiceClient object to clean up resources such as threads. In the example above, try-with-resources is used, which automatically calls close().

The surface of this class includes several types of Java methods for each of the API's methods:

  1. A "flattened" method. With this type of method, the fields of the request type have been converted into function parameters. It may be the case that not all fields are available as parameters, and not every API method will have a flattened method entry point.
  2. A "request object" method. This type of method only takes one parameter, a request object, which must be constructed before the call. Not every API method will have a request object method.
  3. A "callable" method. This type of method takes no parameters and returns an immutable API callable object, which can be used to initiate calls to the service.

See the individual methods for example code.

Many parameters require resource names to be formatted in a particular way. To assist with these names, this class includes a format method for each type of name, and additionally a parse method to extract the individual identifiers contained within names that are returned.

This class can be customized by passing in a custom instance of UserEventServiceSettings to create(). For example:

To customize credentials:


 UserEventServiceSettings userEventServiceSettings =
     UserEventServiceSettings.newBuilder()
         .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
         .build();
 UserEventServiceClient userEventServiceClient =
     UserEventServiceClient.create(userEventServiceSettings);
 

To customize the endpoint:


 UserEventServiceSettings userEventServiceSettings =
     UserEventServiceSettings.newBuilder().setEndpoint(myEndpoint).build();
 UserEventServiceClient userEventServiceClient =
     UserEventServiceClient.create(userEventServiceSettings);
 

Please refer to the GitHub repository's samples for more quickstart code snippets.

Inheritance

java.lang.Object > UserEventServiceClient

Implements

BackgroundResource

Static Methods

create()

public static final UserEventServiceClient create()

Constructs an instance of UserEventServiceClient with default settings.

Returns
TypeDescription
UserEventServiceClient
Exceptions
TypeDescription
IOException

create(UserEventServiceSettings settings)

public static final UserEventServiceClient create(UserEventServiceSettings settings)

Constructs an instance of UserEventServiceClient, using the given settings. The channels are created based on the settings passed in, or defaults for any settings that are not set.

Parameter
NameDescription
settingsUserEventServiceSettings
Returns
TypeDescription
UserEventServiceClient
Exceptions
TypeDescription
IOException

create(UserEventServiceStub stub)

public static final UserEventServiceClient create(UserEventServiceStub stub)

Constructs an instance of UserEventServiceClient, using the given stub for making calls. This is for advanced usage - prefer using create(UserEventServiceSettings).

Parameter
NameDescription
stubUserEventServiceStub
Returns
TypeDescription
UserEventServiceClient

Constructors

UserEventServiceClient(UserEventServiceSettings settings)

protected UserEventServiceClient(UserEventServiceSettings settings)

Constructs an instance of UserEventServiceClient, using the given settings. This is protected so that it is easy to make a subclass, but otherwise, the static factory methods should be preferred.

Parameter
NameDescription
settingsUserEventServiceSettings

UserEventServiceClient(UserEventServiceStub stub)

protected UserEventServiceClient(UserEventServiceStub stub)
Parameter
NameDescription
stubUserEventServiceStub

Methods

awaitTermination(long duration, TimeUnit unit)

public boolean awaitTermination(long duration, TimeUnit unit)
Parameters
NameDescription
durationlong
unitTimeUnit
Returns
TypeDescription
boolean
Exceptions
TypeDescription
InterruptedException

close()

public final void close()

collectUserEvent(CollectUserEventRequest request)

public final HttpBody collectUserEvent(CollectUserEventRequest request)

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 Recommendations AI JavaScript pixel. Users should not call this method directly.

Sample code:


 try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
   CollectUserEventRequest request =
       CollectUserEventRequest.newBuilder()
           .setParent(
               EventStoreName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[EVENT_STORE]")
                   .toString())
           .setUserEvent("userEvent315571599")
           .setUri("uri116076")
           .setEts(100772)
           .build();
   HttpBody response = userEventServiceClient.collectUserEvent(request);
 }
 
Parameter
NameDescription
requestCollectUserEventRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
com.google.api.HttpBody

collectUserEvent(EventStoreName parent, String userEvent, String uri, long ets)

public final HttpBody collectUserEvent(EventStoreName parent, String userEvent, String uri, long ets)

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 Recommendations AI JavaScript pixel. Users should not call this method directly.

Sample code:


 try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
   EventStoreName parent =
       EventStoreName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[EVENT_STORE]");
   String userEvent = "userEvent315571599";
   String uri = "uri116076";
   long ets = 100772;
   HttpBody response = userEventServiceClient.collectUserEvent(parent, userEvent, uri, ets);
 }
 
Parameters
NameDescription
parentEventStoreName

Required. The parent eventStore name, such as projects/1234/locations/global/catalogs/default_catalog/eventStores/default_event_store.

userEventString

Required. URL encoded UserEvent proto.

uriString

Optional. The url including cgi-parameters but excluding the hash fragment. The URL must be truncated to 1.5K bytes to conservatively be under the 2K bytes. This is often more useful than the referer url, because many browsers only send the domain for 3rd party requests.

etslong

Optional. The event timestamp in milliseconds. This prevents browser caching of otherwise identical get requests. The name is abbreviated to reduce the payload bytes.

Returns
TypeDescription
com.google.api.HttpBody

collectUserEvent(String parent, String userEvent, String uri, long ets)

public final HttpBody collectUserEvent(String parent, String userEvent, String uri, long ets)

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 Recommendations AI JavaScript pixel. Users should not call this method directly.

Sample code:


 try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
   String parent =
       EventStoreName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[EVENT_STORE]").toString();
   String userEvent = "userEvent315571599";
   String uri = "uri116076";
   long ets = 100772;
   HttpBody response = userEventServiceClient.collectUserEvent(parent, userEvent, uri, ets);
 }
 
Parameters
NameDescription
parentString

Required. The parent eventStore name, such as projects/1234/locations/global/catalogs/default_catalog/eventStores/default_event_store.

userEventString

Required. URL encoded UserEvent proto.

uriString

Optional. The url including cgi-parameters but excluding the hash fragment. The URL must be truncated to 1.5K bytes to conservatively be under the 2K bytes. This is often more useful than the referer url, because many browsers only send the domain for 3rd party requests.

etslong

Optional. The event timestamp in milliseconds. This prevents browser caching of otherwise identical get requests. The name is abbreviated to reduce the payload bytes.

Returns
TypeDescription
com.google.api.HttpBody

collectUserEventCallable()

public final UnaryCallable<CollectUserEventRequest,HttpBody> collectUserEventCallable()

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 Recommendations AI JavaScript pixel. Users should not call this method directly.

Sample code:


 try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
   CollectUserEventRequest request =
       CollectUserEventRequest.newBuilder()
           .setParent(
               EventStoreName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[EVENT_STORE]")
                   .toString())
           .setUserEvent("userEvent315571599")
           .setUri("uri116076")
           .setEts(100772)
           .build();
   ApiFuture<HttpBody> future =
       userEventServiceClient.collectUserEventCallable().futureCall(request);
   // Do something.
   HttpBody response = future.get();
 }
 
Returns
TypeDescription
UnaryCallable<CollectUserEventRequest,com.google.api.HttpBody>

getOperationsClient()

public final OperationsClient getOperationsClient()

Returns the OperationsClient that can be used to query the status of a long-running operation returned by another API method call.

Returns
TypeDescription
OperationsClient

getSettings()

public final UserEventServiceSettings getSettings()
Returns
TypeDescription
UserEventServiceSettings

getStub()

public UserEventServiceStub getStub()
Returns
TypeDescription
UserEventServiceStub

importUserEventsAsync(EventStoreName parent, String requestId, InputConfig inputConfig, ImportErrorsConfig errorsConfig)

public final OperationFuture<ImportUserEventsResponse,ImportMetadata> importUserEventsAsync(EventStoreName parent, String requestId, InputConfig inputConfig, ImportErrorsConfig errorsConfig)

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.

Sample code:


 try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
   EventStoreName parent =
       EventStoreName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[EVENT_STORE]");
   String requestId = "requestId693933066";
   InputConfig inputConfig = InputConfig.newBuilder().build();
   ImportErrorsConfig errorsConfig = ImportErrorsConfig.newBuilder().build();
   ImportUserEventsResponse response =
       userEventServiceClient
           .importUserEventsAsync(parent, requestId, inputConfig, errorsConfig)
           .get();
 }
 
Parameters
NameDescription
parentEventStoreName

Required. projects/1234/locations/global/catalogs/default_catalog/eventStores/default_event_store

requestIdString

Optional. Unique identifier provided by client, within the ancestor dataset scope. Ensures idempotency for expensive long running operations. Server-generated if unspecified. Up to 128 characters long. This is returned as google.longrunning.Operation.name in the response. Note that this field must not be set if the desired input config is catalog_inline_source.

inputConfigInputConfig

Required. The desired input location of the data.

errorsConfigImportErrorsConfig

Optional. The desired location of errors incurred during the Import.

Returns
TypeDescription
OperationFuture<ImportUserEventsResponse,ImportMetadata>

importUserEventsAsync(ImportUserEventsRequest request)

public final OperationFuture<ImportUserEventsResponse,ImportMetadata> importUserEventsAsync(ImportUserEventsRequest request)

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.

Sample code:


 try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
   ImportUserEventsRequest request =
       ImportUserEventsRequest.newBuilder()
           .setParent(
               EventStoreName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[EVENT_STORE]")
                   .toString())
           .setRequestId("requestId693933066")
           .setInputConfig(InputConfig.newBuilder().build())
           .setErrorsConfig(ImportErrorsConfig.newBuilder().build())
           .build();
   ImportUserEventsResponse response =
       userEventServiceClient.importUserEventsAsync(request).get();
 }
 
Parameter
NameDescription
requestImportUserEventsRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
OperationFuture<ImportUserEventsResponse,ImportMetadata>

importUserEventsAsync(String parent, String requestId, InputConfig inputConfig, ImportErrorsConfig errorsConfig)

public final OperationFuture<ImportUserEventsResponse,ImportMetadata> importUserEventsAsync(String parent, String requestId, InputConfig inputConfig, ImportErrorsConfig errorsConfig)

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.

Sample code:


 try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
   String parent =
       EventStoreName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[EVENT_STORE]").toString();
   String requestId = "requestId693933066";
   InputConfig inputConfig = InputConfig.newBuilder().build();
   ImportErrorsConfig errorsConfig = ImportErrorsConfig.newBuilder().build();
   ImportUserEventsResponse response =
       userEventServiceClient
           .importUserEventsAsync(parent, requestId, inputConfig, errorsConfig)
           .get();
 }
 
Parameters
NameDescription
parentString

Required. projects/1234/locations/global/catalogs/default_catalog/eventStores/default_event_store

requestIdString

Optional. Unique identifier provided by client, within the ancestor dataset scope. Ensures idempotency for expensive long running operations. Server-generated if unspecified. Up to 128 characters long. This is returned as google.longrunning.Operation.name in the response. Note that this field must not be set if the desired input config is catalog_inline_source.

inputConfigInputConfig

Required. The desired input location of the data.

errorsConfigImportErrorsConfig

Optional. The desired location of errors incurred during the Import.

Returns
TypeDescription
OperationFuture<ImportUserEventsResponse,ImportMetadata>

importUserEventsCallable()

public final UnaryCallable<ImportUserEventsRequest,Operation> importUserEventsCallable()

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.

Sample code:


 try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
   ImportUserEventsRequest request =
       ImportUserEventsRequest.newBuilder()
           .setParent(
               EventStoreName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[EVENT_STORE]")
                   .toString())
           .setRequestId("requestId693933066")
           .setInputConfig(InputConfig.newBuilder().build())
           .setErrorsConfig(ImportErrorsConfig.newBuilder().build())
           .build();
   ApiFuture<Operation> future =
       userEventServiceClient.importUserEventsCallable().futureCall(request);
   // Do something.
   Operation response = future.get();
 }
 
Returns
TypeDescription
UnaryCallable<ImportUserEventsRequest,Operation>

importUserEventsOperationCallable()

public final OperationCallable<ImportUserEventsRequest,ImportUserEventsResponse,ImportMetadata> importUserEventsOperationCallable()

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.

Sample code:


 try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
   ImportUserEventsRequest request =
       ImportUserEventsRequest.newBuilder()
           .setParent(
               EventStoreName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[EVENT_STORE]")
                   .toString())
           .setRequestId("requestId693933066")
           .setInputConfig(InputConfig.newBuilder().build())
           .setErrorsConfig(ImportErrorsConfig.newBuilder().build())
           .build();
   OperationFuture<ImportUserEventsResponse, ImportMetadata> future =
       userEventServiceClient.importUserEventsOperationCallable().futureCall(request);
   // Do something.
   ImportUserEventsResponse response = future.get();
 }
 
Returns
TypeDescription
OperationCallable<ImportUserEventsRequest,ImportUserEventsResponse,ImportMetadata>

isShutdown()

public boolean isShutdown()
Returns
TypeDescription
boolean

isTerminated()

public boolean isTerminated()
Returns
TypeDescription
boolean

listUserEvents(EventStoreName parent, String filter)

public final UserEventServiceClient.ListUserEventsPagedResponse listUserEvents(EventStoreName parent, String filter)

Gets a list of user events within a time range, with potential filtering.

Sample code:


 try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
   EventStoreName parent =
       EventStoreName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[EVENT_STORE]");
   String filter = "filter-1274492040";
   for (UserEvent element : userEventServiceClient.listUserEvents(parent, filter).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameters
NameDescription
parentEventStoreName

Required. The parent eventStore resource name, such as projects/*/locations/*/catalogs/default_catalog/eventStores/default_event_store.

filterString

Optional. Filtering expression to specify restrictions over returned events. This is a sequence of terms, where each term applies some kind of a restriction to the returned user events. Use this expression to restrict results to a specific time range, or filter events by eventType. eg: eventTime > "2012-04-23T18:25:43.511Z" eventsMissingCatalogItems eventTime<"2012-04-23T18:25:43.511Z" eventType=search

We expect only 3 types of fields:

* eventTime: this can be specified a maximum of 2 times, once with a less than operator and once with a greater than operator. The eventTime restrict should result in one contiguous valid eventTime range.

* eventType: only 1 eventType restriction can be specified.

* eventsMissingCatalogItems: specififying this will restrict results to events for which catalog items were not found in the catalog. The default behavior is to return only those events for which catalog items were found.

Some examples of valid filters expressions:

* Example 1: eventTime > "2012-04-23T18:25:43.511Z" eventTime < "2012-04-23T18:30:43.511Z" * Example 2: eventTime > "2012-04-23T18:25:43.511Z" eventType = detail-page-view * Example 3: eventsMissingCatalogItems eventType = search eventTime < "2018-04-23T18:30:43.511Z" * Example 4: eventTime > "2012-04-23T18:25:43.511Z" * Example 5: eventType = search * Example 6: eventsMissingCatalogItems

Returns
TypeDescription
UserEventServiceClient.ListUserEventsPagedResponse

listUserEvents(ListUserEventsRequest request)

public final UserEventServiceClient.ListUserEventsPagedResponse listUserEvents(ListUserEventsRequest request)

Gets a list of user events within a time range, with potential filtering.

Sample code:


 try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
   ListUserEventsRequest request =
       ListUserEventsRequest.newBuilder()
           .setParent(
               EventStoreName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[EVENT_STORE]")
                   .toString())
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .setFilter("filter-1274492040")
           .build();
   for (UserEvent element : userEventServiceClient.listUserEvents(request).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameter
NameDescription
requestListUserEventsRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
UserEventServiceClient.ListUserEventsPagedResponse

listUserEvents(String parent, String filter)

public final UserEventServiceClient.ListUserEventsPagedResponse listUserEvents(String parent, String filter)

Gets a list of user events within a time range, with potential filtering.

Sample code:


 try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
   String parent =
       EventStoreName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[EVENT_STORE]").toString();
   String filter = "filter-1274492040";
   for (UserEvent element : userEventServiceClient.listUserEvents(parent, filter).iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Parameters
NameDescription
parentString

Required. The parent eventStore resource name, such as projects/*/locations/*/catalogs/default_catalog/eventStores/default_event_store.

filterString

Optional. Filtering expression to specify restrictions over returned events. This is a sequence of terms, where each term applies some kind of a restriction to the returned user events. Use this expression to restrict results to a specific time range, or filter events by eventType. eg: eventTime > "2012-04-23T18:25:43.511Z" eventsMissingCatalogItems eventTime<"2012-04-23T18:25:43.511Z" eventType=search

We expect only 3 types of fields:

* eventTime: this can be specified a maximum of 2 times, once with a less than operator and once with a greater than operator. The eventTime restrict should result in one contiguous valid eventTime range.

* eventType: only 1 eventType restriction can be specified.

* eventsMissingCatalogItems: specififying this will restrict results to events for which catalog items were not found in the catalog. The default behavior is to return only those events for which catalog items were found.

Some examples of valid filters expressions:

* Example 1: eventTime > "2012-04-23T18:25:43.511Z" eventTime < "2012-04-23T18:30:43.511Z" * Example 2: eventTime > "2012-04-23T18:25:43.511Z" eventType = detail-page-view * Example 3: eventsMissingCatalogItems eventType = search eventTime < "2018-04-23T18:30:43.511Z" * Example 4: eventTime > "2012-04-23T18:25:43.511Z" * Example 5: eventType = search * Example 6: eventsMissingCatalogItems

Returns
TypeDescription
UserEventServiceClient.ListUserEventsPagedResponse

listUserEventsCallable()

public final UnaryCallable<ListUserEventsRequest,ListUserEventsResponse> listUserEventsCallable()

Gets a list of user events within a time range, with potential filtering.

Sample code:


 try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
   ListUserEventsRequest request =
       ListUserEventsRequest.newBuilder()
           .setParent(
               EventStoreName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[EVENT_STORE]")
                   .toString())
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .setFilter("filter-1274492040")
           .build();
   while (true) {
     ListUserEventsResponse response =
         userEventServiceClient.listUserEventsCallable().call(request);
     for (UserEvent element : response.getResponsesList()) {
       // doThingsWith(element);
     }
     String nextPageToken = response.getNextPageToken();
     if (!Strings.isNullOrEmpty(nextPageToken)) {
       request = request.toBuilder().setPageToken(nextPageToken).build();
     } else {
       break;
     }
   }
 }
 
Returns
TypeDescription
UnaryCallable<ListUserEventsRequest,ListUserEventsResponse>

listUserEventsPagedCallable()

public final UnaryCallable<ListUserEventsRequest,UserEventServiceClient.ListUserEventsPagedResponse> listUserEventsPagedCallable()

Gets a list of user events within a time range, with potential filtering.

Sample code:


 try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
   ListUserEventsRequest request =
       ListUserEventsRequest.newBuilder()
           .setParent(
               EventStoreName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[EVENT_STORE]")
                   .toString())
           .setPageSize(883849137)
           .setPageToken("pageToken873572522")
           .setFilter("filter-1274492040")
           .build();
   ApiFuture<UserEvent> future =
       userEventServiceClient.listUserEventsPagedCallable().futureCall(request);
   // Do something.
   for (UserEvent element : future.get().iterateAll()) {
     // doThingsWith(element);
   }
 }
 
Returns
TypeDescription
UnaryCallable<ListUserEventsRequest,ListUserEventsPagedResponse>

purgeUserEventsAsync(EventStoreName parent, String filter, boolean force)

public final OperationFuture<PurgeUserEventsResponse,PurgeUserEventsMetadata> purgeUserEventsAsync(EventStoreName parent, String filter, boolean force)

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.

Sample code:


 try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
   EventStoreName parent =
       EventStoreName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[EVENT_STORE]");
   String filter = "filter-1274492040";
   boolean force = true;
   PurgeUserEventsResponse response =
       userEventServiceClient.purgeUserEventsAsync(parent, filter, force).get();
 }
 
Parameters
NameDescription
parentEventStoreName

Required. The resource name of the event_store under which the events are created. The format is projects/${projectId}/locations/global/catalogs/${catalogId}/eventStores/${eventStoreId}

filterString

Required. The filter string to specify the events to be deleted. Empty string filter is not allowed. This filter can also be used with ListUserEvents API to list events that will be deleted. The eligible fields for filtering are:

  • eventType - UserEvent.eventType field of type string.
  • eventTime - in ISO 8601 "zulu" format.
  • visitorId - field of type string. Specifying this will delete all events associated with a visitor.
  • userId - field of type string. Specifying this will delete all events associated with a user. Example 1: Deleting all events in a time range. eventTime > "2012-04-23T18:25:43.511Z" eventTime < "2012-04-23T18:30:43.511Z" Example 2: Deleting specific eventType in time range. eventTime > "2012-04-23T18:25:43.511Z" eventType = "detail-page-view" Example 3: Deleting all events for a specific visitor visitorId = visitor1024 The filtering fields are assumed to have an implicit AND.

forceboolean

Optional. The default value is false. Override this flag to true to actually perform the purge. If the field is not set to true, a sampling of events to be deleted will be returned.

Returns
TypeDescription
OperationFuture<PurgeUserEventsResponse,PurgeUserEventsMetadata>

purgeUserEventsAsync(PurgeUserEventsRequest request)

public final OperationFuture<PurgeUserEventsResponse,PurgeUserEventsMetadata> purgeUserEventsAsync(PurgeUserEventsRequest request)

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.

Sample code:


 try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
   PurgeUserEventsRequest request =
       PurgeUserEventsRequest.newBuilder()
           .setParent(
               EventStoreName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[EVENT_STORE]")
                   .toString())
           .setFilter("filter-1274492040")
           .setForce(true)
           .build();
   PurgeUserEventsResponse response = userEventServiceClient.purgeUserEventsAsync(request).get();
 }
 
Parameter
NameDescription
requestPurgeUserEventsRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
OperationFuture<PurgeUserEventsResponse,PurgeUserEventsMetadata>

purgeUserEventsAsync(String parent, String filter, boolean force)

public final OperationFuture<PurgeUserEventsResponse,PurgeUserEventsMetadata> purgeUserEventsAsync(String parent, String filter, boolean force)

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.

Sample code:


 try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
   String parent =
       EventStoreName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[EVENT_STORE]").toString();
   String filter = "filter-1274492040";
   boolean force = true;
   PurgeUserEventsResponse response =
       userEventServiceClient.purgeUserEventsAsync(parent, filter, force).get();
 }
 
Parameters
NameDescription
parentString

Required. The resource name of the event_store under which the events are created. The format is projects/${projectId}/locations/global/catalogs/${catalogId}/eventStores/${eventStoreId}

filterString

Required. The filter string to specify the events to be deleted. Empty string filter is not allowed. This filter can also be used with ListUserEvents API to list events that will be deleted. The eligible fields for filtering are:

  • eventType - UserEvent.eventType field of type string.
  • eventTime - in ISO 8601 "zulu" format.
  • visitorId - field of type string. Specifying this will delete all events associated with a visitor.
  • userId - field of type string. Specifying this will delete all events associated with a user. Example 1: Deleting all events in a time range. eventTime > "2012-04-23T18:25:43.511Z" eventTime < "2012-04-23T18:30:43.511Z" Example 2: Deleting specific eventType in time range. eventTime > "2012-04-23T18:25:43.511Z" eventType = "detail-page-view" Example 3: Deleting all events for a specific visitor visitorId = visitor1024 The filtering fields are assumed to have an implicit AND.

forceboolean

Optional. The default value is false. Override this flag to true to actually perform the purge. If the field is not set to true, a sampling of events to be deleted will be returned.

Returns
TypeDescription
OperationFuture<PurgeUserEventsResponse,PurgeUserEventsMetadata>

purgeUserEventsCallable()

public final UnaryCallable<PurgeUserEventsRequest,Operation> purgeUserEventsCallable()

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.

Sample code:


 try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
   PurgeUserEventsRequest request =
       PurgeUserEventsRequest.newBuilder()
           .setParent(
               EventStoreName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[EVENT_STORE]")
                   .toString())
           .setFilter("filter-1274492040")
           .setForce(true)
           .build();
   ApiFuture<Operation> future =
       userEventServiceClient.purgeUserEventsCallable().futureCall(request);
   // Do something.
   Operation response = future.get();
 }
 
Returns
TypeDescription
UnaryCallable<PurgeUserEventsRequest,Operation>

purgeUserEventsOperationCallable()

public final OperationCallable<PurgeUserEventsRequest,PurgeUserEventsResponse,PurgeUserEventsMetadata> purgeUserEventsOperationCallable()

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.

Sample code:


 try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
   PurgeUserEventsRequest request =
       PurgeUserEventsRequest.newBuilder()
           .setParent(
               EventStoreName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[EVENT_STORE]")
                   .toString())
           .setFilter("filter-1274492040")
           .setForce(true)
           .build();
   OperationFuture<PurgeUserEventsResponse, PurgeUserEventsMetadata> future =
       userEventServiceClient.purgeUserEventsOperationCallable().futureCall(request);
   // Do something.
   PurgeUserEventsResponse response = future.get();
 }
 
Returns
TypeDescription
OperationCallable<PurgeUserEventsRequest,PurgeUserEventsResponse,PurgeUserEventsMetadata>

shutdown()

public void shutdown()

shutdownNow()

public void shutdownNow()

writeUserEvent(EventStoreName parent, UserEvent userEvent)

public final UserEvent writeUserEvent(EventStoreName parent, UserEvent userEvent)

Writes a single user event.

Sample code:


 try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
   EventStoreName parent =
       EventStoreName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[EVENT_STORE]");
   UserEvent userEvent = UserEvent.newBuilder().build();
   UserEvent response = userEventServiceClient.writeUserEvent(parent, userEvent);
 }
 
Parameters
NameDescription
parentEventStoreName

Required. The parent eventStore resource name, such as projects/1234/locations/global/catalogs/default_catalog/eventStores/default_event_store.

userEventUserEvent

Required. User event to write.

Returns
TypeDescription
UserEvent

writeUserEvent(WriteUserEventRequest request)

public final UserEvent writeUserEvent(WriteUserEventRequest request)

Writes a single user event.

Sample code:


 try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
   WriteUserEventRequest request =
       WriteUserEventRequest.newBuilder()
           .setParent(
               EventStoreName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[EVENT_STORE]")
                   .toString())
           .setUserEvent(UserEvent.newBuilder().build())
           .build();
   UserEvent response = userEventServiceClient.writeUserEvent(request);
 }
 
Parameter
NameDescription
requestWriteUserEventRequest

The request object containing all of the parameters for the API call.

Returns
TypeDescription
UserEvent

writeUserEvent(String parent, UserEvent userEvent)

public final UserEvent writeUserEvent(String parent, UserEvent userEvent)

Writes a single user event.

Sample code:


 try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
   String parent =
       EventStoreName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[EVENT_STORE]").toString();
   UserEvent userEvent = UserEvent.newBuilder().build();
   UserEvent response = userEventServiceClient.writeUserEvent(parent, userEvent);
 }
 
Parameters
NameDescription
parentString

Required. The parent eventStore resource name, such as projects/1234/locations/global/catalogs/default_catalog/eventStores/default_event_store.

userEventUserEvent

Required. User event to write.

Returns
TypeDescription
UserEvent

writeUserEventCallable()

public final UnaryCallable<WriteUserEventRequest,UserEvent> writeUserEventCallable()

Writes a single user event.

Sample code:


 try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
   WriteUserEventRequest request =
       WriteUserEventRequest.newBuilder()
           .setParent(
               EventStoreName.of("[PROJECT]", "[LOCATION]", "[CATALOG]", "[EVENT_STORE]")
                   .toString())
           .setUserEvent(UserEvent.newBuilder().build())
           .build();
   ApiFuture<UserEvent> future =
       userEventServiceClient.writeUserEventCallable().futureCall(request);
   // Do something.
   UserEvent response = future.get();
 }
 
Returns
TypeDescription
UnaryCallable<WriteUserEventRequest,UserEvent>