---------_Root.Head.cshtml-------
<script>
var trackingKey = 'utm_source'; //key of the tracking parameter
var trackingValue = "criteo"; // value of the tracking parameter
var cookie = "crtg_dd"; // cookie name where the dd value will be stored
var days = 30; // cookie life time in days
cr_readTracking(trackingKey, trackingValue);
function cr_readTracking(key, value) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
//cr_createCookie(cookie, 1, days);
var pair = vars[i].split("=");
if (pair[0] == key) {
if (pair[1] == value) {
cr_createCookie(cookie, 1, days);
}
else {
cr_createCookie(cookie, 0, days);
}
}
}
};
function cr_createCookie(cookie, value, days) {
var d = new Date();
d.setTime(d.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toUTCString();
document.cookie = cookie + "=" + value + ";" + expires + "; path=/";
};
</script>
------------index.cshtml-----------
@{
var customerEmail = EngineContext.Current.Resolve<IWorkContext>().CurrentCustomer.Email;
}
<script type="text/javascript">
var deviceType = /iPad/.test(navigator.userAgent) ? "t" : /Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Silk/.test(navigator.userAgent) ? "m" : "d";
window.criteo_q = window.criteo_q || [];
window.criteo_q.push(
{ event: "setAccount", account: ##### },
{ event: "setEmail", email: "@customerEmail" },
{ event: "setSiteType", type: deviceType },
{ event: "viewHome" }
);
</script>
----------CategoryTemplate.ProductsInGridOrLines.cshtml---------
@{
var customerEmail = EngineContext.Current.Resolve<IWorkContext>().CurrentCustomer.Email;
}
<script type="text/javascript">
var deviceType = /iPad/.test(navigator.userAgent) ? "t" : /Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Silk/.test(navigator.userAgent) ? "m" : "d";
window.criteo_q = window.criteo_q || [];
window.criteo_q.push(
{ event: "setAccount", account: #####},
{ event: "setEmail", email: "@customerEmail" },
{ event: "setSiteType", type: deviceType },
{ event: "viewList", item: [ @Model.Products[0].Id, @Model.Products[1].Id, @Model.Products[2].Id] }
);
</script>
---------ProductTemplateGroup.cshtml And ProductTemplateSimple-------------------
@{
var customerEmail = EngineContext.Current.Resolve<IWorkContext>().CurrentCustomer.Email;
}
<script type="text/javascript">
var deviceType = /iPad/.test(navigator.userAgent) ? "t" : /Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Silk/.test(navigator.userAgent) ? "m" : "d";
window.criteo_q = window.criteo_q || [];
window.criteo_q.push(
{ event: "setAccount", account: #####},
{ event: "setEmail", email: "@customerEmail" },
{ event: "setSiteType", type: deviceType},
{ event: "viewItem", item: @Model.Id }
);
</script>
------------ Cart.cshtml----------------
<script type="text/javascript">
var deviceType = /iPad/.test(navigator.userAgent) ? "t" : /Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Silk/.test(navigator.userAgent) ? "m" : "d";
window.criteo_q = window.criteo_q || [];
window.criteo_q.push(
{ event: "setAccount", account: #####},
{ event: "setEmail", email: "@customerEmail" },
{ event: "setSiteType", type: deviceType},
{
event: "viewBasket", item: [
@foreach (var item in @Model.Items)
{
var currencyWithPrice = (@item.UnitPrice).ToString();
currencyWithPrice = currencyWithPrice.Replace(",", "");
var currencyWithoutPrice = currencyWithPrice.Replace("?", "");
<text> {
'id': '@item.ProductId',
'price': '@currencyWithoutPrice',
'quantity': '@item.Quantity'
}, </text>
}
]
});
</script>
--------Completed.cshtml--------------
@{
var customerEmail = EngineContext.Current.Resolve<IWorkContext>().CurrentCustomer.Email;
var orderItems = EngineContext.Current.Resolve<IOrderService>().GetAllOrderItems(Model.OrderId, null, null, null, null, null, null);
}
<script type="text/javascript">
var deviceType = /iPad/.test(navigator.userAgent) ? "t" : /Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Silk/.test(navigator.userAgent) ? "m" : "d";
// Read the value of the cookie and return the value. In case the cookie is not found, return default value "0"
function cr_getCookie(c_name) {
var i, x, y, ARRCookies = document.cookie.split(";");
for (i = 0; i < ARRCookies.length; i++)
{
x = ARRCookies[i].substr(0, ARRCookies[i].indexOf("="));
y = ARRCookies[i].substr(ARRCookies[i].indexOf("=") + 1);
x = x.replace(/^\s+|\s+$/g, "");
if (x == c_name)
{
return unescape(y);
}
}
return "0";
}
// Sample function that shows how the deduplication value can be set by using the function cr_getCookie
window.criteo_q = window.criteo_q || [];
window.criteo_q.push(
{ event: "setAccount", account: #####},
{ event: "setEmail", email: "@customerEmail" },
{ event: "setSiteType", type: deviceType },
{
event: "trackTransaction",
id: @Model.OrderId,
deduplication: cr_getCookie("crtg_dd"),
item: [
@foreach (var item in orderItems)
{
<text> {
'id': '@item.Product.Id',
'price': '@item.Product.Price',
'quantity': '@item.Quantity'
}, </text>
}
]
});
</script>
---------------------------------- If the Post Is helpful Please Vote Up.
Thanks advance for watching my post
Best regard
Bibhuti Barai