To remarket based on customer types or basket value you need to enable this, rather than dynamic remarketing.
Depending on page this needs to be output via a GTM lookup table, customHTML or inline code:
- pagetype=PURCHASE
- pagetype=CART
- pagetype=PRODUCT
For ecommerce website using dc.js a newer method of enabling remarketing is possible using customDimensions for ecomm_pagetype, ecomm_totalvalue, ecomm_prodid: http://analytics.blogspot.co.uk/2014/03/tailored-ads-better-results-dynamic.html
//Dynamic remarketing attributes for ecommerce – Scope=pageScope TBC
//”pagetype” : “”, // cd015 reserved slot for {{page.type}}
//”paymentstep” : “”, // cd016 reserved slot for {{pagePaymentStep}}
//”ecomm_prodid” : “”, // cd017 reserved slot for {{cartProducts[n].sku}}
//”ecomm_pname” : “”, // cd018 reserved slot for {{cartProducts[n].name}}
//”ecomm_pcat” : “”, // cd019 reserved slot for {{cartProducts[n].category}}
//”rec_prodid” : “”, // cd020 reserved slot for {{recommendationProducts[n].sku}}
Help pages
- google.com/adwords/answer/310335
- google.com/tagmanager/answer/3002580
- https://www.dropbox.com/s/d883lxracxijf3j/Adwords%20Remarketing%20Tag%20with%20custom%20parameters%20via%20GTM%20-%20Andr%C3%A9%20Mafei.pdf
CustomHTML example based on the discussion here:
First add a JavaScript Variable:
Then map to this in the GTM remarketing tag:
This remarketing tag will need to be triggered on:
Then add this custom HTML triggered on /success/ OR /cart/ or /product/ page:
<script>
// Adwords Remarketing Custom Parameters
window.dataLayer = window.dataLayer || [];
var uri = window.location.pathname;
var remarketing_page_type = null;
var google_tag_params = [];
if ((uri.indexOf(‘/’) == 0) || (uri.indexOf(‘/index’) == 0)) {
remarketing_page_type= ‘home’;
} else if (uri.indexOf(‘/checkout/onepage/success’) == 0) {
remarketing_page_type= ‘purchase’;
} else if (uri.indexOf(‘/checkout/onepage’) == 0) {
remarketing_page_type= ‘checkout’;
} else if (uri.indexOf(‘/checkout/cart’) == 0) {
remarketing_page_type= ‘cart’;
} else if (uri.match(‘^/(category_1|category_2)/?([a-zA-Z0-9_-]+|?.+)$’) == 0) {
remarketing_page_type= ‘category’; // ASSUME category pages end /category_1/xxx
} else if (uri.match(‘^/.+-[0-9]{4,20}/?(?.+)?$’) == 0) {
remarketing_page_type= ‘products’; // ASSUME product pages end /xxx-1234
} else if (uri.indexOf(‘/nsearch’) == 0) {
remarketing_page_type= ‘searchresults’;
} else {
remarketing_page_type= ‘other’;
}
// Adwords Custom Remarketing mapping
dataLayer.push({
“google_tag_params”: {
“ecomm_pagetype”: remarketing_page_type, // home|category|searchresults|product|cart|purchase|other
“ecomm_totalvalue”: dataLayer.cart.total, // Change to cart value OR product viewed value. Currency TBC
“ecomm_prodid”: dataLayer.cartProducts[0].sku, // MUST be same as GoogleProducts xml Feed
“ecomm_pname”: dataLayer.cartProducts[0].name, // optional – use arrays for multiple products
“ecomm_pcat”: dataLayer.cartProducts[0].category, // optional – use arrays for multiple products
“ecomm_rec_prodid””: dataLayer.recommendationProducts[0].sku, //optional
// Auth logged-in variables
“user_isReturningSession” : “true”, // y|n users is returning visitor?
“user_isRegistered” : dataLayer.visitorLoginState, // y|n users has an account?
“user_isReturnCustomer”: dataLayer.visitorExistingCustomer, // y|n users has transacted already
“user_memberType” : “free member”, // Free Member, Premium Member, Enterprise Member
“user_ageRange” : “20-25”,// Age range
“user_gender” : “male”,// Gender
“user_customerQualityScore” : “high”,// Customer Quality Score – High, Med, Low
“user_highSpenderScore”: dataLayer.visitorLifetimeValue,//High Spender Score: High,Med,Low
“user_loyaltyScore” : “high”, // Loyalty Score – High, Med, Low
// Now run Adwords remarketing code
event”: “fire_remarketing_tag”
});
</script>