How to advertise across multiple regions within a single ad campaign

Sometimes users need to be shown a product or an offer from their corresponding region due to the differences in prices and/or availability. However, it is not always possible to split campaign into sub-campaigns due to technical and business constraints. This is especially true for the advertisers who have just started with Criteo Commerce Marketing Solutions, and are yet to grow their website or app audience to its full potential. In this manual we will explain how to make region retargeting possible with the reasonable degree of accuracy and little efforts spent. This manual does not present implementation guidance, but rather describes detailed requirements to the campaign. Obtaining developer's assistance is strongly suggested.

Prerequisites

Overview

[[disclaimer-developer]]

How does this work?

Criteo performs product recommendation based on numerous factors the most important of which are: historical sales, historical basket and view events, sales and views similarities, best of categories. For the proposed setup we need to signal Criteo Engine about the event by sending region name in the tags and in the feed. Once the tag event is received Criteo establishes the match in real-time and is able to perform an approriate display.

Case 1. Products are strictly split by regions

This could be a jobs website where a unique job is offered in a particular location. Providing geographical information in the feed is enough to make the difference. Here is an example:

<ad>
    <id>
        <![CDATA[107722]]>
    </id>
    <title>
        <![CDATA[15 PhD positions in the area of magnesium implant imaging]]>
    </title>
    <url>
        <![CDATA[https://example.com]]>
    </url>
    <region>
        <![CDATA[New-York]]>
    </region>
    <experience>
        <![CDATA[job experience is not required]]>
    </experience>
    <offer_type>
        <![CDATA[SD]]>
    </offer_type>
    <category>
        <![CDATA[Research & Education, Clinical research, Instrumentation and Control Technology & Sensors, Research Associate]]>
    </category>
</ad>

Case 2. Identical products are present in different regions, but vary in prices

An example is an e-commerce store with multiple offers in different regions. The challenge is when product identifiers are identical across the regions. It is then necessary to make a distinction between them by prefixing location to identifiers both in the tags and in the feed.

Tags modification

Here is how modified listing tag might look like:

<!-- Criteo Category / Listing Tag -->
<script type="text/javascript" src="//static.criteo.net/js/ld/ld.js" async="true"></script>
<script type="text/javascript">
window.criteo_q = window.criteo_q || [];
var deviceType = /iPad/.test(navigator.userAgent) ? "t" : /Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Silk/.test(navigator.userAgent) ? "m" : "d";
window.criteo_q.push(
 { event: "setAccount", account: PARTNER_ID}, // Replace with your partner ID
 { event: "setEmail", email: "79054025255fb1a26e4bc422aef54eb4" }, // Can be an empty string 
 { event: "setSiteType", type: deviceType},
 { event: "viewList", item: ["moscow_ProductID_1", "moscow_ProductID_2", "moscow_ProductID_3"] });
</script> 
<!-- END Criteo Category / Listing Tag -->

Items in product, basket and transaction tags need to be modified by adding moscow_ to the product identifiers. Using geolocation service to determine user location and appending a city-specific prefix to all products within the region will require developer's help.

Feed modification

Similarly, product identifiers in the feed have to be concatenated with regional prefixes. If region name is present in the feed Criteo technical services can perform such concatenation for you. Ideally, all products have to be provided in a single feed. This will allow Criteo technical team to process your request more effeciently.

Here is an example of the feed:

<item>
    <g:id>moscow_4300063780</g:id>
    <g:item_group_id>moscow_10315574</g:item_group_id>
    <g:title>Golden bracelet with brilliants</g:title>
    <g:description> Metal: Gold.  Metal Color: Red. Stones: diamond 5 pcs., Weight 0.065. SKU: 10100095001K.</g:description>
    <g:link>https://example.com</g:link>
    <g:image_link>https:example.com/img.jpg</g:image_link>
    <g:brand>Cartier</g:brand>
    <g:mpn>10100095001К</g:mpn>
    <g:condition>new</g:condition>
    <g:availability>in stock</g:availability>
    <g:price>393</g:price>
    <g:sale_price>250</g:sale_price>
    <g:google_product_category>191</g:google_product_category>
    <g:product_type>Bracelet</g:product_type>
    <g:material>Gold</g:material>
    <g:color>Red</g:color>
    <g:custom_label_0>TMN</g:custom_label_0>
    <g:custom_label_1>moscow</g:custom_label_0>
</item>

Once feed and tags are modified please inform your account strategist so that he/she accomodates the changes on Criteo side by adding new setup. Depending on size of the feed for the setup to take full effect additional 6-24 hours might be required.

Special cases

There are factors Criteo cannot control - UX, geolocation service precision, users initial position in the funnel, i.e user might visit only homepage and then leave the website. Therefore with the single-campaign setup proposed in this article, Criteo cannot 100% guarantee that the banners will always show all products from the exact place where the user is located. In some cases, your account strategist might ask you to create an artificial feed with so-called branded products - generic advertising entities representing your product catalog. These branded products will be used to fill banner slots in cases when there isn't enough context.

For example, in the case of jewelry from the above, the item might look like this:

<item>
    <g:id>brandproduct1</g:id>
    <g:item_group_id>brandproduct1</g:item_group_id>
    <g:title> Diamonds and gold </g:title>
    <g:description> Shop beautiful and brilliant gold rings and diamond bands designed to perfection from Example.com </g:description>
    <g:link> https://example.com </g:link>
    <g:image_link> https://example.com/image.jpg </g:image_link>
    <g:brand> Example </g:brand>
    <g:condition>new</g:condition>
    <g:availability>in stock</g:availability>
    <g:price> 1000 </g:price>
    <g:sale_price> 500 </g:sale_price>
    <g:google_product_category>branded</g:google_product_category>
    <g:material>Gold</g:material>
    <g:color>Red</g:color>
</item>

Self-check with Accurate

[[accurate]]

If you have got any questions left please don't hesitate to contact us at support@criteo.com for great support experience.