Send your event data from RudderStack to AWS Personalize.
5 minute read
Amazon Personalize is a machine learning service by AWS. 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.
Once you have confirmed that the source platform supports sending events to Personalize, follow these steps:
Generate a Tracking ID by following these instructions.
From your RudderStack dashboard, add the source. Then, from the list of destinations, select Amazon Personalize.
Assign a name to your destination and click Continue.
Connection settings
To successfully set up Personalize as a destination, you need to configure the following settings:
Role-based Authentication: Enable this setting to use the RudderStack IAM role for authentication. For more information on creating a AWS IAM role for RudderStack, refer to this guide.
IAM Role ARN: Enter the ARN of the IAM role.
It is highly recommended to enable this setting as the access keys-based authentication method is now deprecated.
If Role-based Authentication is disabled, you need to enter the AWS Access Key ID and AWS Secret Access Key to authorize RudderStack to send data to Personalize.
In both the role-based and access key-based authentication methods, you need to set a policy specifying the required permissions for RudderStack to send data to Personalize. Refer to the Policy permissions section below for more information.
Region: Enter the region associated with your AWS account in this field.
TrackingId: Enter the Tracking ID generated in the Getting started section above.
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 fields: Enter the Schema Field used to create the schema in AWS Personalize (for example, USER_ID, TIMESTAMP, ITEM_ID, etc.). Also, enter the corresponding Mapped Field - RudderStack takes the value from this field present in the event payload and maps it to the Schema Field.
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: This setting disables the conversion of additional properties to string data type in Personalize.
This is an exclusive setting only applicable for the putEvents operation. If it is disabled, RudderStack converts any mapped fields other than ITEM_ID, EVENT_VALUE, IMPRESSION, RECOMMENDATION_ID, TIMESTAMP, EVENT_TYPE, and USER_ID to a string before forwarding to Personalize.
Policy permissions
To use the Personalize destination with RudderStack correctly, you must have a Personalize service set up in AWS. Refer to the AWS documentation for more information on setting up your Amazon Personalize account.
You also need to create an IAM role and grant the necessary permissions for RudderStack to send data to Personalize. The following actions need to be attached to the role while setting up the AWS policy:
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.
A sample permissions policy that allows a user to send event data into Personalize is shown below:
For PutEvents, RudderStack sends the value of the event field in the payload as EVENT_TYPE. Also, the value of the timestamp or originalTimestamp fields in the payload will be sent as sentAt.
For the PutItems and PutEvents operations, it is mandatory to specify the Dataset ARN and Tracking ID settings in the RudderStack dashboard.
The following snippet shows a sample track event with the mapped field specified in the dashboard settings:
When using the PutItems, the Schema FieldITEM_ID must be mapped to a specific key inside the payload. You also 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.
When 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:
This site uses cookies to improve your experience while you navigate through the website. Out of
these
cookies, the cookies that are categorized as necessary are stored on your browser as they are as
essential
for the working of basic functionalities of the website. We also use third-party cookies that
help
us
analyze and understand how you use this website. These cookies will be stored in your browser
only
with
your
consent. You also have the option to opt-out of these cookies. But opting out of some of these
cookies
may
have an effect on your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This
category only includes cookies that ensures basic functionalities and security
features of the website. These cookies do not store any personal information.
This site uses cookies to improve your experience. If you want to
learn more about cookies and why we use them, visit our cookie
policy. We'll assume you're ok with this, but you can opt-out if you wish Cookie Settings.