1 min read

Dynamic Yield

Dynamic Yield is a personalization engine that displays the best products and journey for each customer.

Our API integration uses the headers sent by the apps to customise responses for app features with Dynamic Slot Content. Our frontend integrations forward analytics and engagement information directly to the Dynamic Yield API and decorate requests with the Dynamic Yield headers.

Set up


The app supports specific slots (specific slot identifiers) on some features. Slot support will grow with future releases. For our initial v25.0 release we support the following slots:

  • Home
    • Only supports existing banner types (see below).
  • Shop
    • scroll-top
  • Product List
    • scroll-top
  • Product Details
    • recommendations (after links, before carousels)
  • Cart
    • scroll-top
    • scroll-bottom

The Poq backend must then maps these slots to Dynamic Yield campaign identifiers / selectors. For example the top shop slot could be mapped as follows:

"ScreensConfiguration": {
"shop": [
"SlotName": "scroll-top",
"Selector": "poq-homescreen-recommendations",
"Type": "url-carousel"

The Home screen is mapped differently to an array of campaigns using their identifiers. Their index is used to inject these dynamic banners into the banner response.

"HomeBannersSelectorNames": [


Dynamic Yield supports the following Dynamic Content components as the type within the campaign template.

  • Image: image
  • Product Carousel (URL): carousel

Dynamic Content campaigns must adhere to the following template:

"index": "${type}", // Zero based index that represents the absolute index of the banner as it appears on the app.
"type": "${type}", // Dropdown with options 'image, carousel'.
"url": "${url}", // Either a link to image/gif content or a url to fetch recommendation carousel response.
"link": "${link}", // Deep link or web link.
"padding-right": "${padding-right}",
"padding-left": "${padding-left}",
"padding-top": "${padding-top}",
"iphone": "${iphone}", // Drop down - true/false.
"android": "${android}", // Drop down - true/false.
"tablet": "${table}" // Drop down - true/false.


  • Oct 23 - Initial release of Dynamic Yield integrations.