We’ve migrated our documentation to a new site, which means some URLs have changed.
Audience

Setting up re-targeting

Please note that this way of doing re-targeting has been superseded by native support in Cxense Advertising, which does not build on keyword-targeting. This enables the end-user to setup a taxonomy of possible target and avoid some of the pitfalls the old solution has.

This work is documented in 2 parts:

  1. Re-targeting template setup

  2. Re-targeting setup as part of the campaign definition.

Re-targeting scenarios

This page describes how to implement re-targeting campaigns where a client wants to show advertisements to visitors or customers of client web sites, possibly dependent on certain actions.

Examples of scenarios that would be useful for re-targeting campaigns:

  1. Any visitor that has visited any page the customer site.

  2. Only visitors that have visited a subsection or a specific page.

  3. Visitors that have created a subscription.

  4. Visitors that have put something into their shopping cart.

  5. Visitors that have made a purchase (to re-target them with offerings to get another sale).

Individual users must be tagged with information about what actions they have performed, or where in they are in this sales they cycle are. For scenario 1 and 2, this is achieved by including a specific tag on either all pages or the specific pages where re-targeting is wanted. For scenario 3-5, this is achieved by setting the tag when a specific action occurs on the customer site.

Tagging users on customer pages

Tagging the user is done using custom user profile parameters in the cX::Insight API. Full documentation is available here: Custom Parameters.

The custom parameter name must be prefixed with "cp_u_" when using the HTTP API to mark it as a value that should go into the user profile of the current user. If you use the builtin support for setting this through Javascript, the 'setUserProfileParameters'  method call will handle all of this for you, and you not have to think about the low-level details.

We recommend that you create names and values (max 15 characters) that are prefixed with the site or campaign name, so that the keywords don't collide with other keywords in the system. 

In the below examples, we create the keyword by appending the campaign name "FFMar2012" with the state, e.g. "Subscr", to get the keyword "FFMar2012Subscr" (max 15 characters). This style of custom parameter value makes the possibility of overlaps between various custom parameters small.

Simple example

Operations are pushed on a call queue, which is then executed after the script is loaded. This tag sets the custom parameter, and the standard analytics tag must be included after this in the source to send the event to Cxense Insight(See Complete script example). 

<script type="text/javascript">
  var cX = cX || {}; cX.callQueue = cX.callQueue || [];
  cX.callQueue.push(['setUserProfileParameters', {'ffmar2012':'FFMar2012Subcr'}]);
</script>

Advanced example

Advanced example where an if-block is used to decide which custom parameter value is set. In this case based on the url of the page the tag is shown on.

<script type="text/javascript">
  var cX = cX || {}; cX.callQueue = cX.callQueue || [];
  
  // Custom parameters: Tag user to use for later re-targeting:
  var customParameters = {};
  if (location.href.indexOf('subscriptionComplete') > -1) {
    customParameters.ffmar2012 = 'FFMar2012Subscr';
  }
  if (location.href.indexOf('purchaseCompleted') > -1) {
    customParameters.ffmar2012 = 'FFMar2012Purch';
  }
  
  cX.callQueue.push(['setUserProfileParameters', customParameters]);
</script>

Complete script example

This is a full example of how the script should look like when inserted to a page, including the required analytics tag (where the relevant account and site id must be inserted). It is important the the custom parameter is set before the analytics event is sent in.

 

<!-- Re-targeting tag for FFMar2012 campaign -->
<script type="text/javascript">
var cX = cX || {}; cX.callQueue = cX.callQueue || [];
cX.callQueue.push(['setUserProfileParameters', {'ffmar2012':'FFMar2012Subcr'}]);
</script>
  
<!-- cXense Insight -->
<div id="cX-root" style="display:none"></div>
<script type="text/javascript">
var cX = cX || {}; cX.callQueue = cX.callQueue || [];
cX.callQueue.push(['setSiteId', '<insert your site id here>']);
cX.callQueue.push(['sendPageViewEvent']);
</script>
 
