Dynamic Yield

Send your event data from RudderStack to Dynamic Yield.

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

  1. In your RudderStack dashboard, go to Directory > Destinations > Cloud Destinations and search for Dynamic Yield.
  2. 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 info
  • Status: Generally Available
  • Supported sources: Android, iOS , Web, Unity, AMP , Cloud, React Native , Flutter, Cordova, Warehouse, Shopify
  • Refer to it as DYNAMIC_YIELD in the Integrations object.

Connection modes
SourceCloud modeDevice modeHybrid mode
AMPsupportednot supportednot supported
Androidsupportednot supportednot supported
Cloudsupportednot supportednot supported
Cordovasupportednot supportednot supported
Fluttersupportednot supportednot supported
iOSsupportednot supportednot supported
React Nativesupportednot supportednot supported
Shopifysupportednot supportednot supported
Unitysupportednot supportednot supported
Warehousesupportednot supportednot supported
Websupportednot supportednot supported
Supported message types
SourceIdentifyPageTrackScreenGroupAlias
Cloud mode
Supported sourcessupportednot supportedsupportednot supportednot supportednot supported

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 identify call before sending it to Dynamic Yield.
warning
If your emails are already hash-encrypted, turning off this setting is recommended.

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 traitDynamic Yield property
userId
anonymousId
Required
user.id
events[].properties.cuid
session_id
context.sessionId
Required
session.custom
traits.email
context.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 eventDynamic Yield event
Product AddedAdd to Cart
Product RemovedRemove from Cart
Product Added to WishlistAdd to Wishlist
Order CompletedPurchase

For the above events, RudderStack maps the following properties to the Dynamic Yield properties:

RudderStack propertyDynamic Yield property
properties.value
properties.revenue
properties.price
properties.products[].value
properties.products[].revenue
properties.products[].price
Required
events[i].properties.value
properties.sku
properties.products[].sku
properties.product_id
properties.products[].product_id
Required
events[].properties.productId
events[].properties.cart[].productId
properties.quantity
properties.products[i].quantity
Required
events[].properties.quantity
events[].properties.cart[].quantity
properties.products[].price
Required
events[].properties.cart[].itemPrice
context.traits.userId
Required
user.id
context.sessionId
Required
session.custom
properties.order_idevents[].properties.uniqueTransactionId
properties.currencyevents[i].properties.currency
info
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.

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.
ActiveCampaign hybrid mode connection setting

Once done, you can send the returned experiment/variation data via RudderStack to other tools using a track call.


Questions? Contact us by email or on Slack