Dynamic Creative Optimisation (DCO)

How to create thousands of audio assets in seconds! πŸš€

DCO stands for dynamic creative optimisation. In advertising, DCO technology rapidly builds multiple iterations of an ad using the same base creative, while tailoring parts of the ad based on audiences, context and past performance. This helps the ad resonate with consumers.

Why is Dynamic Creative Optimisation Important?

In today’s world, consumers can see thousands of ads a day. Therefore, it’s more important than ever for brands to engage customers with messaging and creative that resonates. DCO helps advertisers and agencies deliver more relevant, informative and impactful ad experiences.

In addition, DCO helps advertisers improve scale and efficiency. Rather than creating multiple versions of the same ad for different locales and audiences, DCO does it for them.

Get Started

One of the many reasons for creating a script is so that it can be reused for different voices, and also for different personalisation parameters.

For example lets imagine we are writing an audio advert for a local fast food restaurant (Epic Burgers). We could write the following:

<as:section name="main"> 
  Feeling Hungry, looking for something to eat!
  why not try our new double quarter pounder from epic burgers.
	Come and visit us at Baldwin Street Bristol.
</as:section>

Perfect you might say! But lets imagine this business is doing well and now has many different locations from which they now sell Epic Burgers. We could create a script for each one right? Wrong! Lets instead use a special bit of script syntax known as a placeholder tag, which is shown in the below example:

<as:section name="main"> 
  Feeling Hungry, looking for something to eat!
  why not try our new double quarter pounder from epic burgers.
  Come and visit us at <as:placeholder id="location">your local resturant</as:placeholder>
</as:section>

A placeholder tag allows bits of a script to be replaced dynamically during the speech creation call without having to create a new script. This tag has two elements:

  • The id field is used to identify which piece of text is going to be set during the speech call.
  • The content between the placeholder in this case (your local restaurant) will be the default text spoken.

An end-to-end example of this would like as follows:

import audiostack
import os

## Add your API key below...
audiostack.api_key = "APIKEY"

text = """<as:section name="main"> 
  Feeling Hungry, looking for something to eat!
  why not try our new double quarter pounder from epic burgers.
  Come and visit us at <as:placeholder id="location">your local restaurant</as:placeholder>
</as:section>
"""
print("Creating your script from provided text...")
script = audiostack.Content.Script.create(scriptText=text)

voice = "sara"

print(f"Generating speech for {voice}")
speech = audiostack.Speech.TTS.create(scriptItem=script, audience={"location" : "Hyde Park, London"}, voice=voice)

mix = audiostack.Production.Mix.create(speechItem=speech)
print("Downloading your MP3")
encoder = audiostack.Delivery.Encoder.encode_mix(productionItem=mix,preset="mp3")
encoder.download(fileName=f"{script.scriptName}__{voice}",path=".")

This means that our resultant speech file will now say:

...........Come and visit us at Hyde Park, London

But equally this can be personalised for 1000s of different locations. Or even different brands.

<as:section name="main"> 
  Feeling Hungry, looking for something to eat!
  why not try our new double quarter pounder from <as:placeholder id="brand"></as:placeholder>.
  Come and visit us at <as:placeholder id="location">your local restaurant</as:placeholder>
</as:section>

πŸ‘

Remember a script can contain many placeholders!

Placeholders can reuse the same ID should you wish to refer to the same thing more than once.


What’s Next