/********************** * Trade Desk Third Party JS Library Functions * * Set Launch Data Elements to: * BPS 'tradeDesk_advertiserID' : 'kvyhr8h' * BPS 'tradeDesk_uPixelID' : 'hupn6o1' * CAB 'tradeDesk_advertiserID' : '923to70' * CAB 'tradeDesk_uPixelID', : 'tishma1' * */ _launch.thirdPartyJS.tradeDesk = _launch.thirdPartyJS.tradeDesk || {}; (function (td) { td.advertiserID = _satellite.getVar('tradeDesk_advertiserID'); td.uPixelID = _satellite.getVar('tradeDesk_uPixelID'); /***************** * @function tradeDesk.loadTag * * loads the trade desk script */ td.loadTag = function () { _launch.util.appendScript(https://js.adsrvr.org/up_loader.1.1.0.js, { delayLoad: true, async: true, onload: '_launch.thirdPartyJS.tradeDesk.onload(' + ((arguments.length > 0 && arguments[0]) ? JSON.stringify(arguments[0]) : '') + ');' }); }; td.onload = function () { window.ttd_dom_ready(function () { if (typeof TTDUniversalPixelApi === 'function') { var universalPixelApi = new TTDUniversalPixelApi(); if ((arguments.length > 0 && arguments[0])) { universalPixelApi.init((td.advertiserID), [td.uPixelID], 'https://insight.adsrvr.org/track/up', arguments[0]); } else universalPixelApi.init((td.advertiserID), [td.uPixelID], 'https://insight.adsrvr.org/track/up'); } }); }; /************** * @function tradeDesk.parseData * * @param {obj} * parses an object into deliminated strings and passes them to the load function */ td.parseDataToStrings = function (obj) { for (var item in obj) { if (obj[item].length === 0) { delete obj[item]; continue; } if (typeof obj[item] === "string") continue; if (obj[item].length > 1) { let tempCopy = (obj[item].join('|')); obj[item] = tempCopy; continue; } let tempCopy = obj[item].toString(); obj[item] = tempCopy; } return obj; } /********* * @function tradeDesk.getCategoryData * * generates category view data to pass to load function */ td.getCategoryData = function (eventDetail, cartData) { if (typeof eventDetail.subdept !== 'undefined') cartData.td1 = [eventDetail.subdept]; if (typeof eventDetail.category !== "undefined") cartData.td2 = [eventDetail.category]; return cartData; } /***** * @function tradeDesk.getCartData * * generates cart data object to pass to load function * */ td.getCartData = function (adl_productArray, cartData) { /* Order ID */ if (/Order Confirmation/.test(analyticsDataLayer.pageType)) { if (analyticsDataLayer.order.tm_orderID) obj.orderid = [analyticsDataLayer.order.tm_orderID]; if (analyticsDataLayer.order.tm_cartTotal) obj.v = [analyticsDataLayer.order.tm_cartTotal]; } adl_productArray.forEach(adl_product => { cartData = td.getProductData(adl_product, cartData) }); return cartData; } /*********** * @function tradeDesk.getProductData * * generates product data to pass to load function or cart data function */ td.getProductData = function (adl_product, cartData) { /* td1 - Category */ if (typeof adl_product.category !== 'undefined') cartData.td1.push(adl_product.category); else if (typeof adl_product.Category !== 'undefined') cartData.td1.push(adl_product.Category); /* td2 - SubCategory */ if (typeof adl_product.subcategory !== "undefined") cartData.td2.push(adl_product.subcategory); /* td3 - Brand */ if (typeof adl_product.tm_Brand !== "undefined") cartData.td3.push(adl_product.tm_Brand); /* td4 - WebID */ if (typeof adl_product.tm_Product_Web_Id != "undefined") cartData.td4.push(adl_product.tm_Product_Web_Id); /* td5 - sku */ if (typeof adl_product.tm_sku_Id != "undefined") cartData.td5.push(adl_product.tm_sku_Id); /* td6 - prodName */ if (typeof adl_product.tm_prod_name !== "undefined") cartData.td6.push(adl_product.tm_prod_name); /* td7 - unitPrice */ if (typeof adl_product.unitPrice !== "undefined") { let tempPrice = parseFloat(adl_product.unitPrice); cartData.td7.push(tempPrice.toFixed(2)); /* td8 cartTotal */ cartData.td8[0] = cartData.td8[0] || 0; cartData.td8[0] = (parseFloat(cartData.td8[0]) + tempPrice).toFixed(2); } return cartData; } })(window._launch.thirdPartyJS.tradeDesk);