<script type="text/javascript">
(function() { try { var scriptEl = document.createElement('script'); scriptEl.type = 'text/javascript'; scriptEl.async = 'async'; scriptEl.src = ('https:' == document.location.protocol) ? 'https://scdn.cxense.com/cx.js' : 'http://cdn.cxense.com/cx.js'; var targetEl = document.getElementsByTagName('script')[0]; targetEl.parentNode.insertBefore(scriptEl, targetEl); } catch (e) {};} ());
</script>

Setting up the campaign for re-targeting

The custom parameter value set on the user profile is available for normal keyword matching in Cxense Advertising.

An example of how to setup a re-targeting campaign, let's assume we have tagged the user with the following tag:

<script type="text/javascript">
  var cX = cX || {}; cX.callQueue = cX.callQueue || [];
  cX.callQueue.push(['setUserProfileParameters', {'ffmar2012':'FFMar2012Subcr'}]);
</script>

Then, in Cxense Advertising we can do:

  1. Create a campaign

  2. Add an advertisment to the campaign as normal.

  3. Add the keyword targeting feature in cxAd to either the campaign and/or the ad.

  4. Add the custom parameter value "ffmar2012subcr" as a keyword to either the campaign or advertisement as you would do a normal keyword

As a consequence, the ad will now be shown to users which have this keyword in their user profile. Whether or not to use a CPC, CPM or other product will depend on business choices and what suits your use case. If you set multiple keywords (for example on different pages), they will be sent to the adserver as separate keywords, and these are combined as an OR operation as usual for the adserver. In addition, an extra keyword is added which consists of all the keywords of a specific retargeting-category (in this example "ffmar2012"), joined with a space.

So if on one page the following tag is included:

<script type="text/javascript">
  var cX = cX || {}; cX.callQueue = cX.callQueue || [];
  cX.callQueue.push(['setUserProfileParameters', {'website1':'web1page'}]);
</script>

On a different page which the user also visits, the following tag is included (note that the same key, 'website1', is used in both tags):

<script type="text/javascript">
  var cX = cX || {}; cX.callQueue = cX.callQueue || [];
  cX.callQueue.push(['setUserProfileParameters', {'website1':'web1checkout'}]);
</script>

The following keywords will then be available for matching:

Keyword

Description

web1page

The first key set

web1checkout

The second key set, potentially on a different part of a website

web1page web1checkout

A synthetic keyword consisting of keywords from all of the "website1" category re-targeting keywords.

What this means is that you can also emulate an AND query to target users that have been both on the first and second page. This is done by adding a targeting keyword such as "web1page web1checkout" to the campaign or ad in Cxense Advertising. The match type of this keyword MUST be of the type BROAD, since you are not guaranteed that the order of the keywords will be constant over time. The ad will then only be shown if the user has both keywords ("web1page" and "web1checkout") in their profile. 

Only up 10 keywords per category are supported for the synthetic merged keyword.

Business model and charging for the re-targeting campaign

You can use any of Cxense Advertising's product models to charge for the re-targeting campaign.

If you already run a performance product, e.g, CPC keyword-targeted combo product, then you can just let the re-targeting campaign be a normal campaign on this product, and it's results will be yielded into the stream.

But, if using performance targeting, make sure that the max bid price is set high enough to get the wanted performance from the re-targeting campaign.

Alternatives to the blending into an existing performance product, is to set up a new product, and give that higher priority in the adspaces so that the impressions can be controlled to a finer degree.

Options include:

  • Creating a CPM keyword-targeted product to charge the campaign on a CPM basis 

  • Creating a CPM product with a fixed setup cost (the full fixed cost of the campaing) and zero cost per thousand impressions

  • Using frequency capping to make sure that a re-targeted ad is never shown more than X times in a Y time period

or combinations of the above.

Last updated: