See what scripts the installation wizard applies to your store.
Overview
As part of the installation process, a number of scripts which power different Dotdigital features are applied automatically to your site. This article details those changes.
Site and ROI tracking
The site tracking script is applied before the the closing </body>
tag of all the pages on your website.
<script src="https://r1-t.trackedlink.net/_dmpt.js" type="text/javascript"></script>
The ROI tracking script is inserted on the post purchase page of your site.
<script src="https://r1-t.trackedlink.net/_dmpt.js" type="text/javascript"></script>
<script> _dmTrack("CheckOutAmount", %%ORDER_AMOUNT%%); </script>
Abandoned carts
To power the abandoned carts module we apply the following scripts:
1. Web behavior tracking
2. CartInsight
3. Order success
Web behavior tracking
The Web behavior tracking script is inserted before the </head>
tag of each site page.
var dm_insight_id ='uniqueID';
(function(w,d,u,t,o,c){w['dmtrackingobjectname']=o;c=d.createElement(t);c.async=1;c.src=u;t=d.getElementsByTagName
(t)[0];t.parentNode.insertBefore(c,t);w[o]=w[o]||function(){(w[o].q=w[o].q||[]).push(arguments);};w[o]('track');
})(window, document, '//static.trackedweb.net/js/_dmptv4.js', 'script', 'dmPt');
CartInsight
This script will be placed before the </body>
tag of each page of your site.
// <<< Dotdigital Abandoned cart script >>>
var dmPt = dmPt ? dmPt : {};
// Change this value to true if you want to enable guest abandoned cart
dmPt.enableGuestAbandonedCart = false;
// Id or selector expression to return the newsletter sign up forms of your store
dmPt.newsletter_form_id="#ContactFooter";
!function(u){function e(t){var e,n,r,i=(e=t.target,n="input[type=email]",(r=e.querySelector(n))&&r.value?r.value:null);i&&a(i)}function a(t){n("dm-subscriber",t,365)}function n(t,e,n){var r;e&&((r=new Date).setTime(r.getTime()+24*n*60*60*1e3),u.cookie=t+"="+e+"; expires="+r.toGMTString()+"; path=/")}function t(t){for(var e=t+"=",n=u.cookie.split(";"),r=0;r<n.length;r++){for(var i=n[r];" "==i.charAt(0);)i=i.substring(1,i.length);if(0==i.indexOf(e))return i.substring(e.length,i.length)}return null}dmPt&&(dmPt.enableGuestAbandonedCart&&u.querySelectorAll(dmPt.newsletter_form_id).forEach(function(t){t.addEventListener("submit",e,!1)}),dmPt.emailSubmitted=t("dm-subscriber"),a(dmPt.emailSubmitted),dmPt.cartId=t("cart"),n("dm-cart",dmPt.cartId,15))}(document);
{% if customer.email and customer.accepts_marketing %}
dmPt("identify", "{{ customer.email }}");
{% else %}
if(dmPt.enableGuestAbandonedCart && dmPt.emailSubmitted && dmPt.emailSubmitted !== ""){
dmPt("identify", dmPt.emailSubmitted);
}
{% endif %}
if(dmPt.cartId && dmPt.cartId !== ""){
dmPt("cartInsight", {
"programID": %programID%,
"cartDelay": %cartDelay%,
"cartID": dmPt.cartId, //This value is retrieved from a Shopify cookie
"cartPhase": "CUSTOMER_LOGIN",
"currency": "{{ shop.currency }}",
"subtotal": {{ cart.total_price }}/100,
"discountAmount": {{ cart.original_total_price | minus: cart.total_price }}/100,
"taxAmount": 0,
"grandTotal": {{ cart.total_price }}/100,
"cartUrl": "{{ shop.url }}/cart/{% for item in cart.items %}{{item.variant_id}}:{{ item.quantity }}{% if forloop.last == false %},{% endif %}{% endfor %}",
"lineItems": [
{% for item in cart.items %}
{
"sku": "{{ item.sku }}",
"name": "{{ item.title }}",
"description": "{{ item.product.description | strip_html | escape | strip_newlines }}",
"category": "{% for collection in item.product.collections %}{{ collection.title }} {% endfor %}",
"other": "{% for tag in product.tags %}{{ tag }} {% endfor %}",
"unitPrice": {{ item.original_price }}/100,
"salePrice": {{ item.price }}/100,
"quantity": {{ item.quantity }},
"totalPrice": {{ item.line_price }}/100,
"imageUrl": "{{ item.image | img_url: 'small' | prepend:'https:'}}",
"productUrl": "{{ shop.url }}{{ item.url}}",
} {% if forloop.last == false %},{% endif %}
{% endfor %}
]
});
}
Order success
This script is implemented on the Order Processing page of your site.
var dm_insight_id ='uniqueID';
(function(w,d,u,t,o,c){w['dmtrackingobjectname']=o;c=d.createElement(t);c.async=1;c.src=u;t=d.getElementsByTagName
(t)[0];t.parentNode.insertBefore(c,t);w[o]=w[o]||function(){(w[o].q=w[o].q||[]).push(arguments);};w[o]('track');
})(window, document, '//static.trackedweb.net/js/_dmptv4.js', 'script', 'dmPt');
// <<< Dotdigital Abandoned cart script >>>
var dmPt = dmPt ? dmPt : {};
// Change this value to true if you want to enable guest abandoned cart
dmPt.enableGuestAbandonedCart = false;
!function(i){function t(t){for(var n=t+"=",r=i.cookie.split(";"),e=0;e<r.length;e++){for(var d=r[e];" "==d.charAt(0);)d=d.substring(1);if(0==d.indexOf(n))return d.substring(n.length,d.length)}return""}dmPt.enableGuestAbandonedCart&&(dmPt.emailSubmitted=t("dm-subscriber")),dmPt.cartId=t("dm-cart")}(document);
{% if customer.email and customer.accepts_marketing %}
dmPt("identify", "{{ customer.email }}");
{% else %}
if(dmPt.enableGuestAbandonedCart && dmPt.emailSubmitted && dmPt.emailSubmitted !== ""){
dmPt("identify", dmPt.emailSubmitted);
}
{% endif %}
if(dmPt.cartId && dmPt.cartId !== ""){
dmPt("cartInsight", {
"programID": %programID%,
"cartDelay": %cartDelay%,
"cartID": dmPt.cartId,
"cartPhase": "ORDER_COMPLETE",
"grandTotal": {{ total_price | money_without_currency }},
"currency": "{{ shop.currency }}",
"subtotal": {{ total_price | money_without_currency }},
"discountAmount": 0,
"taxAmount": 0,
"cartUrl": "{{ shop.url }}",
"lineItems": []
});
}
Chat
If you choose to install the Dotdigital Chat widget through the installation wizard, we apply the chat script to each page of your site.
<script>
window._ddgChatConfig = {
apiSpace: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
urlBase: 'https://webchat.dotdigital.com'
};
(function(d, s, id){
var js, cjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = 'https://webchat.dotdigital.com/widget/bootstrap.js';
cjs.parentNode.insertBefore(js, cjs);
}(document, 'script', 'ddg-chat-widget'));
</script>