Making parallel request to list user events from retail api Possible ?

Can I request user events for different events type at the same time ?

for example: 

 

request = recommendationengine_v1beta1.ListUserEventsRequest(
parent="projects/{*******}/locations/global/catalogs/default_catalog/eventStores/default_event_store",
filter=f'eventTime > "2024-03-17T23:59:59Z" eventTime < "2024-03-19T00:00:00Z" eventType={event_type}'
)
# Make the request
page_result = await client.list_user_events(request=request)

The reason is when I am making a parallel request to retail api for different events it fails to grab all events. Instead it returns only few events.
0 2 72
2 REPLIES 2

Yes, you can request user events for different event types at the same time by modifying your filter condition appropriately. You can use logical OR operators to include multiple event types in your filter condition.

Here's how you can modify your code to request user events for different event types simultaneously:

request = recommendationengine_v1beta1.ListUserEventsRequest(
parent="projects/{*******}/locations/global/catalogs/default_catalog/eventStores/default_event_store",
filter=(
f'eventTime > "2024-03-17T23:59:59Z" '
f'eventTime < "2024-03-19T00:00:00Z" '
f'(eventType={event_type_1} OR eventType={event_type_2})'
)
)
# Make the request
page_result = await client.list_user_events(request=request)

In the above code snippet, event_type_1 and event_type_2 are placeholders for the event types you want to include in your request. You can replace them with the actual event types you want to query.

By using the logical OR operator (eventType={event_type_1} OR eventType={event_type_2}), you're instructing the API to retrieve user events for either event_type_1 or event_type_2. You can extend this pattern to include more event types if needed.

it did not work...fails with syntax error

here is my code,

from google.cloud import recommendationengine_v1beta1
import proto
from google.oauth2 import service_account
client = recommendationengine_v1beta1.UserEventServiceAsyncClient()
import json
# Create a client


# Create a client
request = recommendationengine_v1beta1.ListUserEventsRequest(
parent="projects/*******/locations/global/catalogs/default_catalog/eventStores/default_event_store",
filter=(f'eventTime > "2024-03-17T11:00:00Z" 'f'eventTime < "2024-03-17T11:10:00Z" 'f'(eventType="add-to-cart" OR eventType="purchase-complete")'
)
)
# Make the request
page_result = await client.list_user_events(request=request)

# Handle the response
events = []
for response in page_result:
events.append(json.loads(proto.Message.to_json(response)))