Using the PutActionInteractions operation - Amazon Personalize
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

Using the PutActionInteractions operation

After you create an Action interactions dataset, you are ready to record action interaction events with the PutActionInteractions operation. The following sections show how to record a single event and how to record multiple events with event value data.

Recording a single action interaction event

The following code shows a PutActionInteractions operation that passes a TAKEN event. You might record this event when you show a user recommendations from Amazon Personalize and they take an action, such as applying for your credit card.

The actionInteractions is an array of ActionInteraction objects. The trackingId comes from the event tracker Amazon Personalize created when you created your Action interactions dataset. For more information, see Finding the ID of your action interaction event tracker.

Your application generates a unique sessionId when a user first visits your website or uses your application. You must use the same sessionId in all events throughout the session. Amazon Personalize uses the sessionId to associate events with the user before they log in (is anonymous). For more information, see Recording events for anonymous users.

The userId, actionId, and sentAt parameters map to the USER_ID, ACTION_ID, EVENT_TYPE, and TIMESTAMP fields of the Action interactions dataset.

Corresponding Action interactions dataset

USER_ID, ACTION_ID, TIMESTAMP, EVENT_TYPE user123, action-xyz, 1543631760, TAKEN

Code example

Amazon CLI
aws personalize-events put-action-interactions \ --tracking-id 12345678-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --action-interactions '[{ "userId": "user123", "sessionId": "abcdefg", "timestamp": 1543631760, "eventType": "TAKEN", "actionId": "action-xyz"}]'
SDK for Python (Boto3)
import boto3 personalize_events = boto3.client(service_name='personalize-events') response = personalize_events.put_action_interactions( trackingId='12345678-xxxx-xxxx-xxxx-xxxxxxxxxxxx', actionInteractions=[{ 'userId': 'user123', 'sessionId': 'abcdefg', 'timestamp': 1543631760, 'eventType': 'Taken', 'actionId': 'action-xyz' }] )

Recording multiple action interaction events

The following code shows how to record multiple action interaction events for the same user with the same sessionId.

Corresponding Action interactions dataset

USER_ID, ACTION_ID, EVENT_TYPE, TIMESTAMP user123, action123, Taken, 1543531139 user123, action345, Not Taken, 1543531139
Amazon CLI
aws personalize-events put-action-interactions \ --tracking-id 6ddfe6b7-cd83-4dd4-b09d-4c35ecbacfe1 \ --action-interactions '[{ "userId": "user123", "sessionId": "abcdefg", "timestamp": 1543531139, "eventType": "Taken", "actionId": "action123" }, { "userId": "user123", "sessionId": "abcdefg", "timestamp": 1543531139, "eventType": "Not Taken", "actionId": "action345"}]'
SDK for Python (Boto3)
import boto3 personalize_events = boto3.client(service_name='personalize-events') response = personalize_events.put_action_interactions( trackingId='12345678-xxxx-xxxx-xxxx-xxxxxxxxxxxx', actionInteractions=[{ 'userId': 'user123', 'sessionId': 'abcdefg', 'timestamp': 1697848587, 'eventType': 'Taken', 'actionId': 'action123' }, { 'userId': 'user123', 'sessionId': 'abcdefg', 'timestamp': 1697848622, 'eventType': 'Not Taken', 'actionId': 'action345' }] )