Dynamic Yield
4 minute read
Dynamic Yield is a personalization platform that lets you deliver personalized digital customer experiences. It lets you tailor content, products, and offers based on customer preferences.
Find the open source transformer code for this destination in the GitHub repository.
Setup
- In your RudderStack dashboard, go to Directory > Destinations > Cloud Destinations and search for Dynamic Yield.
- Connect your source and click Continue.
Connection settings
Configure the following settings to set up Dynamic Yield as a destination in RudderStack:
- Name: Assign a name to uniquely identify the destination.
- API Key: Enter your Dynamic Yield API key by logging in to your Dynamic Yield dashboard and going to Settings > API Keys.
Connection mode
| Destination Information | |||
|---|---|---|---|
| |||
Configuration settings
After completing the initial setup, configure the following settings to receive your data in Dynamic Yield correctly:
- Hash Email: If turned on, RudderStack hashes the email present in the
identifycall before sending it to Dynamic Yield.
If your emails are already hash-encrypted, turning off this setting is recommended.
- Consent management settings: Configure the consent management settings for the specified source by choosing the Consent management provider from the dropdown and entering the relevant consent category IDs. See Consent Management in RudderStack for more information on this feature.
Identify
You can use the identify call to identify known/unknown users in Dynamic Yield.
A sample identify call is shown below:
rudderanalytics.identify("user112", {
email: "alex@example.com"
}, {
context: {
sessionId: "16733896350494",
ip: "54.100.200.255"
}
})Traits mapping
RudderStack maps the following event traits to the Dynamic Yield properties:
| RudderStack trait | Dynamic Yield property |
|---|---|
userIdanonymousIdRequired | user.idevents[].properties.cuid |
session_idcontext.sessionIdRequired | session.custom |
traits.emailcontext.traits.email | hashedEmail |
Track
You can use the track call for recording ecommerce and custom events in Dynamic Yield.
See the Dynamic Yield documentation for a list of predefined events.
A sample track call is shown below:
rudderanalytics.track("Order Completed", {
order_id: "1234",
currency: "USD",
products: [{
product_id: "345676543",
price: 17.99,
quantity: 20
}, ],
}, {
context: {
traits: {
userId: "user123"
},
sessionId: "16733896350494",
}
})Supported mappings
RudderStack maps the following ecommerce events from RudderStack to Dynamic Yield:
| RudderStack event | Dynamic Yield event |
|---|---|
Product Added | Add to Cart |
Product Removed | Remove from Cart |
Product Added to Wishlist | Add to Wishlist |
Order Completed | Purchase |
For the above events, RudderStack maps the following properties to the Dynamic Yield properties:
| RudderStack property | Dynamic Yield property |
|---|---|
properties.valueproperties.revenueproperties.priceproperties.products[].valueproperties.products[].revenueproperties.products[].priceRequired | events[i].properties.value |
properties.skuproperties.products[].skuproperties.product_idproperties.products[].product_idRequired | events[].properties.productIdevents[].properties.cart[].productId |
properties.quantityproperties.products[i].quantityRequired | events[].properties.quantityevents[].properties.cart[].quantity |
properties.products[].priceRequired | events[].properties.cart[].itemPrice |
context.traits.userIdRequired | user.id |
context.sessionIdRequired | session.custom |
properties.order_id | events[].properties.uniqueTransactionId |
properties.currency | events[i].properties.currency |
RudderStack considers any other event apart from the ones mentioned above as a custom event and sends it to Dynamic Yield, along with all the associated properties.
Send experiments/campaigns related data
To capture the experiments/campaigns-related data rendered by Dynamic Yield and send it to other tools via RudderStack, use any of the following ways depending on your Dynamic Yield implementation:
- For client-side rendered experiments (loaded via the Dynamic Yield tags), use one of the Dynamic Yield API methods:
DYO.getRenderedObjectsOnPage(): Gets a list of campaigns rendered on the page.DYO.getUserObjectsAndVariations(): Gets a list of campaigns executed on the page.

- For server-side rendered experiments rendered via the Dynamic Yield choose variations API, the chosen variation’s information is available in the API response.
Once done, you can send the returned experiment/variation data via RudderStack to other tools using a track call.