Amazon Personalize, also known as AWS Personalize, is a machine learning service by Amazon. It enables you to create high-quality content recommendations, personalized product and marketing promotions, and much more.
RudderStack supports AWS Personalize as a destination where you can send your event data seamlessly.
To use PutUsers
and PutItems
for Personalize, use the latest images for rudder-server
and rudder-transformer
images.
Getting started
Before configuring AWS Personalize as a destination in RudderStack, verify if the source platform is supported by referring to the table below:
Connection Mode | Web | Mobile | Server |
---|---|---|---|
Device mode | - | - | - |
Cloud mode | Supported | Supported | Supported |
Once you have confirmed that the source platform supports sending events to AWS Personalize, follow these steps:
- Generate a Tracking ID by following these instructions.
Keep the Tracking ID handy. It is required to configure AWS Personalize as a destination.
- From your RudderStack dashboard, add the source. Then, from the list of destinations, select AWS Personalize.
- Assign a name to your destination and click on Continue.
Connection settings
To successfully set up AWS Personalize as a destination, configure the following settings:
- Access Key ID: Enter the access key ID of your AWS account here.
The following actions need to be attached to the Access Key while setting up the AWS policy for it:
"Action": [ "personalize:PutEvents", "personalize:PutUsers", "personalize:PutItems" ]
You can use these actions based on the type of Personalize events you want to send. For example, to send only putEvents
type of events, you can attach only personalize:PutEvents
.
- Secret Access Key: Enter the secret access key of your AWS account.
- Region: Enter the region associated with your AWS account in this field.
- TrackingId: Enter the Tracking ID generated in the first step.
- Dataset ARN: Enter the dataset ARN of the dataset from the chosen dataset group.
- Personalize Events: Choose the type of Personalize event you want to avail.
- Map all the fields: Enter the Schema Field you have used to create the schema in AWS Personalize (For example,
USER_ID
,TIMESTAMP
,ITEM_ID
, etc.). Also, enter the corresponding Mapped Field from which the value will be taken from your event payload.
For more information on creating a schema in Personalize, refer to the Personalize documentation.
When using the PutItems
operation, you need to provide the path to the Mapped Field corresponding to the ITEM_ID
present in your Personalize database schema.
- Disable Stringifying Additional Properties: Disables the conversion of additional properties to string data type in AWS Personalize.
This is an exclusive setting applicable only for the putEvents
operation.
Identify
The identify
call lets you use PutUsers
operation of AWS Personalize.
For the PutUsers
operation, the value of the userId
or anonymousId
field in the payload will be sent as userId
.
For PutUsers
, the Dataset ARN field in the RudderStack dashboard is required.
The following snippet highlights a sample identify
event with the Mapped Field specified in the RudderStack dashboard:
rudderanalytics.identify("1hKOmRA4el9Zt1WSfVJIVo4GRlm", { name: "Alex", email: "alex@example.com" });
Track
The track
call lets you use PutEvents
and PutItems
operations of AWS Personalize.
For PutEvents
, RudderStack sends the value of the event
field in the payload as EVENT_TYPE
. Also, the value of the timestamp
or originalTimestamp
field in the payload will be sent as sentAt
.
For PutItems
and PutEvents
operations, it is mandatory to specify the Dataset ARN
and Tracking ID
in the RudderStack dashboard.
The following snippet shows a sample track
event with the mapped field specified in the RudderStack dashboard:
rudderanalytics.track("PRODUCT ADDED", { typeOfSdk: "javascript", numberOfRatings: "12", X: "item 1",});
When using the PutItems
, the Schema Field ITEM_ID
must be mapped to a specific key inside the payload and you need to mention the path to the chosen key as the corresponding Mapped Field.
In the above example, if you map ITEM_ID
to the payload field X
, the corresponding Mapped Field will be properties.X
.
For any other Schema Field in your ITEMS
dataset, it is not recommended to specify the path - only the field name is sufficient.
While using PutEvents
, the Mapped Field for ITEM_ID
should not contain the path to the field. Only the name of the field will be sufficient. The same rule is applicable for any other Schema Field mapping.
The following image shows an example of the dashboard configuration for PutItems
:
The following image shows an example of the dashboard configuration for PutEvents
:
Contact us
For queries on any of the sections covered in this guide, you can, contact us or start a conversation in our Slack community.