Skip to main content
ACC - Broadcast Dynamic Optimisation - Workflow Details

Learn how Broadcast Dynamic Optimisation works for Adobe Campaign Classic

Updated over a week ago

Before you continue, if you're using broadcast straight splits, you want this workflow article.

Broadcast Dynamic Optimisation for Adobe Campaign Classic

Our Broadcast Dynamic Optimisation integration for Adobe Campaign Classic is a workflow snippet we provide to you that allows your instance of Adobe to ping our Jacquard API endpoints and retrieve language variants and dynamic testing proportions in real time.

This allows us to test and optimise language over a fixed period of time without having to rely on the classic "split test and wait for a winner" methodology. Instead, we are testing proportions, analysing live data and adjusting how many people receive each variant all over the course of your chosen send period.

Workflow snippet

The snippet uses standard Adobe Campaign Classic workflow activities. We refer to it as a snippet because it is designed to fit seamlessly into your current workflow design. This snippet is used in place of the standard email delivery activity for any email campaign you'd like to dynamically optimise with Jacquard.

The workflow activities you place around the snippet could be as simple as starting with an audience selection activity and concluding with an End, or you could have a much more complex configuration based on your needs.

Continue on for an in-depth look at each activity in the snippet and how they work together.

Campaign settings

The step labeled Campaign settings is a JavaScript activity. The code contacts the Jacquard Connect API service and retrieves the relevant campaign details, including the subject lines.

There's a lot happening in this activity to establish objects that are saved and referenced throughout the workflow and also to notify Jacquard a new experiment is beginning.

All you need to worry about each time is entering your:

  • vars.phraseeCampaignID = "XXXXXXXXXXXXXXXXXXX" // Jacquard experiment ID for this send

  • vars.phraseeProjectID = "XXXXXXXXXXXXXXXXXXX";

  • var optimiztaionDuration = 4 //hours;

The campaign and project IDs you enter help Adobe reach out to the proper Jacquard project, while the optimisation duration let's Jacquard know by when your send must be complete after you start your workflow.

Enrichment

This activity adds temporary columns to the recipients table. Jacquard will need these later to track the performance of the subject lines.

These columns are:

  • [language_variant_id]

  • [mab_batch_id]

  • [project_id]

  • [campaign_id]

SendResults-CheckForNextBatch

This activity is another JavaScript activity that serves two purposes.

First, this activity checks Adobe for any sent and results data related to this campaign and creates a results object. You may be wondering what happens when you first hit play on the workflow and there's no engagement data to send. Don't worry—this step skips over that bit the first time.

Once there is some engagement data to send, the workflow will pass it Jacquard so Jacquard can determine if the subject line proportions should be adjusted for subsequent batches.

Secondly, this activity will ask Jacquard if it should send a batch of messages, how many messages it should send and which subject lines should be assigned to what percentage of those messages.

If there's a new batch to send, Jacquard will say yes and send along a new batch object with all of the information required.

Split

If the previous step determined there's a new batch to send, this step splits off the number Jacquard needs for that batch and sends it along to the Test.

The remainder not assigned to the batch gets sent along the loop to the SendNewMABBatch step. Everyone else moves on down the Send Branch.

Loop

SendNewMABBatch

SendNewMABBatch is simply a Wait step. It holds the portion of your audience not selected for the latest batch and holds them in a queue for two minutes before passing them back to the SendResults-CheckForNextBatch step to await possible selection.

This loop will continue until all of your subscribers have been selected for distribution.

Send Branch

Test

This step checks the record count of the batch and confirms it is not zero. Sometimes, Jacquard may determine that there is either:

  1. Not enough engagement data yet to make a decision on another batch or...

  2. That there are no more subscribers left to create a batch.

If either of those is ever the case, it will tell the workflow not to put any subscribers into the batch. Then, this test just passes along the emptiness to the end of the workflow.

However, the majority of the time there will be subscribers in the batch. In that case, the Test sends them along to receive their subject line assignment.

AssignLanguageProportions

Here we have yet another JavaScript activity to read the subject line proportion information it received from Jacquard and use it to assign each of your batched subscribers a subject line for testing.

Added for Target Data

Next is an Enrichment activity that has no settings and is purely here to realign the data schema names.

Delivery

Aaand the grand finale: the Delivery. This activity sends your delivery and records the delivery ID.

When you're configuring your workflow for an individual campaign, this is spot where you'll choose the email you want to send. This can be done either by selecting a specific delivery or by creating a new delivery based on a template. It's very important the email selected here is completely configured and ready to send as if you were going to send it normally.

The best option to choose for your delivery is New, created from a template.

Now, you know what each step of the Broadcast Dynamic Optimisation Adobe workflow does.

Did this answer your question?