/************ TAGX dynamic tags ************************/ (function() { var tagger = new TAGX.Tagger(); TAGX.config = {}; var data = {"page":{"url":{"protocol":"http","path":"/2013/12/15/health/the-selling-of-attention-deficit-disorder.html"}},"static":{"env":{"domain_js_https":"static01.nyt.com","domain_js":"static01.nyt.com","domain_event_tracker":"et.nytimes.com"}},"propensity":{"p":""},"sourceApp":"nyt-noSourceApp","TAGX":{"ID":"8663b7b6565a9a4a5a4d13f01855d225","L":{"sessionIndex":"2","sessionStart":"1482370019810","isNewSession":"0","lastRequest":"1482370171191","prevRequest":"1482370073318","adv":"1","a7dv":"1","a14dv":"1","a21dv":"1","activeDays":"[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]","firstReferrer":"","firstLanding":"http://adhddrugslongterm.com/References/Drug_Makers_Are_Biggest_Donors_for_Advocacy_Group-The_New_York_Times(2016-11-12_3-27-16PM).html","firstSeen":"1482358435042","browserSession":"1","pageIndex":"5","totalSessionTime":"151381","avgSessionTime":"26754"}},"agentID":"8ff58c6d865af3eeb96f7dc462a62418"}; var foldl=function(c,d,a){if(1>a.length)return d;var b=a.shift();return foldl(c,c(d,b),a)},getData=function(c,d){return foldl(function(a,b){try{if(void 0===a[b]){if(!0===d){if(""===b)return a;a[b]={};return a[b]}return""}!0===d&&"object"!==typeof a[b]&&(a[b]={});return a[b]}catch(c){return""}},data,c.split("."))};TAGX.data={get:getData,set:function(c,d){var a=c.split("."),b=a.pop();getData(a.join("."),!0)[b]=d}}; (function () { var utils = TAGX.Utils; /* utility functions copied from tagx-js. * could be removed from here once deployed in tagx-js, * but should confirm they have not diverged. */ utils.isEmptyValue = function(value) { return (typeof value === 'undefined' || value === null || value === ''); }; utils.getValue = function(val, defVal, retNullStr) { var argLen = arguments.length; var value = val; var defaultValue = ''; var returnNullString = false; if (argLen === 2) { returnNullString = defVal; } else if (argLen === 3) { defaultValue = defVal; returnNullString = retNullStr; } if (utils.isEmptyValue(value)) { if (utils.isEmptyValue(defaultValue)) { return (returnNullString === true ? 'null' : ''); } else { return defaultValue.toLowerCase ? defaultValue.toLowerCase() : defaultValue; } } if (typeof value === 'object') { if (value instanceof Array) { return value.join('|').toLowerCase(); } else { return utils.stringifyJson(value); } } return value.toLowerCase ? value.toLowerCase() : value; }; utils.mergeObjects = function(target, source, skip) { var k; for (k in source) { if (source.hasOwnProperty(k)) { if (!utils.isEmptyValue(source[k]) && (utils.isEmptyValue(target[k]) || skip !== true)) { target[k] = source[k]; } } } }; utils.wordCountSize = function (count) { if (count < 100) { return 'BLURB_Under_100'; } else if (count < 400) { return 'SUPER_SHORT_100_399'; } else if (count < 800) { return 'SHORT_400_799'; } else if (count < 1200) { return 'MEDIUM_800_1199'; } else if (count < 1600) { return 'LONG_1200_1600'; } else { return 'HEAVE_Over_1600'; } }; // we often pass the whole query string to GA; it sometimes includes an // email address. sending email addresses to GA violates GA's PII policy. // this function takes a query string, and returns the query string with // key/value pairs of the form *email=user@domain.tld replaced with // *email=email_block // // some real life examples (w/ PII redacted!): // - bt_email=user%40domain.tld&bt_ts=xxxxxx&referer= // - email=user@domain.tld&id=xxxxxxxx&group=nl&product=mm // - exit_uri=http%3a%2f%2fmobile.nytimes.com%2f&email=user%40domain.tld // utils.redactEmailAddressesFromQueryString = function(queryString) { if(queryString && typeof queryString === 'string') { return queryString.split('&').map(function(queryStringEntry) { return queryStringEntry.replace(/email=.+(@|%40).+\..+/, 'email=email_block'); }).join('&'); } else { return queryString; } }; /* end utility functions copied from tagx-js */ var url, qsMap, sourceApp, urlparts, nytm_v, dim21_asset_type, query_fix; var getMetaTag = utils.getMetaTag; var asset_url = "http://www.nytimes.com/2013/12/15/health/the-selling-of-attention-deficit-disorder.html"; var subs = ""; if ('string' === typeof subs) { if (subs === '') { subs = [{}]; } else { try { subs = JSON.parse(subs); } catch (err) { console.error('Error parsing "user.subscription.subscriptions"', err); subs = [{}]; } } } if ((!Array.isArray(subs)) || subs.length === 0) { subs = [{}]; } var getUid = function() { var uid = 0; var td = TAGX.data.get("TAGX"); if (uid === 0 || !uid || uid === 1) { if (td.L && td.L.uid) { return td.L.uid; } return null; } else { return uid; } }; var isEmptyValue = TAGX.Utils.isEmptyValue; var zeroPadding = function (val) { return (val < 10 ? '0' + val : val); }; var pdateFormat = function(date) { var match; if (date instanceof Date) { return [date.getFullYear(), zeroPadding(date.getMonth() + 1), zeroPadding(date.getDate())].join('-'); } else if (typeof date === 'string' && (match = /(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/.exec(date)) && match.length === 7) { return match.splice(1, 3).join('-'); } return ''; }; var ptimeFormat = function (dtStr) { var match; if (typeof dtStr === 'number') { var date = new Date(dtStr); return [ pdateFormat(date), [zeroPadding(date.getHours()), zeroPadding(date.getMinutes())].join(':') ].join(' '); } else if (typeof dtStr === 'string' && (match = /(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/.exec(dtStr)) && match.length === 7) { return [pdateFormat(dtStr), match.splice(1, 2).join(':')].join(' '); } return ''; }; var getSubscriberSince = function() { var date; var int = (typeof subs[0].purchaseDate === 'number') ? subs[0].purchaseDate : undefined; if (typeof subs[0].purchaseDate === 'string') { int = parseInt(subs[0].purchaseDate, 10); } if (typeof int === 'number') { date = new Date(int); } return pdateFormat(date); }; var getValue = TAGX.Utils.getValue; try { qsMap = utils.QsTomap(); sourceApp = getMetaTag('sourceApp'); urlparts = (function (url) { return [url[0], (url[1] ? url[1].split('#')[0] : '')]; })(window.location.href.split('?')); nytm_v = (function (nytmv) { return nytmv && nytmv.hasOwnProperty('v') ? nytmv.v : ''; })(utils.getMeterValue('v')); dim21_asset_type = (function (asset_type) { if (asset_type === 'SectionFront' && /(international|www|mobile)\.(stg\.)?nytimes\.com\/(index\.html)?$/.test(asset_url)) { return 'nyt_homepage'; } return asset_type; })("Article"); query_fix = (function () { if (sourceApp === 'nyt-search' && !isEmptyValue(location.hash) && /^#\//.test(location.hash)) { return '?q=' + location.hash.split('/')[1]; } return ''; })(); var canonical_url = (asset_url || urlparts[0]); var ga_location = canonical_url + query_fix; // DATG-972 if(qsMap.hasOwnProperty('gclid')) { ga_location += (ga_location.indexOf('?') > -1 ? '&' : '?') + 'gclid=' + qsMap['gclid']; } // DATG-988 if(qsMap.hasOwnProperty('dclid')) { ga_location += (ga_location.indexOf('?') > -1 ? '&' : '?') + 'dclid=' + qsMap['dclid']; } var targetedSourceApp = function() { if([ 'nyt-v5', 'nyt4', 'nytv', 'blogs', 'nytcooking', 'NYT-Well', 'SEG', 'games-crosswords', 'myaccount', 'nyt-search', 'MOPS', 'mow', 'HD' ].indexOf(sourceApp) > -1) { return sourceApp; } else { return ''; } } TAGX.GoogleAnalyticsConfig = TAGX.GoogleAnalyticsConfig || {}; TAGX.GoogleAnalyticsConfig.Level1 = function() { var base = { id: "UA-58630905-1", // tracker: 'c3p0', createOptions: { cookieName: 'walley', cookieDomain: '.nytimes.com', name: 'r2d2' }, fieldObject: { transport: 'beacon', location: ga_location, dimension1: canonical_url, dimension11: getValue("", qsMap.contentCollection, true), dimension42: getValue(getMetaTag('sourceApp'), 'nyt4', true), dimension51: targetedSourceApp(), dimension60: getUid() || 'null', dimension62: getValue("", true), dimension63: getValue("8ff58c6d865af3eeb96f7dc462a62418", true), dimension64: getValue(false, true), dimension65: getValue("anon", true), dimension2: TAGX.Utils.redactEmailAddressesFromQueryString(urlparts[0] + (urlparts[1] ? '?' + urlparts[1] : '')), dimension6: getValue("", qsMap.module, true), //Referring_Module dimension7: getValue("", qsMap.pgtype, true), //Referring_Page_Type dimension8: getValue("", qsMap.region, true), //Referring_Region dimension59: getUid(), dimension61: getValue(nytm_v, true), dimension66: getValue(631, true), dimension67: getValue("", true), //Is_News_Subscriber dimension68: getValue(getMetaTag('channels'), true), //Channels contentGroup1: getValue("Health", getMetaTag('CG'), true).toLowerCase(), contentGroup2: getValue("", getMetaTag('SCG'), true).toLowerCase(), contentGroup3: getValue(getMetaTag('PT'), true).toLowerCase(), contentGroup4: getValue(getMetaTag('PST'), true).toLowerCase(), dimension3: TAGX.Utils.redactEmailAddressesFromQueryString(getValue(urlparts[1], true)), dimension5: /^paidpost/.test(window.location.hostname) ? 1 : 0, dimension20: getValue("", true), dimension22: getValue(ptimeFormat(1387083600000), ptimeFormat(getMetaTag('ptime')), true), dimension129: getValue(new Date().getHours(), true), dimension130: getValue(TAGX.Utils.getCookie('NYT-wpAB'), ''), dimension133: getValue(TAGX.data.get('TAGX.ID'), ''), dimension121: getValue("" + "", true), //Print_section dimension92: getValue(subs[0].offerChainId, true), dimension95: getValue(getSubscriberSince(), true), dimension96: getValue(subs[0].bundle, true), dimension128: getValue(TAGX.Utils.getCookie('nyt.np.https-everywhere'), true), // flag for https internal opt-in dimension72: getValue("", qsMap.mccr, true), dimension73: getValue("", qsMap.mcdt, true), dimension119: getValue("", true) } }; TAGX.Utils.mergeObjects(base.fieldObject, {}); if (typeof getUid() === 'number' && getUid() !== 0) { base.createOptions.userId = getUid(); } return base; } TAGX.GoogleAnalyticsConfig.Level2 = function() { var base = TAGX.GoogleAnalyticsConfig.Level1(); TAGX.Utils.copyObj(base.fieldObject, { dimension4: getValue(getMetaTag('CG'), true), dimension10: getValue(null, true), dimension13: getValue(null, true), dimension14: getValue("science_desk", true), dimension15: getValue("earned", true), dimension16: getValue(null, true), dimension17: getValue(100000002578298, getMetaTag('articleid'), true), dimension18: getValue(["ALAN SCHWARZ"], getMetaTag('byl').replace(/^[Bb]y /, ''), true), dimension19: getValue("The Selling of Attention Deficit Disorder", getMetaTag('hdl'), true), dimension21: getValue(dim21_asset_type, getMetaTag('PT'), true), dimension23: getValue("Health", getMetaTag('CG'), true), dimension25: getValue("", getMetaTag('SCG'), true), dimension9: getValue(document.referrer.split('?')[0], true), //Referring_Page dimension12: getValue(getMetaTag('SCG'), true), dimension43: getValue(["Adderall (Drug)","Attention Deficit Hyperactivity Disorder","Drugs (Pharmaceuticals)"], getMetaTag('des'), true), dimension44: getValue(["Shire PLC"], getMetaTag('org'), true), dimension45: getValue("", getMetaTag('per'), true), dimension46: getValue("", getMetaTag('geo'), true), dimension24: getValue("", true), dimension38: getValue("National", true), dimension39: getValue("News", getMetaTag('tom'), true), dimension40: getValue("The New York Times", getMetaTag('cre'), true), dimension50: getValue(getMetaTag('PST'), true), //Page SubType dimension32: getValue("", true), // Collection_Name dimension33: getValue("", true), // Collection_Name dimension81: getValue("http://www.nytimes.com/2013/12/15/health/the-selling-of-attention-deficit-disorder.html", true), dimension135: getValue("", true), dimension52: getValue(getMetaTag('applicationName'), true), dimension53: getValue("", true) }); return base; }; TAGX.GoogleAnalyticsConfig.Level3 = function() { var base = TAGX.GoogleAnalyticsConfig.Level2(); TAGX.Utils.copyObj(base.fieldObject, { dimension26: getValue("", true), //Publish_Year_Web dimension27: getValue("", true), //Publish_Date_Web dimension28: getValue("", true), //Publish_Day_of_Week_Web dimension29: getValue("", true), //Publish_Time_of_Day dimension30: getValue("2015-01-28-01", true), //Publish_Last_Update_Web dimension48: getValue("", true), //Publish_Month_Web // sprint 69 (BX-6594) dimension31: getValue(TAGX.$('*[data-total-count]').last().data('totalCount'), true), //Character_Count dimension34: getValue("", getMetaTag('tone'), true), //Content_Tone dimension36: getValue("", getMetaTag('slug'), true), //Slug dimension37: getValue("", true), //Word_Count dimension101: getValue("", true) //Multi-lingual_asset }); return base; }; } catch (e) { url = '//' + "et.nytimes.com" + '/pixel?' + utils.mapToQs({ subject: 'ga-debug', url: window.location.href, payload: utils.stringifyJson({ error: { message: e.message || 'unknown error', stack: e.stack || 'no stack trace available' } }), doParse: utils.stringifyJson(['payload']) }); TAGX.$('').css({'border-style':'none'}).attr({height:1,width:1,src:url}).appendTo('body'); } })(); // Tags tagger.define("page.dom.custom", function (callback) { TAGX.$.domReady(function () { callback(function (params, callback) { var tagCtx = this; if (params.length > 0) { TAGX.$(TAGX).one(params[0], function (eventData, eventData2) { if (typeof tagCtx.eventsData === 'undefined') { tagCtx.eventsData = {}; } tagCtx.eventsData[params[0]] = eventData2 || eventData || {}; callback(true); }); } }); }); } );tagger.tag('adx-ab-allocation proxy').repeat('many').condition(function (callback) { TAGX.Ops.on.call(this, "page.dom.custom", ["abtest"], callback); }).run(function() {var event = (this.eventsData ? this.eventsData.abtest : null); if (event) { new NYTD.EventTracker().track(event); if (event.module !== null) { event.module = null; } } });tagger.tag('NYT4 - BI js analytics path variable').run(function() {var static_jsHost_tmp = TAGX.data.get('page.url.protocol') === 'https' ? TAGX.data.get('static.env.domain_js_https') : TAGX.data.get('static.env.domain_js'); window.bi_analytics_js_path = "//" + static_jsHost_tmp + "/bi/js/analytics/nyt4/"; });tagger.tag('ET Module Impressions').repeat('many').condition(function (callback) { TAGX.Ops.on.call(this, "page.dom.custom", ["module-impression"], callback); }).run(function() {var evtData = this.eventsData['module-impression']; var moduleName = evtData.module.toLowerCase(); if (moduleName !== "ad") { var priorityObj = { gateway: 1, growl : 1, notification : 1 }; if(priorityObj.hasOwnProperty(moduleName)) { evtData.priority = true; } NYTD.pageEventTracker.addModuleImpression(evtData); } });tagger.tag('ET Module Interactions').repeat('many').condition(function (callback) { TAGX.Ops.on.call(this, "page.dom.custom", ["module-interaction"], callback); }).run(function() {/* ET module interactions tag */ var evtData = this.eventsData["module-interaction"]; var moduleData = ('string' === typeof evtData.moduleData ? JSON.parse(evtData.moduleData) : evtData.moduleData) var moduleName = moduleData.module; var eventName = ('string' === typeof moduleData.event_name ? moduleData.event_name : moduleData.eventName); //console.log(moduleName); if ((moduleName || '').toLowerCase() !== 'ad' && (eventName || '').toLowerCase() !== 'heartbeat-page-depth' && moduleName !== 'PaidPostDriver') { if (evtData) { if(!evtData.tagxId) { evtData.tagxId = TAGX.data.get('TAGX.ID'); } evtData.webActiveDays = TAGX.data.get('TAGX.L.adv'); evtData.webActiveDaysList = TAGX.data.get('TAGX.L.activeDays'); } NYTD.EventTracker().track(evtData); } });tagger.tag('ET Proxy Page View Tracking').repeat('many').condition(function (callback) { TAGX.Ops.on.call(this, "page.dom.custom", ["track-page-view"], callback); }).run(function() {/* tracking page view via the proxy */ var datum = this.eventsData["track-page-view"]; if(datum) { // move // moduleData out of the way if(JSON) { var mData = JSON.parse(datum.moduleData), attr; for(attr in mData) { if(mData.hasOwnProperty(attr) && !datum.hasOwnProperty(attr)) { datum[attr] = mData[attr]; } } } else { // rename it to event data for now datum.eventData = datum.moduleData; } delete datum.moduleData; var extras = { sendMeta: true, useFieldOverwrites: true, buffer: false, collectClientData: true } datum.totalTime = 0; NYTD.EventTracker().track(datum, extras); } });tagger.tag('Facebook audience development pixel - sitewide').run(function() {( function(f,b,e,v,n,t,s){ n=window.fbq=function(){ var foo = n.callMethod? n.callMethod.apply(n,arguments): n.queue.push(arguments) }; n.version='1.0'; n.pixelId=e; n.queue=[]; t=f.createElement(b); t.async=true; t.src=v; s=f.getElementsByTagName(b)[0]; s.parentNode.insertBefore(t,s) })(document,'script','592202027582499','//connect.facebook.net/en_US/fbevents.js'); // Custom audience - simple standard event var meterCount = ''; var meterObject = TAGX.Utils.getMeterValue('v'); if (typeof meterObject !== 'undefined' && meterObject !== null) { meterCount = meterObject.v || ''; } function sendFb() { var facebookRegex = /\/FBIOS/i; fbq('reportPageView', { mc: meterCount, ad: parseInt(TAGX.data.get('TAGX.L.adv')), articleId: TAGX.Utils.getMetaTag('articleid'), fbk: TAGX.Utils.getCookie('krux_segs'), pScore: TAGX.data.get('propensity.p'), sourceApp: TAGX.Utils.getMetaTag('sourceApp'), fbBrowser: facebookRegex.test(navigator.userAgent), userAgent: navigator.userAgent }); } if(meterCount === '') { var sent = false; TAGX.EventProxy.on('nytd:meter:viewedCountUpdated', function(eventData) { if(!sent) { // we're trying to learn of the meter being updated to 1. // so we don't need this data if eventData.v is falsey. if(eventData && eventData.v) { meterCount = eventData.v; } sendFb(); sent = true; } }); setTimeout(function() { if(!sent) { sendFb(); sent = true; } }, 5000); } else { sendFb(); } });tagger.tag('iFramed NYT Page').run(function() {/* if this page is not the top document it should not be counted as a site wide page */ if (window.top != window.self) { var exceptions = { "/regilite": 1 }; var setSubject = function() { var defValue = "iframedNYTpage"; if (exceptions.hasOwnProperty( TAGX.data.get('page.url.path') ) || TAGX.data.get('sourceApp') === "nyt-fb-native-external-iframe") { defValue = "page"; } return defValue; }; NYTD = window.NYTD || {}; NYTD.EventTrackerPageConfig = NYTD.EventTrackerPageConfig || {}; NYTD.EventTrackerPageConfig.event = NYTD.EventTrackerPageConfig.event || {}; TAGX.Utils.copyObj(NYTD.EventTrackerPageConfig.event, { siteWide: { value: 0 }, subject: { value: setSubject() }, instant: { value: true } }); } });tagger.tag('Global - Krux control tag').run(function() {var script = document.createElement("script"); var html = "window.Krux||((Krux=function(){Krux.q.push(arguments)}).q=[]);" + "(function(){ var k=document.createElement('script');k.type='text/javascript';k.async=true;var m,src=(m=location.href.match(/\bkxsrc=([^&]+)\b/))&&decodeURIComponent(m[1]); k.src='https://cdn.krxd.net/controltag?confid=HrUwtkcl'; var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(k,s); })();"; TAGX.$(script).attr({ "class": "kxct", "data-id": "HrUwtkcl", "data-version": "async:1.7", "type": "text/javascript" }); script.text = html; TAGX.$("head").append(script) });tagger.tag('GA Config - Web').run(function() {try { TAGX.config = TAGX.config || {}; TAGX.config.GoogleAnalytics = TAGX.GoogleAnalyticsConfig.Level3(); } catch (e) { // this could be refactored into a function on TAGX.Utils, but leaving it for now // since we have a template injection here, and we're not having to update this block // much, in practice var url = '//' + TAGX.data.get('static.env.domain_event_tracker') + '/pixel?' + TAGX.Utils.mapToQs({ subject: 'ga-debug', url: window.location.href, payload: TAGX.Utils.stringifyJson({ error: { message: e.message || 'unknown error', stack: e.stack || 'no stack trace available' } }), doParse: TAGX.Utils.stringifyJson(['payload']) }); TAGX.$('').css({'border-style':'none'}).attr({height:1,width:1,src:url}).appendTo('body'); } });tagger.tag('Update ET with TAGX.ID').run(function() {if (NYTD && NYTD.pageEventTracker) { NYTD.pageEventTracker.updateData({tagxId:TAGX.data.get('TAGX.ID')}); NYTD.pageEventTracker.shortCircuit(); } });tagger.tag('Dynamic Yield Tag*').run(function() {/****** start of DY tag *****/ TAGX.$("
").appendTo('body'); window.DY = {scsec : 8765260 ,API: function(){(DY.API.actions = DY.API.actions || []).push(arguments)}}; (function(){ var d=document,e='createElement',a='appendChild',g='getElementsByTagName',m='getElementById',i=d[e]('iframe'); i.id=i.name='DY-iframe'; i.style.display='none'; i.width=i.height='1px';d[m]('DYSCR')[a](i); DY.x = function(w) { var d=w.document, s=d[e]('script');s.type='text/javascript'; s.async=true; s.src=('https:'==d.location.protocol?'http://st.dynamicyield.com'.replace('http:','https:') : 'http://st.dynamicyield.com')+'/ast?sec='+DY.scsec; d[g]('head')[0][a](s);}; var c = i.contentWindow.document; c.open().write(''); c.close(); })(); /******* end of DY tag *******/ });tagger.tag('ET Page Interactions').repeat('many').condition(function (callback) { TAGX.Ops.on.call(this, "page.dom.custom", ["page-interaction"], callback); }).run(function() {var eData = this.eventsData["page-interaction"]; if(eData) { delete eData.module; // to prevent confussion. NYTD.pageEventTracker.updateData(eData); if ((eData.depth && typeof eData.depth === 'number') || eData.priority === true) { // ideally we get priority flag in the event delete eData.priority; // to prevent confussion NYTD.pageEventTracker.shortCircuit(); } } });tagger.tag('GA pageview').run(function() {var tracker, createOptions, tracker2; var ga_cfg = (TAGX.config ? TAGX.config.GoogleAnalytics : null); var debugThruET = (TAGX.config ? TAGX.config.GoogleAnalyticsDebug : false); function trigger (name) { if (!debugThruET) { return; } TAGX.$(TAGX).trigger('ga-steps', { name: name }); } if (window.top == window.self || TAGX.data.get('sourceApp') == "nyt-fb-native-external-iframe") { trigger('ga_loaded'); if (ga_cfg && ga_cfg.id) { tracker = ga_cfg.tracker || 'ga'; tracker2 = (ga_cfg.createOptions && ga_cfg.createOptions.name ? ga_cfg.createOptions.name + '.' : ''); createOptions = ga_cfg.createOptions || '.nytimes.com'; (function(i,s,o,g,r,a,m){i.GoogleAnalyticsObject=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js',tracker); window[tracker]('create', ga_cfg.id, createOptions); if (ga_cfg.fieldObject) { window[tracker](tracker2 + 'set', ga_cfg.fieldObject); } window[tracker](tracker2 + 'send', 'pageview'); trigger('ga_fired'); } trigger('ga_done'); } });tagger.tag('Keywee Analytics Pixel').run(function() {var head = document.getElementsByTagName('head')[0], script; script = document.createElement('script'), script.setAttribute('type', 'text/javascript'); script.setAttribute('src', '//dc8xl0ndzn2cb.cloudfront.net/js/nytimes/v1/keywee.js'); head.appendChild(script); });tagger.tag('GA Outbound Clicks').run(function() {var ga_cfg = (TAGX.config ? TAGX.config.GoogleAnalytics : null); var tracker = ga_cfg ? ga_cfg.tracker || 'ga' : 'ga'; var tracker2 = (ga_cfg.createOptions && ga_cfg.createOptions.name ? ga_cfg.createOptions.name + '.' : ''); var $ = TAGX.$; $(document.body).on("click", "a", function (e) { if (!/nytimes|nytco/.test(e.currentTarget.hostname)) { window[tracker](tracker2+'send', 'event', 'out_bound_clicks', 'out_bound_click', $(e.currentTarget).text().trim() + '|' + e.currentTarget.href); } }); });tagger.tag('GA Share Tools Tracking').run(function() {'use strict'; var utils = TAGX.Utils; // This function comes from "GA newsletter event tracking" var trackEvent = (function () { var tracker, tracker2; var ga_cfg = (TAGX.config ? TAGX.config.GoogleAnalytics : null); if (ga_cfg && ga_cfg.id) { tracker = ga_cfg.tracker || 'ga'; tracker2 = (ga_cfg.createOptions && ga_cfg.createOptions.name ? ga_cfg.createOptions.name + '.' : ''); return function (category, action, label, non_interaction, cus_met) { var cmObj; var args = [tracker2 + 'send', 'event', category, action, label]; if (non_interaction) { cmObj = TAGX.Utils.copyObj(cmObj || {}, {nonInteraction: 1}); } if (cus_met) { cmObj = cmObj || {}; cmObj['metric' + cus_met] = 1; } if (cmObj) { args.push(cmObj); } window[tracker].apply(window, args); }; } return function () { console.debug('event ignored because there\'s no config/id'); }; })(); function shareName (name) { switch (name) { case "Share-facebook": return "facebook"; case "Share-email": return "email"; case "Share-twitter": return "twitter"; case "Share-pinterest": return "pinterest"; case "Share-linkedin": return "linkedin"; case "Share-google": return "google"; case "Share-reddit": return "reddit"; default: return name; } } function actionName (action) { if (action.match(/^Share-/)) { return "share: " + shareName(action); } else { switch (action) { case "ArticleTool-save": return "save"; default: return action; } } } TAGX.EventProxy.on('share-tools-click', function (dataObj) { var articleTitle = utils.getMetaTag('hdl'); switch (dataObj['region']) { case "Masthead": if (dataObj['eventName'] == "Share-ShowAll") { trackEvent('Share tools | Masthead', 'tools menu click', articleTitle, true); } else { trackEvent('Share tools | Masthead', 'Share: ' + shareName(dataObj['eventName']), articleTitle, true); } break; case "ToolsMenu": trackEvent('Share tools | Masthead', 'Tools menu: ' + actionName(dataObj['eventName']), articleTitle, true); break; case "Body": if (dataObj['eventName'] == "Share-ShowAll") { trackEvent('Share tools | Body', 'tools menu click', articleTitle, true); } else { trackEvent('Share tools | Body', 'Share: ' + shareName(dataObj['eventName']), articleTitle, true, 'share ' + shareName(dataObj['eventName'])); } break; case "ToolsMenu": break; } }); }); if (typeof TAGX.setTaggerReady === "function") { TAGX.setTaggerReady(); } else { TAGX.taggerReady=true; } })();