PageSourceSearch

https://www.marketingdive.com/cpm-calculator-app/

html marketingdive.com collected 2026-09-24 07:03:25 UTC 135,314 bytes, 2,919 lines download raw bytes

1
2
3
4
5
6
7
8
9
10
11<!DOCTYPE html>
12<html class="no-js" dir="ltr" lang="en" prefix="og: https://ogp.me/ns# fb: https://ogp.me/ns/fb#">
13    <head>
14        <meta charset="utf-8">
15        <meta http-equiv="x-ua-compatible" content="ie=edge">
16        <meta name="viewport" content="width=device-width, initial-scale=1.0">
17        
18        
19
20        
21
22        
23        
24        
25        
26            <title>CPM Calculator | Marketing Dive</title>
27        
28
29        
30            
31                <meta name="description" content="Marketing news, voices and jobs for industry professionals.  Optimized for your mobile phone."/>
32            
33        
34
35        
36
37        
38
39        
40            <meta property="fb:pages" content="1856676501228243">
41        
42
43        
44            
45            
45<script>
46                window.dataLayer = window.dataLayer || [];
47                function gtag(){dataLayer.push(arguments);}
48                gtag('consent','default',{
49                    'ad_storage':'denied',
50                    'analytics_storage':'denied',
51                    'ad_user_data':'denied',
52                    'ad_personalization':'denied',
53                    'personalization_storage':'denied',
54                    'functionality_storage':'granted',
55                    'security_storage':'granted',
56                    'wait_for_update': 500
57                });
58                gtag("set", "ads_data_redaction", true);
59            </script>
59
60            
61            
61<script src="https://cmp.osano.com/AzqdtLT8Mqkut2TZ/991974d1-3bca-4b6d-93e4-fc7f0c35945c/osano.js"></script>
61
62            <style>
63                .osano-cm-widget{display: none;}
64            </style>
65            
65<script>
66                // Notify GTM when analytics consent is granted
67                // This ensures page_view tag re-fires with proper attribution data (source/medium)
68                // if it's initially triggered before analytics consent has been granted
69                Osano.cm.addEventListener("osano-cm-analytics", () => {
70                    gtag('event', 'analytics_consent_granted');
71                });
72                
73                window.Osano.cm.addEventListener("osano-cm-script-blocked", function (item) {
74                    console.log("Script blocked: " + item);
75                });
76                window.Osano.cm.addEventListener("osano-cm-cookie-blocked", function (item) {
77                    console.log("Cookie blocked: " + item);
78                });
79            </script>
79
80        
81
82
83        
84
85
86
87<script type="module" src="/static/js/dist/darkModeFaviconToggle.bundle.js?281219230926" ></script>
87
88
89
90<!-- ====== FAVICONS ======= -->
91<link rel="icon" type="image/x-icon" sizes="any" href="/favicon.ico?v=3" />
92<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=3">
93<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?v=3">
94<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png?v=3">
95<link rel="manifest" href="/site.webmanifest?v=3">
96<link rel="mask-icon" href="/safari-pinned-tab.svg?v=3" color="#5bbad5">
97<meta name="msapplication-TileImage" content="/mstile-150x150.png?v=3">
98<meta name="msapplication-TileColor" content="#603cba">
99<meta name="theme-color" content="#ffffff">
100
101        <link rel="alternate" type="application/rss+xml" title="Marketing Dive - Latest News Feed" href="https://www.marketingdive.com/feeds/news/"/>
102        
103        
104            <meta property="og:title" content="" />
105            <meta property="og:description" content="" />
106            <meta property="og:image" content="https://d12v9rtnomnebu.cloudfront.net/divesite/header_image_logos/marketing_dive_feed_header.jpg" />
107        
108
109        
110
111        
112        
113
114        <link rel="stylesheet" href="/static/css/dive_app.css?191219230926">
115
116        
117
118<script type="text/javascript" src="/static/js/ad_blocker_recovery.js?520919230926" defer></script>
118
119
120<!-- These are the 2 necessary scripts for the ad recovery message to work -->
121    
121<script data-osano="MARKETING" async src="https://fundingchoicesmessages.google.com/i/pub-8553262192892817?ers=1" nonce="RORABhIXgMhQdZXbks8fZQ"></script>
vendor: 1 bytes, line 121
121
122<script nonce="RORABhIXgMhQdZXbks8fZQ">(function() {function signalGooglefcPresent() {if (!window.frames['googlefcPresent']) {if (document.body) {const iframe = document.createElement('iframe'); iframe.style = 'width: 0; height: 0; border: none; z-index: -1000; left: -1000px; top: -1000px;'; iframe.style.display = 'none'; iframe.name = 'googlefcPresent'; document.body.appendChild(iframe);} else {setTimeout(signalGooglefcPresent, 0);}}}signalGooglefcPresent();})();</script>
122
123
124<!-- If the ad recovery message is blocked, this script shows a backup error message asking users to allow ads -->
125<script>(function(){/*
126
127    Copyright The Closure Library Authors.
128    SPDX-License-Identifier: Apache-2.0
129   */
130   'use strict';var aa=function(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}},ba="function"==typeof Object.create?Object.create:function(a){var b=function(){};b.prototype=a;return new b},k;if("function"==typeof Object.setPrototypeOf)k=Object.setPrototypeOf;else{var m;a:{var ca={a:!0},n={};try{n.__proto__=ca;m=n.a;break a}catch(a){}m=!1}k=m?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null}
131   var p=k,q=function(a,b){a.prototype=ba(b.prototype);a.prototype.constructor=a;if(p)p(a,b);else for(var c in b)if("prototype"!=c)if(Object.defineProperties){var d=Object.getOwnPropertyDescriptor(b,c);d&&Object.defineProperty(a,c,d)}else a[c]=b[c];a.v=b.prototype},r=this||self,da=function(){},t=function(a){return a};var u;var w=function(a,b){this.g=b===v?a:""};w.prototype.toString=function(){return this.g+""};var v={},x=function(a){if(void 0===u){var b=null;var c=r.trustedTypes;if(c&&c.createPolicy){try{b=c.createPolicy("goog#html",{createHTML:t,createScript:t,createScriptURL:t})}catch(d){r.console&&r.console.error(d.message)}u=b}else u=b}a=(b=u)?b.createScriptURL(a):a;return new w(a,v)};var A=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)};var B={},C=null;var D="function"===typeof Uint8Array;function E(a,b,c){return"object"===typeof a?D&&!Array.isArray(a)&&a instanceof Uint8Array?c(a):F(a,b,c):b(a)}function F(a,b,c){if(Array.isArray(a)){for(var d=Array(a.length),e=0;e<a.length;e++){var f=a[e];null!=f&&(d[e]=E(f,b,c))}Array.isArray(a)&&a.s&&G(d);return d}d={};for(e in a)Object.prototype.hasOwnProperty.call(a,e)&&(f=a[e],null!=f&&(d[e]=E(f,b,c)));return d}
132   function ea(a){return F(a,function(b){return"number"===typeof b?isFinite(b)?b:String(b):b},function(b){var c;void 0===c&&(c=0);if(!C){C={};for(var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),e=["+/=","+/","-_=","-_.","-_"],f=0;5>f;f++){var h=d.concat(e[f].split(""));B[f]=h;for(var g=0;g<h.length;g++){var l=h[g];void 0===C[l]&&(C[l]=g)}}}c=B[c];d=Array(Math.floor(b.length/3));e=c[64]||"";for(f=h=0;h<b.length-2;h+=3){var y=b[h],z=b[h+1];l=b[h+2];g=c[y>>2];y=c[(y&3)<<
133   4|z>>4];z=c[(z&15)<<2|l>>6];l=c[l&63];d[f++]=""+g+y+z+l}g=0;l=e;switch(b.length-h){case 2:g=b[h+1],l=c[(g&15)<<2]||e;case 1:b=b[h],d[f]=""+c[b>>2]+c[(b&3)<<4|g>>4]+l+e}return d.join("")})}var fa={s:{value:!0,configurable:!0}},G=function(a){Array.isArray(a)&&!Object.isFrozen(a)&&Object.defineProperties(a,fa);return a};var H;var J=function(a,b,c){var d=H;H=null;a||(a=d);d=this.constructor.u;a||(a=d?[d]:[]);this.j=d?0:-1;this.h=null;this.g=a;a:{d=this.g.length;a=d-1;if(d&&(d=this.g[a],!(null===d||"object"!=typeof d||Array.isArray(d)||D&&d instanceof Uint8Array))){this.l=a-this.j;this.i=d;break a}void 0!==b&&-1<b?(this.l=Math.max(b,a+1-this.j),this.i=null):this.l=Number.MAX_VALUE}if(c)for(b=0;b<c.length;b++)a=c[b],a<this.l?(a+=this.j,(d=this.g[a])?G(d):this.g[a]=I):(d=this.l+this.j,this.g[d]||(this.i=this.g[d]={}),(d=this.i[a])?
134   G(d):this.i[a]=I)},I=Object.freeze(G([])),K=function(a,b){if(-1===b)return null;if(b<a.l){b+=a.j;var c=a.g[b];return c!==I?c:a.g[b]=G([])}if(a.i)return c=a.i[b],c!==I?c:a.i[b]=G([])},M=function(a,b){var c=L;if(-1===b)return null;a.h||(a.h={});if(!a.h[b]){var d=K(a,b);d&&(a.h[b]=new c(d))}return a.h[b]};J.prototype.toJSON=function(){var a=N(this,!1);return ea(a)};
135   var N=function(a,b){if(a.h)for(var c in a.h)if(Object.prototype.hasOwnProperty.call(a.h,c)){var d=a.h[c];if(Array.isArray(d))for(var e=0;e<d.length;e++)d[e]&&N(d[e],b);else d&&N(d,b)}return a.g},O=function(a,b){H=b=b?JSON.parse(b):null;a=new a(b);H=null;return a};J.prototype.toString=function(){return N(this,!1).toString()};var P=function(a){J.call(this,a)};q(P,J);function ha(a){var b,c=(a.ownerDocument&&a.ownerDocument.defaultView||window).document,d=null===(b=c.querySelector)||void 0===b?void 0:b.call(c,"script[n
135once]");(b=d?d.nonce||d.getAttribute("nonce")||"":"")&&a.setAttribute("nonce",b)};var Q=function(a,b){b=String(b);"application/xhtml+xml"===a.contentType&&(b=b.toLowerCase());return a.createElement(b)},R=function(a){this.g=a||r.document||document};R.prototype.appendChild=function(a,b){a.appendChild(b)};var S=function(a,b,c,d,e,f){try{var h=a.g,g=Q(a.g,"SCRIPT");g.async=!0;g.src=b instanceof w&&b.constructor===w?b.g:"type_error:TrustedResourceUrl";ha(g);h.head.appendChild(g);g.addEventListener("load",function(){e();d&&h.head.removeChild(g)});g.addEventListener("error",function(){0<c?S(a,b,c-1,d,e,f):(d&&h.head.removeChild(g),f())})}catch(l){f()}};var ia=r.atob("aHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vaW1hZ2VzL2ljb25zL21hdGVyaWFsL3N5c3RlbS8xeC93YXJuaW5nX2FtYmVyXzI0ZHAucG5n"),ja=r.atob("WW91IGFyZSBzZWVpbmcgdGhpcyBtZXNzYWdlIGJlY2F1c2UgYWQgb3Igc2NyaXB0IGJsb2NraW5nIHNvZnR3YXJlIGlzIGludGVyZmVyaW5nIHdpdGggdGhpcyBwYWdlLg=="),ka=r.atob("RGlzYWJsZSBhbnkgYWQgb3Igc2NyaXB0IGJsb2NraW5nIHNvZnR3YXJlLCB0aGVuIHJlbG9hZCB0aGlzIHBhZ2Uu"),la=function(a,b,c){this.h=a;this.j=new R(this.h);this.g=null;this.i=[];this.l=!1;this.o=b;this.m=c},V=function(a){if(a.h.body&&!a.l){var b=
136   function(){T(a);r.setTimeout(function(){return U(a,3)},50)};S(a.j,a.o,2,!0,function(){r[a.m]||b()},b);a.l=!0}},T=function(a){for(var b=W(1,5),c=0;c<b;c++){var d=X(a);a.h.body.appendChild(d);a.i.push(d)}b=X(a);b.style.bottom="0";b.style.left="0";b.style.position="fixed";b.style.width=W(100,110).toString()+"%";b.style.zIndex=W(2147483544,2147483644).toString();b.style["background-color"]=ma(249,259,242,252,219,229);b.style["box-shadow"]="0 0 12px #888";b.style.color=ma(0,10,0,10,0,10);b.style.display=
137   "flex";b.style["justify-content"]="center";b.style["font-family"]="Roboto, Arial";c=X(a);c.style.width=W(80,85).toString()+"%";c.style.maxWidth=W(750,775).toString()+"px";c.style.margin="24px";c.style.display="flex";c.style["align-items"]="flex-start";c.style["justify-content"]="center";d=Q(a.j.g,"IMG");d.className=A();d.src=ia;d.style.height="24px";d.style.width="24px";d.style["padding-right"]="16px";var e=X(a),f=X(a);f.style["font-weight"]="bold";f.textContent=ja;var h=X(a);h.textContent=ka;Y(a,
138   e,f);Y(a,e,h);Y(a,c,d);Y(a,c,e);Y(a,b,c);a.g=b;a.h.body.appendChild(a.g);b=W(1,5);for(c=0;c<b;c++)d=X(a),a.h.body.appendChild(d),a.i.push(d)},Y=function(a,b,c){for(var d=W(1,5),e=0;e<d;e++){var f=X(a);b.appendChild(f)}b.appendChild(c);c=W(1,5);for(d=0;d<c;d++)e=X(a),b.appendChild(e)},W=function(a,b){return Math.floor(a+Math.random()*(b-a))},ma=function(a,b,c,d,e,f){return"rgb("+W(Math.max(a,0),Math.min(b,255)).toString()+","+W(Math.max(c,0),Math.min(d,255)).toString()+","+W(Math.max(e,0),Math.min(f,
139   255)).toString()+")"},X=function(a){a=Q(a.j.g,"DIV");a.className=A();return a},U=function(a,b){0>=b||null!=a.g&&0!=a.g.offsetHeight&&0!=a.g.offsetWidth||(na(a),T(a),r.setTimeout(function(){return U(a,b-1)},50))},na=function(a){var b=a.i;var c="undefined"!=typeof Symbol&&Symbol.iterator&&b[Symbol.iterator];b=c?c.call(b):{next:aa(b)};for(c=b.next();!c.done;c=b.next())(c=c.value)&&c.parentNode&&c.parentNode.removeChild(c);a.i=[];(b=a.g)&&b.parentNode&&b.parentNode.removeChild(b);a.g=null};var pa=function(a,b,c,d,e){var f=oa(c),h=function(l){l.appendChild(f);r.setTimeout(function(){f?(0!==f.offsetHeight&&0!==f.offsetWidth?b():a(),f.parentNode&&f.parentNode.removeChild(f)):a()},d)},g=function(l){document.body?h(document.body):0<l?r.setTimeout(function(){g(l-1)},e):b()};g(3)},oa=function(a){var b=document.createElement("div");b.className=a;b.style.width="1px";b.style.height="1px";b.style.position="absolute";b.style.left="-10000px";b.style.top="-10000px";b.style.zIndex="-10000";return b};var L=function(a){J.call(this,a)};q(L,J);var qa=function(a){J.call(this,a)};q(qa,J);var ra=function(a,b){this.l=a;this.m=new R(a.document);this.g=b;this.i=K(this.g,1);b=M(this.g,2);this.o=x(K(b,4)||"");this.h=!1;b=M(this.g,13);b=x(K(b,4)||"");this.j=new la(a.document,b,K(this.g,12))};ra.prototype.start=function(){sa(this)};
140   var sa=function(a){ta(a);S(a.m,a.o,3,!1,function(){a:{var b=a.i;var c=r.btoa(b);if(c=r[c]){try{var d=O(P,r.atob(c))}catch(e){b=!1;break a}b=b===K(d,1)}else b=!1}b?Z(a,K(a.g,14)):(Z(a,K(a.g,8)),V(a.j))},function(){pa(function(){Z(a,K(a.g,7));V(a.j)},function(){return Z(a,K(a.g,6))},K(a.g,9),K(a.g,10),K(a.g,11))})},Z=function(a,b){a.h||(a.h=!0,a=new a.l.XMLHttpRequest,a.open("GET",b,!0),a.send())},ta=function(a){var b=r.btoa(a.i);a.l[b]&&Z(a,K(a.g,5))};(function(a,b){r[a]=function(c){for(var d=[],e=0;e<arguments.length;++e)d[e-0]=arguments[e];r[a]=da;b.apply(null,d)}})("__h82AlnkH6D91__",function(a){"function"===typeof window.atob&&(new ra(window,O(qa,window.atob(a)))).start()});}).call(this);
141
142   window.__h82AlnkH6D91__("WyJwdWItODU1MzI2MjE5Mjg5MjgxNyIsW251bGwsbnVsbCxudWxsLCJodHRwczovL2Z1bmRpbmdjaG9pY2VzbWVzc2FnZXMuZ29vZ2xlLmNvbS9iL3B1Yi04NTUzMjYyMTkyODkyODE3Il0sbnVsbCxudWxsLCJodHRwczovL2Z1bmRpbmdjaG9pY2VzbWVzc2FnZXMuZ29vZ2xlLmNvbS9lbC9BR1NLV3hVc0lBMXlKVmRQQWNGaXJQX1lGUTdENkpIZVNZUGV6bWNOM216TmJmYWhldlNobXpBVHkzVzlPLU5LV3MyNkx5cWVXRUx3YnRhZzN1MnZEWHVkZnFFSkVRXHUwMDNkXHUwMDNkP3RlXHUwMDNkVE9LRU5fRVhQT1NFRCIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFVoRGZtbFAtR2RTZUhBa1lVY2VmWTFQYXh1cDNFdmhndlJDNVM4bms3S2t1TElaUXBFQ05VZTIySUNjcGx4eF9oeVlveHJTdy1iU3FjUkhKZWwyWU1NalFcdTAwM2RcdTAwM2Q/YWJcdTAwM2QxXHUwMDI2c2JmXHUwMDNkMSIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFgzMm02dWJvVVVwaXJ1b1VQMmhkY2R1S2U5S0pzaDlGRDloMDlWOTlYTkpyZkVTRW5HNzh4Vm0yUDZXdjBDNmkwMXZ4Ui11V25ZVVdlWEI3dmNCd1c5cFFcdTAwM2RcdTAwM2Q/YWJcdTAwM2QyXHUwMDI2c2JmXHUwMDNkMSIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFh0cXRhOEVpaV9LUVI4VHNLaDFVUGJ5TFlnNU1ocDFqdVNFemltQVFFeDFjRDJxalJhTjNDM21hSkt1VkVqdGZ5bTZjSXg5emVaLU5IazZMbTE5QjB1ZGdcdTAwM2RcdTAwM2Q/c2JmXHUwMDNkMiIsImRpdi1ncHQtYWQiLDIwLDEwMCwiY0hWaUxUZzFOVE15TmpJeE9USTRPVEk0TVRjXHUwMDNkIixbbnVsbCxudWxsLG51bGwsImh0dHBzOi8vd3d3LmdzdGF0aWMuY29tLzBlbW4vZi9wL3B1Yi04NTUzMjYyMTkyODkyODE3LmpzP3VzcXBcdTAwM2RDQUUiXSwiaHR0cHM6Ly9mdW5kaW5nY2hvaWNlc21lc3NhZ2VzLmdvb2dsZS5jb20vZWwvQUdTS1d4V0QtdnVGQVVZRE9STnItSmY2SnJGSGhYYU1QNlo5NG1CTjFyQ2g5M1FvdVNLSmtJcFBlLW1Uc2NpdHNWOEZ0aUdIdzBFZ1QtOEMzbHpFblJMczduZ0pQQVx1MDAzZFx1MDAzZCJd");
143</script>
143
144
145        
146
147<script src="/static/js/jquery_360.min.js?520919230926"></script>
147
148
149        
150
151<script>
152    
153    // waitForTriggerHandler() is library for queuing up javascript to be stored and then executed when a trigger
154    // function is called. You can push() any number of functions which will be stored unless and until trigger()
155    // is called. Once trigger() is called any future functions that you push() in will be executed immediately.
156    // It is safe to call .trigger() multiple times. Any arguments passed to .trigger() will also be passed along
157    // to the associated function
158
159    function waitForTriggerHandler() {
160        var function_queue = [];
161        var trigger_arguments = [];
162        this._triggered = false;
163
164        this.push = function(fn) {
165            if (this._triggered) {
166                // just run it immediately if handler has already been triggered
167                fn.apply(null, trigger_arguments);
168            }
169            else {
170                // otherwise add to the queue to run later
171                function_queue.push(fn);
172            }
173        };
174
175        this.trigger = function() {
176            // any arguments passed to trigger(foo, bar, baz) will also be passed along to functions in the queue
177
178            // first convert any arguments to an array
179            trigger_arguments = Array.prototype.slice.call(arguments);
180            while (function_queue.length){
181                // for each function in the queue, pop it off and then execute it while passing in any
182                // args that may have been passed to trigger().
183                function_queue.pop().apply(null, trigger_arguments);
184                // The "null" above is for the value of "this".
185                // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#Parameters
186            }
187            this._triggered = true;
188        }
189
190    }
191    
192    // set up waitToLoadAds handler
193    window.waitToLoadAds = new waitForTriggerHandler();
194    // We set up the triggers for this below, they depend on whether we're loading lytics on the page
195</script>
195
196
197
198
199    
199<script type="text/javascript">
200        
201        window.googletag = window.googletag || {};
202        googletag.cmd = googletag.cmd || [];
203
204        // initialize callback (source: https://learn.lytics.com/product-docs/lytics-javascript-tag/receiving-data-from-lytics)
205        !function(){"use strict";var o=window.jstag||(window.jstag={}),r=[];function n(e){o[e]=function(){for(var n=arguments.length,t=new Array(n),i=0;i<n;i++)t[i]=arguments[i];r.push([e,t])}}n("send"),n("mock"),n("identify"),n("pageView"),n("unblock"),n("getid"),n("setid"),n("loadEntity"),n("getEntity"),n("on"),n("once"),n("call"),o.loadScript=function(n,t,i){var e=document.createElement("script");e.async=!0,e.src=n,e.onload=t,e.onerror=i;var o=document.getElementsByTagName("script")[0],r=o&&o.parentNode||document.head||document.body,c=o||r.lastChild;return null!=c?r.insertBefore(e,c):r.appendChild(e),this},o.init=function n(t){return this.config=t,this.loadScript(t.src,function(){if(o.init===n)throw new Error("Load error!");o.init(o.config),function(){for(var n=0;n<r.length;n++){var t=r[n][0],i=r[n][1];o[t].apply(o,i)}r=void 0}()}),this}}();
206
207
208        // custom init + lytics default install tag from https://activate.getlytics.com/connect?aid=2751
209        // see https://learn.lytics.com/understanding/product-docs/lytics-javascript-tag/configuration#configuration-options
210        
211            var lyticsCid = '44fda7674f94228540d8fba6786f9770';
212            console.log('You are using the Lytics Prod account');
213        
214
215        
216
217        jstag.init({
218            src: `https://c.lytics.io/api/tag/${lyticsCid}/latest.min.js`,
219            pageAnalysis: {
220                dataLayerPull: {
221                    disabled: true
222                }
223            }
224        });
225        jstag.pageView();
226
227        
228        (function(){
229            var sailthru_cookie, sailthru_user_id;
230            function read_cookie(cookieName) {
231              var re = new RegExp('[; ]'+cookieName+'=([^\\s;]*)');
232              var sMatch = (' '+document.cookie).match(re);
233              if (cookieName && sMatch) return unescape(sMatch[1]);
234              return '';
235            }
236            sailthru_cookie = read_cookie('sailthru_hid');
237            if (sailthru_cookie.length > 56) {
238              sailthru_user_id = sailthru_cookie.slice(32,56);
239              jstag.send({ st_profile_id: sailthru_user_id });
240            }
241        })();
242
243        
244        
245        
246        
247        jstag.call('entityReady', () => waitToLoadAds.trigger());
248        setTimeout(() => waitToLoadAds.trigger(), 1000);  // also trigger lytics if it's taking too long
249
250        
251        
252        waitToLoadAds.push(function (lytics_data) {
253            // lytics_data won't be defined if lytics failed to load correctly. In that case
254            // we don't need to set any segments.
255            if (lytics_data && lytics_data.segments) {
256                googletag.cmd.push(function() {
257                    googletag.pubads().setTargeting("LyticsSegments", lytics_data.segments);
258                });
259            }
260        });
261
262        function getUID(id) {
263            window.dataLayer.push({'user_id': id});
264        };
265        jstag.getid(getUID);
266
267
268    </script>
268
269
270
271
272        
273        
273<script src="/jsi18n/"></script>
273
274
275        
276
277        
278            
279
280
281<script>
282    // Initialize dataLayer empty array for GTM events
283    window.dataLayer = window.dataLayer || [];
284    window.dataLayer.push({
285        'site': 'Marketing Dive',
286    });
287    // wrapper function to push GTM events to dataLayer
288    pushGTMEvent = (eventObject) => {
289        // if window.datalayer is not defined, then set to an empty array
290        window.dataLayer.push(eventObject);
291    };
292</script>
292
293<!-- Google Tag Manager -->
294<script>
vendor: 327 bytes, lines 294-298
294(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
295new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
296j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
297'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
298})(window,document,'script','dataLayer','
298GTM-55G8WRR
vendor: 3 bytes, line 298
298');
298</script>
298
299<!-- End Google Tag Manager -->
300
301<script>
302    let eventParams = {};
303    
304    
305    const gtmEventObject  = {
306        event: 'page.content',
307        'page.content': {
308            v:11, // seer version
309            ...eventParams
310        }
311    };
312    window.pushGTMEvent(gtmEventObject);
313    window.lyticsLookup = {"any_agriculture_dive_subs": "aa", "any_automotive_dive_subs": "ab", "any_banking_dive_subs": "ac", "any_biopharma_dive_subs": "ad", "any_cstore_dive_subs": "ae", "any_cfo_dive_subs": "af", "cfo_dive_tech_valid_subs": "ag", "any_cfo_balance_subs": "ah", "any_cio_dive_subs": "ai", "any_construction_dive_subs": "aj", "any_cybersecurity_dive_subs": "ak", "any_higher_ed_dive_subs": "al", "any_k12_dive_subs": "am", "any_facilities_dive_subs": "an", "any_fashion_dive_subs": "ao", "any_food_dive_subs": "ap", "any_grocery_dive_subs": "aq", "any_healthcare_dive_subs": "ar", "any_hotel_dive_subs": "as", "any_hr_dive_subs": "at", "any_legal_dive_subs": "au", "any_manufacturing_dive_subs": "av", "any_marketing_dive_subs": "aw", "any_medtech_dive_subs": "ax", "any_mobile_marketer_subs": "ay", "any_multifamily_dive_subs": "az", "any_packaging_dive_subs": "a0", "any_payments_dive_subs": "a1", "any_pharmavoice_subs": "a2", "any_restaurant_dive_subs": "a3", "any_retail_dive_subs": "a4", "any_smart_cities_dive_subs": "a5", "any_social_media_today_subs": "a6", "any_supplychain_dive_subs": "a7", "any_transport_dive_subs": "a8", "any_utility_dive_subs": "a9", "any_waste_dive_subs": "ba", "lt_15_million_company_revenue": "bb", "lt_20_million_company_revenue": "bc", "gt_100m_company_revenue": "bd", "gt_500m_company_revenue": "be", "250k_to_at_least_5m_company_revenue": "bf", "5m_to_20m_company_revenue": "bg", "20m_5000m_company_revenue": "bh", "all_cfos": "bi", "retail_holiday_edition_valid_subscribers": "bj", "banking_dive_valid_subscribers": "bk", "biopharma_dive_valid_subscribers": "bl", "cfo_dive_valid_subscribers": "bm", "cio_dive_valid_subscribers": "bn", "construction_dive_valid_subscribers": "bo", "education_dive_higher_ed_valid_subscribers": "bp", "education_dive_k12_valid_subscribers": "bq", "food_dive_valid_subscribers": "br", "grocery_dive_valid_subscribers": "bs", "healthcare_dive_valid_subscribers": "bt", "hr_dive_valid_subscribers": "bu", "hr_dive_talent_valid_subscribers": "bv", "marketing_dive_valid_subscribers": "bw", "medtech_dive_valid_subscribers": "bx", "mobile_marketer_valid_subscribers": "by", "restaurant_dive_valid_subscribers": "bz", "retail_dive_valid_subscribers": "b0", "retail_dive_dtc_valid_subscribers": "b1", "smart_cities_dive_valid_subscribers": "b2", "social_media_today_valid_subscribers": "b3", "supply_chain_dive_valid_subscribers": "b4", "transport_dive_valid_subscribers": "b5", "utility_dive_valid_subscribers": "b6", "waste_dive_valid_subscribers": "b7", "all_target_readers": "b8", "automotive_dive_high_quality_target_readers": "b9", "banking_dive_high_quality_target_readers": "ca", "biopharma_dive_target_readers": "cb", "cstore_dive_high_quality_target_readers": "cc", "cfo_dive_high_quality_target_readers_": "cd", "cio_dive_high_quality_target_readers": "ce", "construction_dive_high_quality_target_readers": "cf", "cybersecurity_dive_high_quality_target_readers": "cg", "facilities_dive_high_quality_target_readers": "ch", "fashion_dive_high_quality_target_readers": "ci", "food_dive_high_quality_target_readers": "cj", "grocery_dive_high_quality_target_readers": "ck", "healthcare_dive_target_readers": "cl", "higher_ed_high_quality_target_readers": "cm", "hotel_dive_high_quality_target_readers": "cn", "hr_dive_high_quality_target_readers": "co", "hr_dive_learning_high_quality_target_readers": "cp", "hr_dive_talent_high_quality_target_readers": "cq", "k12_high_quality_target_readers": "cr", "legal_dive_high_quality_target_readers": "cs", "manufacturing_dive_high_quality_target_readers": "ct", "marekting_dive_high_quality_target_readers": "cu", "medtech_high_quality_target_readers": "cv", "mobile_marketer_high_quality_target_readers": "cw", "multifamily_dive_high_quality_target_readers": "cx", "packaging_dive_high_quality_target_readers": "cy", "payments_dive_high_quality_target_readers": "cz", "pharmavoice_high_quality_target_readers": "c0", "restaurant_dive_high_quality_target_readers": "c1", "retail_dive_high_quality_target_readers": "c2", "smart_cities_dive_high_quality_target_readers": "c3", "socialmediatoday_target_readers": "c4", "supply_chain_dive_high_quality_target_readers": "c5", "transport_dive_high_quality_target_readers": "c6", "utility_dive_high_quality_target_readers": "c7", "waste_dive_high_quality_target_readers": "c8", "banking_dive_fintech_valid_subscribers": "c9", "biopharma_dive_emerging_biotech_valid_subscribers": "da", "biopharma_dive_manufacturing_valid_subscribers": "db", "biopharma_dive_marketing_valid_subscribers": "dc", "construction_dive_tech_valid_subscribers": "dd", "education_dive_k12_curriculum_valid_subscribers": "de", "food_dive_ingredients_valid_subscribers": "df", "healthcare_dive_it_valid_subscribers": "dg", "healthcare_dive_payer_valid_subscribers": "dh", "hr_dive_compensation_benefits_valid_subscribers": "di", "hr_dive_compliance_valid_subscribers": "dj", "hr_dive_diversity_inclusion_valid_subscribers": "dk", "hr_dive_learning_valid_subscribers": "dl", "hr_dive_recruiting_valid_subscribers": "dm", "marketing_dive_agencies_valid_subscribers": "dn", "marketing_dive_mobile_val
313id_subscribers": "do", "retail_dive_marketing_valid_subscribers": "dp", "retail_dive_mobile_commerce_valid_subscribers": "dq", "retail_dive_operations_valid_subscribers": "dr", "retail_dive_tech_valid_subscribers": "ds", "supply_chain_dive_operations_valid_subscribers": "dt", "supply_chain_dive_procurement_valid_subscribers": "du", "utility_dive_demand_response_valid_subscribers": "dv", "utility_dive_solar_valid_subscribers": "dw", "utility_dive_storage_valid_subscribers": "dx", "waste_dive_recycling_valid_subscribers": "dy", "all_cio_job_level": "dz", "all_cso_ciso_job_level": "d0", "all_cto_job_level": "d1", "all_users_on_a_primary_list_in_sailthru": "d2", "any_administration_job_function": "d3", "any_analyst_job_level": "d4", "any_associate_job_level": "d5", "any_bank_finance_company_type": "d6", "any_biz_dev_sales_job_function": "d7", "any_clevel_job_level": "d8", "any_construction_company_type": "d9", "any_customer_relations_job_function": "ea", "any_cx_job_function": "eb", "any_director_vp_job_level": "ec", "any_education_company_type": "ed", "any_finance_job_function": "ee", "any_food_and_bev_company_type": "ef", "any_food_service_company_type": "eg", "any_hr_job_function": "eh", "any_manager_job_level": "ei", "any_manufacturing_company_type": "ej", "any_marketing_job_function": "ek", "any_media_company_type": "el", "any_operations_analysis_job_function": "em", "any_operations_job_function": "en", "any_product_job_function": "eo", "any_retail_company_type": "ep", "any_supply_chain_job_function": "eq", "any_tech_company_type": "er", "any_telecom_company_type": "es", "any_transportation_company_type": "et", "any_transportation_job_function": "eu", "any_utility_company_type": "ev", "any_ux_job_function": "ew", "any_waste_recycling_company_type": "ex", "company_size_1_249": "ey", "company_size_1000_4999": "ez", "company_size_1000_plus": "e0", "company_size_250_499": "e1", "company_size_5000_9999": "e2", "seh_k12_at_risk_users_in_2023_churn_campaign": "e3", "seh_k12_at_risk_users_who_clicked_2023_churn_campagin": "e4", "square_food_bev_audience": "e5", "square_restaurant_audience": "e6", "square_retail_audience": "e7", "any_cx_dive_subs": "e8", "any_esg_dive_subs": "e9", "cfo_balance_high_quality_target_readers": "fa", "cx_dive_high_quality_target_readers": "fb", "esg_dive_high_quality_target_readers": "fc", "informauploadsnov2022": "fd", "ladders_uploads_2021": "fe", "ladders_utm_campaign_tracking": "ff", "agriculture_dive_high_quality_target_readers": "fg", "all_marketing_related_audience": "fh", "tech_job_function": "fi", "construction_dive_infrastru
313cture_valid_subscribers": "fj", "construction_dive_labor_safety_valid_subscribers": "fk", "supply_chain_dive_logistics_valid_subscribers": "fl", "payers_on_healthcare": "fm", "providers_on_healthcare": "fn", "wardsauto_valid_subscribers": "fo", "wardsauto_dealer_valid_subscribers": "fp", "any_wardsauto_subs": "fq", "wardsauto_high_quality_target_readers": "fr", "wardsauto_high_quality_target_readers_automakers": "fs", "wardsauto_high_quality_target_readers_dealers": "ft", "wardsauto_high_quality_target_readers_suppliers": "fu", "channel_dive_valid_subscribers": "fv", "any_channel_dive_subs": "fw", "channel_dive_high_quality_target_readers": "fx", "cstore_retail_subs": "fy", "cstore_grocery_subs": "fz", "healthcare_dive_high_quality_target_readers_providers": "f0", "healthcare_dive_high_quality_target_readers_payers": "f1", "healthcare_dive_high_quality_target_readers_health_it": "f2", "2026_outlooks_autorecommended_content_audience": "f3"}
314</script>
314
315
316
317
318<script type="module" src="/static/js/dist/lyticsHelper.bundle.js?281219230926" ></script>
318
319
320
321        
322
323        <!-- HTMX for dynamic content loading -->
324        
325
326<script src="/static/js/htmx_204.min.js?520919230926"></script>
326
327
328
329        
330        
331        
332
333        
334            
335
336<script type="text/javascript" src="/static/js/mailcheck.min.js?520919230926" defer></script>
vendor: 1 bytes, line 336
336
337<script type="text/javascript" src="/static/js/dive_mailcheck.js?520919230926" defer></script>
337
338
339        
340
341        
342        
342<script src="/static/js/app.js?520919230926" defer></script>
342
343
344        
345            
345<script type="text/javascript">
346                var divecounter_settings = {};
347                
348                    divecounter_settings.showSignupAd = true;
349                
350                
351                
352            </script>
352
353        
354        
354<script type="text/javascript" src="/static/js/divecounter.js?520919230926"></script>
354
355
356        
357            
357<script type="text/javascript">
358            // Special unbounce signup thing for google traffic. Test with ?test_unbounce in the URL
359            // Note: divecounter must already be loaded. Only enabled on pages that would normally have signup ads
360            // Note: showSignupAd is always off if prestitial is enabled!
361            if ((typeof divecounter !== "undefined") && ($(window).width() > 640)) {
362            var test_unbounce = (window.location.href.indexOf("?test_unbounce")>=0);
363            var force_unbounce = (window.location.href.indexOf("signupbounce=1")>=0) ||
364                                    (window.location.href.indexOf("utm_campaign=Linked-HR")>=0) ||
365                                    (window.location.href.indexOf("utm_source=outbrain")>=0);
366            if (test_unbounce ||
367                force_unbounce ||
368                (document.referrer.match(/^https?:\/\/(www\.google\.|news\.google\.|t\.co|twitter\.com|www\.facebook\.com)/i) &&
369                divecounter.getOption('showSignupAd') && divecounter.canShow(1,1)) ) {
370                // dyanmically load ouibounce.js only on pages where its needed
371                $.getScript("/static/js/ouibounce.min.js?520919230926", function(){
372                    // Once ouibounce.js loads, call the script
373                    // We're reusing divecounter's modal instead of OuiBounce's modal code (that's why we pass it 'false')
374                    var _ouibounce = ouibounce(false, {
375                    aggressive: test_unbounce, // ignore cookie in test mode
376                    cookieName: '_viewedOuiBounce', // underscored cookies should be ignored by Varnish
377                    callback: function() {
378                        divecounter_open_ad();
379                    }
380                    });
381                });
382            } // end should show unbounce
383            } // end divecounter defined
384            </script>
384
385        
386
387        
388            
389<script type="text/javascript">
390    function read_cookie(cookieName) {
391        var re = new RegExp('[; ]'+cookieName+'=([^\\s;]*)');
392        var sMatch = (' '+document.cookie).match(re);
393        if (cookieName && sMatch) return unescape(sMatch[1]);
394        return '';
395    }
396
397    var script = document.createElement('script');
398    script.type = 'text/javascript';
399    script.async = true;
400    script.addEventListener('load', function(e) {
401        // we only pass the template this context variable on newsposts
402        let informaData = false;
403        
404        if (window.IIRISTracker) {
405            var sailthru_id = read_cookie('sailthru_hid');
406            if (sailthru_id.length > 56) {
407              sailthru_id = sailthru_id.slice(32,56);
408            }
409
410            var notProduction = 'False' === 'True';
411            var domain = 'www.marketingdive.com'.split('.')[1];
412            // on non-prod environment, there is specific collector domain to send the data to.
413            var cDomain = notProduction ? 'com-informa-prod1.mini.snplow.net' : 'c.' + domain + '.com' // removed .com previous line
414            var cfg = {
415                config: {
416                    td: {},
417                    snowplow: {
418                        context: {}
419                    }
420                }
421            };
422            cfg.config.idsource = 'sailthruid';
423            cfg.config.snowplow.appId = domain;
424            cfg.config.snowplow.cDomain = cDomain;
425            cfg.config.td.lob = 'it';
426            cfg.config.td.domain = domain;
427            cfg.config.snowplow.contentTagEnabled = !!informaData
428            cfg.config.snowplow.context = informaData
429            window.IIRISTracker.initConfig(cfg);
430            window.IIRISTracker.setTrackingUID(sailthru_id);
431            var irisEvt = new Event('trackerLoaded');
432            window.dispatchEvent(irisEvt);
433        } else {
434            window.addEventListener('trackerLoaded', function(evt) {
435                if(window.IIRISTracker) {
436                    window.IIRISTracker.setTrackingUID(sailthru_id);
437                }
438            });
439        }
440    });
441    script.src = 'https://static.iris.informa.com/widgets/v3.0/iris-t.js';
442    document.getElementsByTagName('head')[0].appendChild(script);
443</script>
443
444
445        
446
447        
448        
449
450        
451
452        
453        
453<script type="text/javascript">
454            jQuery.browser = {};
455            (function () {
456                jQuery.browser.msie = false;
457                jQuery.browser.version = 0;
458                if (navigator.userAgent.match(/MSIE ([0-9]+)\./)) {
459                    jQuery.browser.msie = true;
460                    jQuery.browser.version = RegExp.$1;
461                }
462            })();
463        </script>
463
464        <!-- for modal signup form -->
465
466        
466<script type="text/javascript" src="/static/js/jquery.simplemodal.divefork.min.js?520919230926" defer></script>
466
467
468        
469
470        <style>
471
472            /* dynamic style overrides based on DB go here*/
473            
474        </style>
475
476        
477    
477<script type="text/javascript" src="/static/js/cpm_calc.js?520919230926" ></script>
477
478    
478<script type="text/javascript">
479        $(document).ready( function() {
480            $('.impressionsInput, .cpmInput, .totalInput').on('change', function() {
481                checkForBlank();
482            });
483            $('#calculateButton').click(function() {
484                calculateCpm();
485            });
486            $('.form-error__message').hide();
487        });
488    </script>
488
489
490
491        
492
493<script type="module" src="/static/js/dist/signupReferrer.bundle.js?281219230926" ></script>
493
494
495
496        
497            
498
499<script type="module" src="/static/js/dist/searchTracking.bundle.js?281219230926" ></script>
499
500
501            
502
503<script type="module" src="/static/js/dist/navRelatedQuestionsTracking.bundle.js?281219230926" ></script>
503
504
505        
506
507        
508        
509
510        
511        
512            
513
514
515
516
517
518
519
520
521
522
523    
523<script data-osano="MARKETING" async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
523
524
525
526
527
528
529
530
531
532
533
534    <!-- DoubleVerify Page Tag - START -->
535    
535<script data-osano="MARKETING" async src="https://pub.doubleverify.com/dvtag/19913272/DV424940/pub.js"></script>
535
536    
536<script>
537        window.onDvtagReady = function(callback, timeout = 750) {
538            window.dvtag = window.dvtag || {};
539            dvtag.cmd = dvtag.cmd || [];
540            dvtag.queueAdRequest = dvtag.queueAdRequest || function() {};
541            const opt = {
542                callback,
543                timeout,
544                timestamp: new Date().getTime()
545            };
546            dvtag.cmd.push(function() {
547                dvtag.queueAdRequest(opt);
548            });
549            setTimeout(function() {
550                const cb = opt.callback;
551                opt.callback = null;
552                if (cb) cb();
553            }, timeout);
554        };
555    </script>
555
556    <!-- DoubleVerify Page Tag - END -->
557
558
559
560<script type="text/javascript" src="/static/js/dist/adTemplates.bundle.js?281219230926" defer></script>
vendor: 1 bytes, line 560
560
561<script>
562    const desktopWidth = 1024;
563    
564    window.dfp_visibility = window.innerWidth >= desktopWidth ? 'desktop' : 'mobile';
565
566    const dfpDisplayConfiguration = {
567        "prestitialEnabled": false,
568        "leaderboardEnabled": true,
569        "sidebarAdsEnabled": true,
570        "visibility": window.dfp_visibility
571    };
572
573    
574    var googletag = googletag || {};
575    googletag.cmd = googletag.cmd || [];
576    googletag.cmd.push(function () {
577        
578
579        
580        
581
582        
583
584        if ((typeof divecounter !== "undefined") && (divecounter.getMarketingData().is_subscriber)) {
585            googletag.pubads().setTargeting("is_subscriber", "yes");
586        }
587
588        const site = window.location.host
589        googletag.pubads().setTargeting("site", site);
590
591        const first_path = window.location.pathname.split( '/' )[1];
592        googletag.pubads().setTargeting("first_path", first_path);
593
594        
595        
596
597        // Set ad targeting on the trendline to show the ads designated for it
598        
599        
600        const isTopicPage = window.location.pathname.indexOf('/topic/') !== -1;
601        if(isTopicPage) {
602            googletag.pubads().setTargeting('is_topics_page', 'true');
603        }
604
605        
606        const cookies = document.cookie.split("; ");
607        const utmMedium = cookies.find(cookie => cookie.startsWith("utmMedium="));
608        const utmMediumValue = utmMedium ? utmMedium.split("=")[1] : null;
609        const ppc = utmMediumValue && utmMediumValue.toUpperCase() === "CPC" ? "1" : "0";
610        googletag.pubads().setTargeting("ppc", ppc);
611
612    });
613
614    googletag.cmd.push(function () {
615        googletag.pubads().setCentering(true);
616        googletag.pubads().collapseEmptyDivs(false); // Whether to collapse the slots even before the ads are fetched.
617        googletag.setConfig({ singleRequest: true });
618        window.onDvtagReady?.(); // Notify DoubleVerify page tag that slots are defined.
619        googletag.enableServices();
620    });
621</script>
621
622
623
624
625
626<script>window.fallbackAds = '[{\u0022adType\u0022: \u0022editorial_native_ad\u0022, \u0022link\u0022: \u0022/trendline/ai\u002Dand\u002Dmarketing\u002Ddata/513/?utm_source\u003DMD\u0026utm_medium\u003DNativeFB\u0026utm_campaign\u003DTrendlineFB\u0022, \u0022label\u0022: \u0022Trendline\u0022, \u0022headline\u0022: \u0022AI\u005Cu2019s impact on marketing strategies\u0022, \u0022ctaText\u0022: \u0022Access now\u0022, \u0022description\u0022: \u0022Top stories that underscore the key role of artificial intelligence, generative and otherwise, for many CMOs looking to\u005Cu00a0better manage\u005Cu00a0troves of data.\u005Cu00a0\u0022, \u0022image\u0022: \u0022https://imgproxy.divecdn.com/IiWzsMX8O2SNPPxqDGi1l1yl60qZNI9y9hjlQwqnEVw/g:ce/rs:fit:640:361/Z3M6Ly9kaXZlc2l0ZS1zdG9yYWdlL2RpdmVpbWFnZS9EYXRhX2NlbnRlcl9zZXJ2ZXJfcm9vbV8tX05vdi5fNF8yMDI0LmpwZw\u003D\u003D.webp\u0022, \u0022attribution\u0022: \u0022\u0022}]'</script>
626
627
628
629<script type="module" src="/static/js/dist/onBoardDiagnostics.bundle.js?281219230926" ></script>
629
630
631
632
633
634    
635
636<script type="module" src="/static/js/dist/engAnalytics.bundle.js?281219230926" ></script>
636
637
638
639
640    
640<script>
641            window.dfp_ad_unit_prefix = '/3618/marketingdive/marketingdive';
642            window.days_between_prestitial = 7;
643    </script>
643
644    
645
646<script type="module" src="/static/js/dist/prestitialForecastingMode.bundle.js?281219230926" ></script>
646
647
648
649
650        
651
652        
653        <!-- NEW RELIC SYNTHETICS CANARY -->
654    </head>
655
656
657    <body class="">
658        <!-- Accessibility skip-nav link -->
659        <a href="#skip-link-target" class="button button--loud skip-nav-link" tabindex="1">Skip to main content</a>
660
661        
662            <!-- Google Tag Manager (noscript) -->
663                <noscript><iframe data-osano="ESSENTIAL" src="https://www.googletagmanager.com/ns.html?id=GTM-55G8WRR" height="0" width="0" style="display:none;visibility:hidden">
664                </iframe></noscript>
665            <!-- End Google Tag Manager (noscript) -->
666        
667
668        
669
670        
671            
672                
673
674<div id="signup-inter" class="modal_dialog" style="display:none;">
675    
676        
677        <form id="signup-inter-form"
678              class="form-basic"
679              name="signup-inter-form"
680              action="/signup/"
681              method="POST">
682            
683            <input type="hidden" name="signup_box_location" value="interstitial">
684            <input type="hidden" name="signup_initial_url_path" value="">
685            <h1>
686                
687                    
688                        Don't miss tomorrow's marketing industry news
689                    
690                
691            </h1>
692            <p class="interstitial-text">
693                
694                    
695                        Let Marketing Dive's free newsletter keep you informed, straight from your inbox.
696                    
697                
698            </p>
699            <p class="form-error__message" id="interstitial-error"></p>
700            <div id="form-interstitial">
701                <input type="email" name="email" placeholder="Work email address" class="email" maxlength="320" required id="id_f6a857_email">
702                
703                <div id="newsletter-list-section">
704                    <div id="id_f6a857_site_newsletters" class="list-no-bullets"><div>
705    <label for="id_f6a857_site_newsletters_0"><input type="checkbox" name="site_newsletters" value="7" class="list-no-bullets" id="id_f6a857_site_newsletters_0">
706 Daily Dive <span class="secondary-label">M-F</span></label>
707
708</div><div>
709    <label for="id_f6a857_site_newsletters_1"><input type="checkbox" name="site_newsletters" value="105" class="list-no-bullets" id="id_f6a857_site_newsletters_1">
710 Mobile Weekly <span class="secondary-label">Every Thursday</span></label>
711
712</div><div>
713    <label for="id_f6a857_site_newsletters_2"><input type="checkbox" name="site_newsletters" value="1815" class="list-no-bullets" id="id_f6a857_site_newsletters_2">
714 Agencies Weekly <span class="secondary-label">Every Monday</span></label>
715
716</div>
717</div>
718                    
719                </div>
720                <div id="interstitial-consent-container">
721                    <input name="user_consent" value="1" id="id_user_consent" type="checkbox">
722                    <span>
723    By signing up to receive our newsletter, you agree to our
724    <a href="https://www.informatechtarget.com/terms-of-use/" target="_blank">Terms of Use</a> and
725    <a href="https://www.informatechtarget.com/privacy-policy/" target="_blank">Privacy Policy</a>. You can unsubscribe at anytime.
726</span>
727
728                </div>
729            </div>
730            <span class="captcha-container">
731                <div class="g-recaptcha" data-sitekey="6LfnFggUAAAAAKaDTgN6vqjZtnNENIqa--TCG9F4"></div>
732            </span>
733            <input id="signup-inter-submit"
734                   class="email_submit submit button"
735                   type="submit"
736                   data-role="none"
737                   value="Subscribe today">
738        </form>
739    
740</div>
741
742            
743        
744
745        
746        
747
748        
749            
750        
751
752        <!-- leaderboard -->
753        
754            
755            
756                
757                <div class="leaderboard-wrap">
758                    
759    <div class="hide-small show-large">
760
761
762<div id='dfp-leaderboard-desktop' style="min-height: 90px">
763    
763<script>
764        if (window.dfp_visibility === 'desktop') {
765            googletag.cmd.push(function() {
766                googletag.defineSlot(
767                    '/3618/marketingdive/marketingdiveleaderboard',
768                    [[970, 180], [728, 90], [970, 90]],
769                    'dfp-leaderboard-desktop'
770                ).addService(googletag.pubads());
771            });
772        }
773        waitToLoadAds.push(function() {
774            googletag.cmd.push(function() {
775                if (window.dfp_visibility === 'desktop') {
776                    window.onDvtagReady?.(() => googletag.display('dfp-leaderboard-desktop'));
777                }
778            })
779        });
780    </script>
780
781</div>
782</div>
783
784                </div>
785                
785<script>
786                    googletag.cmd.push(function() {
787                        googletag.pubads().addEventListener('slotRenderEnded', function (event) {
788                            
789                            if (event.slot.getAdUnitPath() === '/3618/marketingdive/marketingdiveleaderboard' && !event.isEmpty) {
790                                $(window).blur(function () {
791                                    if (document.activeElement === $('#dfp-leaderboard- iframe')[0]) {
792                                        try {
793                                            localStorage.setItem('leaderboard_signup_path', document.location.pathname);
794                                        } catch (e) {
795                                            // local storage could not be available due to privacy settings or something
796                                        }
797                                    }
798                                });
799                            }
800                        });
801                    })
802                </script>
802
803                
804            
805        
806
807        <!-- ITT cross pub nav -->
808        
809
810
811<!-- Nav that lists the site's related publications including itt sites  -->
812
813<div class="itt-cross-nav">
814  <div class="itt-cross-nav-inner">
815    <div class="desktop-section-wrapper">
816      <a class="itt-brand analytics t-ittbanner-logo" href="https://www.informatechtarget.com/">
817        <img class="itt-logo" src="https://d12v9rtnomnebu.cloudfront.net/logo/ITechTarget-Orbit-W_rgb.png" alt="Informa Tech Target Logo" height="16">
818        <span class="itt-brand-name nav-item">Informa TechTarget</span>
819        <span class="nav-divider nav-item">|</span>
820      </a>
821      <ul class="itt-pubs list-no-bullets">
822        
823          <li>
824            <a href="https://www.customerexperiencedive.com/"
825              class="nav-item-link analytics t-ittbanner-related-cx-dive">CX Dive</a>
826          </li>
827        
828          <li>
829            <a href="https://www.retaildive.com/"
830              class="nav-item-link analytics t-ittbanner-related-retail-dive">Retail Dive</a>
831          </li>
832        
833          <li>
834            <a href="https://www.socialmediatoday.com/"
835              class="nav-item-link analytics t-ittbanner-related-social-media-today">Social Media Today</a>
836          </li>
837        
838      </ul>
839    </div>
840    <div>
841      <a href="https://www.informatechtarget.com/our-brands/" class="desktop-cta nav-item-link analytics t-ittbanner-brands">
842        <span>Explore our brands</span>
843        <img class="external-link-logo" src="https://d12v9rtnomnebu.cloudfront.net/logo/link-external-wht.svg" alt="Informa TechTarget Brands" height="12">
844      </a>
845      <a href="https://www.informatechtarget.com/" class="mobile-cta nav-item-link analytics t-ittbanner-mobile">An Informa TechTarget Publication</a>
846    </div>
847  </div>
848</div>
849
850
851
852    
853        <div class="page-container">
854            
855            
856                
857                    
858
859
860
861
862
863<header role="banner">
864    <nav id="top" class="site-menu" aria-label="Site menu">
865        <div class="site-menu-inner">
866            <!-- logo -->
867            <div class="pub-logo-wrapper">
868                <a href="/" class="analytics t-dash-navigation">
869                    
870                        <img class="pub-logo" src="https://d12v9rtnomnebu.cloudfront.net/logo/publications/marketing_black.svg" alt="Marketing Dive" height="28">
871                    
872                </a>
873            </div>
874            <!-- desktop menu, not visible on mobile/tablet -->
875            <div class="menu-content-wrapper">
876                <ul class="desktop-menu-main">
877                    
878                      <li>
879                          <a href="/deep-dive/" class="nav-menu-item analytics t-deepdive-navigation">Deep Dive</a>
880                      </li>
881                    
882                    
883                    
884                    
885                        <li>
886                            <a href="/library/" class="nav-menu-item analytics t-library-navigation">Library</a>
887                        </li>
888                    
889                    
890                        <li>
891                            <a href="/events/" class="nav-menu-item analytics t-events-navigation">Events</a>
892                        </li>
893                    
894                    
895                        <li>
896                            <a href="/press-release/" class="nav-menu-item analytics t-press-releases-navigation">Press Releases</a>
897                        </li>
898                    
899                    
900                    
901                    
902                    <li class="topics top-nav-dropdown-item">
903                        <button class="nav-menu-item topics-dropdown-item">
904                            Topics
905                            <span class="dropdown-toggle-arrow"></span>
906                        </button>
907                    </li>
908                </ul>
909                <!-- mobile menu toggle icon, not visible on desktop -->
910                <a href="/signup/?signup_location=header" rel="nofollow" class="nav-menu-item nav-signup-button mobile-nav-signup-button analytics t-signup-navigation button">
911                    Subscribe
912                </a>
913                <button class="mobile-menu-toggle">
914                    
915                    
916                        <img src="/static/img/menu_icons/menu_search.svg?520919230926" alt="menu" loading="lazy">
917                    
918                </button>
919                <!-- newsletter and search, only shown on desktop -->
920                <ul class="desktop-menu-sub list-no-bullets">
921                    <li>
922                        <button class="search-toggle search-button-front analytics t-search-navigation-top">
923                            
924                            
925                                <img src="/static/img/menu_icons/ai_search_black.svg?520919230926" alt="search" width="16" height="16" loading="lazy">
926                            
927                            
928                                <span class="sub-link">Search</span>
929                            
930                        </button>
931                    </li>
932                    <li>
933
934                        <a href="/signup/?signup_location=header" rel="nofollow" class="nav-menu-item nav-signup-button desktop-nav-signup-button analytics t-signup-navigation button">
935                            <img src="/static/img/email_icons/mail.svg?520919230926" width="16" height="11" loading="lazy" alt="">
936                            Subscribe
937                        </a>
938                    </li>
939                </ul>
940
941            </div>
942        </div>
943    </nav>
944</header>
945
946
947
948<div
949    class="menu-search menu-search--semantic js-search-hide"
950    data-related-questions-url="/search/related-questions/"
951    data-search-url="/search/"
952>
953    <div class="menu-search-inner-wrapper menu-search-panel" role="region" aria-label="Search panel">
954        <form action="/search/" method="GET" data-ajax="false" data-search-track data-search-tracking-url="/search/tracking/" class="menu-search-form">
955            <label for="search-desktop">
956                <span class="screen-reader-text search">Search</span>
957            </label>
958            <div class="menu-search-input-wrap">
959                <input id="search-desktop" type="search" name="q" placeholder="Ask a question..." data-role="none" autocomplete="off">
960                <button type="button" class="close menu-search-close" aria-label="Close search">
961                    <img src="/static/img/menu_icons/close.svg?520919230926" width="16" height="16" alt="" loading="lazy">
962                </button>
963                <button type="submit" value="" data-role="none" class="search-button-front menu-search-submit analytics t-search-navigation-drawer" aria-label="Search">
964                    <img src="/static/img/menu_icons/ai_search.svg?520919230926" alt="" height="16" width="16" loading="lazy">
965                </button>
966            </div>
967        </form>
968        <section class="menu-search-paa" aria-label="People also ask">
969            <div class="menu-search-paa__header">
970                <h2 class="dash-header">People also ask</h2>
971            </div>
972            <ul class="menu-search-paa__list js-menu-search-related-questions">
973                <li class="menu-search-paa__item menu-search-paa__item--loading">Loading questions...</li>
974            </ul>
975        </section>
976    </div>
977</div>
978
979
980
981<nav class="topics menu-bar" aria-label="Menu bar">
982    <ul class="list-no-bullets">
983        
984            
985            <li>
986                <a class="analytics t-topic-navigation-mobile-marketing" href="/topic/mobile-marketing/">Mobile</a>
987            </li>
988        
989            
990            <li>
991                <a class="analytics t-topic-navigation-creative" href="/topic/creative/">Creative</a>
992            </li>
993        
994            
995            <li>
996                <a class="analytics t-topic-navigation-Social-media-marketing" href="/topic/Social-media-marketing/">Social Media</a>
997            </li>
998        
999            
1000            <li>
1001                <a class="analytics t-topic-navigation-Video-marketing" href="/topic/Video-marketing/">Video</a>
1002            </li>
1003        
1004            
1005            <li>
1006                <a class="analytics t-topic-navigation-agencies" href="/topic/agencies/">Agencies</a>
1007            </li>
1008        
1009            
1010            <li>
1011                <a class="analytics t-topic-navigation-analytics" href="/topic/analytics/">Data/Analytics</a>
1012            </li>
1013        
1014            
1015            <li>
1016                <a class="analytics t-topic-navigation-influencer-marketing" href="/topic/influencer-marketing/">Influencer Marketing</a>
1017            </li>
1018        
1019            
1020            <li>
1021                <a class="analytics t-topic-navigation-marketing-tech" href="/topic/marketing-tech/">Ad Tech</a>
1022            </li>
1023        
1024            
1025            <li>
1026                <a class="analytics t-topic-navigation-cmo-corner" href="/topic/cmo-corner/">CMO Corner</a>
1027            </li>
1028        
1029            
1030            <li>
1031                <a class="analytics t-topic-navigation-brand-strategy" href="/topic/brand-strategy/">Brand Strategy</a>
1032            </li>
1033        
1034    </ul>
1035</nav>
1036
1037
1038
1039<script type="module" src="/static/js/dist/navSignupHelper.bundle.js?281219230926" ></script>
1039
1040
1041
1042<script>
1043    window.siteName = 'Marketing Dive';
1044</script>
1044
1045
1046                
1047            
1048
1049            
1050            
1051            <div class="search-overlay"></div>
1052            <div class="page-wrapper ">
1053
1054                <div class="page-inner-wrapper" id="skip-link-target">
1055
1056                
1057                
1058                
1059
1060                
1061
1062                    <div class="row">
1063                        <div class="medium-10 medium-centered large-12">
1064                            <section id="main-content" class="main-content large-8 columns">
1065                                
1066                                
1067
1068                                
1069    <h1 class="heading-02">CPM Calculator</h1>
1070
1071
1072                                
1073                                    
1074                                    
1075                                
1076
1077                                
1078    <form id="cpm_form" class="form">
1079        <h3 class="form__header">How to use the Marketing Dive CPM Calculator App:</h3>
1080        <p>Enter any two fields and press the button to calculate the third.&nbsp; Fields in the calculator include:</p>
1081        <ul>
1082            <li><strong>Total Cost:</strong> The total cost charged for a marketing campaign</li>
1083            <li><strong>CPM Rate:</strong> The cost of the campaign per 1,000 ad exposures</li>
1084            <li><strong>Ad Impressions:</strong> The total advertising impressions over the life of the marketing campaign</li>
1085        </ul>
1086
1087        <label for="totalInput">Total cost:</label>
1088        <input id="totalInput" name="total" type="text" class="totalInput"/>
1089
1090        <label for="cpmInput">CPM rate:</label>
1091        <input name="cpm" id="cpmInput" type="text" class="cpmInput"/>
1092
1093        <label for="impressionsInput">Ad impressions:</label>
1094        <input name="impressions" id="impressionsInput" type="text" class="impressionsInput"/>
1095
1096        <p id="errors" class="form-error__message">
1097            You must enter exactly two values. The other will be calculated for you.
1098        </p>
1099
1100        <button type="button" id="calculateButton" class="button button--medium">Calculate</button>
1101    </form>
1102
1103    <br />
1104    <div>
1105        
1106
1107
1108
1109
1110  
1111
1112<script type="module" src="/static/js/dist/articleTooltip.bundle.js?281219230926" ></script>
1112
1113
1114
1115
1116
1117<ul class="social-button-list">
1118    
1119    
1119<script data-osano="PERSONALIZATION" src="//js.maxmind.com/js/apis/geoip2/v2.1/geoip2.js" type="text/javascript"></script>
1119
1120    <li class="google-preferred-icon">
1121      <a href="https://www.google.com/preferences/source?q=https://www.marketingdive.com"
1122         aria-label="Add us on Google as a preferred source"
1123         target="_blank"
1124         data-tooltip="Add us as a Google Preferred Source to see more of our articles in your search results."
1125         class="social-icon-article google-preferred">
1126        <img src="/static/img/social_icons/article_page/bookmark-add.svg?520919230926" alt="">
1127        <span class="social-icon__text">Add us on Google</span>
1128      </a>
1129    </li>
1130    
1131    
1132    <li class="social-icon-article--share-wrapper">
1133        <a href="javascript:void(0)"
1134           aria-label="Share article"
1135           class="social-icon-article social-icon-share">
1136            <img src="/static/img/social_icons/share-icon.svg?520919230926" alt="">
1137            <span class="social-icon__text">Share</span>
1138        </a>
1139        <div class="social-icon-share--tooltip">
1140        <ul class="social-icon-list--inner">
1141            <li class="share-icon-list">
1142                <a href="javascript:void(0)"
1143                   class="social-icon-article share-copy-link"
1144                   data-copy-url="https://www.marketingdive.com/cpm-calculator-app/">
1145                <img src="/static/img/social_icons/share_dropdown/share-link-box.svg?520919230926" alt="">
1146                <span class="social-icon__text share-dropdown__text">Copy link</span>
1147                </a>
1148            </li>
1149            <li class="share-icon-list">
1150                <a href="/cdn-cgi/l/email-protection#86b9d5f3e4ece3e5f2bbc5d6cba3b4b6c5e7eae5f3eae7f2e9f4a3b4b6c7f6f6a0e7ebf6bdc4e9e2ffbbeef2f2f6f5a3b5c7a9a9f1f1f1a8ebe7f4ede3f2efe8e1e2eff0e3a8e5e9eba9e5f6ebabe5e7eae5f3eae7f2e9f4abe7f6f6a9" aria-label="Share article with email" class="social-icon-article">
1151                    <img src="/static/img/social_icons/share_dropdown/email.svg?520919230926" alt="">
1152                    <span class="social-icon__text share-dropdown__text">Email</span>
1153                </a>
1154            </li>
1155            <li class="share-icon-list">
1156            <a href="https://www.linkedin.com/shareArticle?mini=true&amp;url=https%3A//www.marketingdive.com/cpm-calculator-app/&amp;title=CPM%20Calculator%20App"
1157               aria-label="Share article to Linkedin"
1158               target="_blank"
1159               class="social-icon-article">
1160                <img src="/static/img/social_icons/share_dropdown/linkedin.svg?520919230926" alt="">
1161                <span class="social-icon__text share-dropdown__text">LinkedIn</span>
1162            </a>
1163            </li>
1164            <li class="share-icon-list">
1165            <a href="https://twitter.com/intent/tweet?text=CPM%20Calculator%20App%20https%3A//www.marketingdive.com/cpm-calculator-app/%20via%20@marketingdive"
1166               aria-label="Share article to X/Twitter"
1167               target="_blank"
1168               class="social-icon-article">
1169                <img src="/static/img/social_icons/share_dropdown/x.svg?520919230926" alt="">
1170                <span class="social-icon__text share-dropdown__text">X/Twitter</span>
1171            </a>
1172            </li>
1173            <li class="share-icon-list">
1174                <a href="https://www.facebook.com/sharer/sharer.php?u=https%3A//www.marketingdive.com/cpm-calculator-app/"
1175                   aria-label="Share article to Facebook"
1176                   target="_blank"
1177                   class="social-icon-article">
1178                    <img src="/static/img/social_icons/share_dropdown/facebook.svg?520919230926" alt="">
1179                    <span class="social-icon__text share-dropdown__text">Facebook</span>
1180                </a>
1181            </li>
1182            
1183            <li class="share-icon-list">
1184            <a href="javascript:window.print()"
1185               aria-label="Print article"
1186               class="analytics -print social-icon-article js-social-icon-print">
1187                <img src="/static/img/social_icons/share_dropdown/print.svg?520919230926" alt="">
1188                <span class="social-icon__text share-dropdown__text">Print</span>
1189            </a>
1190            </li>
1191            
1192            
1193        </ul>
1194        </div>
1195    </li>
1196    
1197</ul>
1198<div class="custom-tooltip"></div>
1199
1200    </div>
1201
1202                            </section>
1203                            <aside class="sidebar large-4 columns">
1204                                
1205                                
1206                                    
1207                                    
1208                                        
1209
1210
1211
1212    
1213<div class="hybrid-ad-wrapper hide-small show-large">
1214    <div class="hybrid-ad-inner-wrapper">
1215        
1216            <div class="hide-small show-large">
1217        
1218        
1219            <div id='dfp-hybrid1-desktop'>
vendor: 125 bytes, lines 1219-1220
1219
1220                <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1220<script>
1221                    if (window.dfp_visibility === 'desktop' ) {
1222                        googletag.cmd.push(function() {
1223                            googletag.defineSlot(
1224                                '/3618/marketingdive/marketingdivehybrid1',
1225                                [[300, 250], 'fluid', [160, 600]],
1226                                'dfp-hybrid1-desktop'
1227                            ).addService(googletag.pubads());
1228                        });
1229                    }
1230                    waitToLoadAds.push(function() {
1231                        googletag.cmd.push(function() {
1232                            if (window.dfp_visibility === 'desktop' ) {
1233                                window.onDvtagReady?.(() => googletag.display('dfp-hybrid1-desktop'));
1234                                googletag.pubads().addEventListener('slotRenderEnded', function (event) {
1235                                    var adUnitPath = '/3618/marketingdive/marketingdivehybrid1';
1236                                    var onProformative = false;
1237                                    if (onProformative && event.slot.getAdUnitPath() === adUnitPath && !event.isEmpty ) {
1238                                        var adUnitPathWithVisibility = adUnitPath + '-desktop';
1239                                        var selector = '.pf-comments__ad-wrapper #dfp-hybrid1-desktop';
1240                                        if (!$(selector).closest('.pf-comments__ad-wrapper').hasClass('borders')) {
1241                                            $(selector).closest('.pf-comments__ad-wrapper').addClass('borders')
1242                                        }
1243                                    }
1244                                });
1245                            }
1246                        });
1247                    });
1248                </script>
1248
1249            </div>
1250        
1251        </div>
1252    </div>
1253</div>
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266 
1267    
1268    
1269        
1270            <div class="signup sidebar-signup-box hide-small show-large" data-box-priority="0">
1271                
1272                    <h3 class="sidebar-signup-box__header">Get the free newsletter</h3>
1273                    <p class="sidebar-signup-box__description">Subscribe to Marketing Dive for top news, trends & analysis</p>
1274                
1275        
1276            <form class="form js-form-email-validate" name="signup" action="/signup/" method="POST">
1277                
1278
1279                <label for="id_a35f4d_email" class="email-input js-email-input">
1280                    <span class="screen-reader-text">Email:</span>
1281                    <input type="email" name="email" placeholder="Work email address" class="email" maxlength="320" required id="id_a35f4d_email">
1282                </label>
1283
1284                <span class="captcha-container">
1285                    <div class="g-recaptcha"  data-sitekey="6LfnFggUAAAAAKaDTgN6vqjZtnNENIqa--TCG9F4" ></div>
1286                </span>
1287
1288                <input type="hidden" name="signup_box_location" value="sidebar">
1289                <input type="hidden" name="signup_initial_url_path" value="/cpm-calculator-app/">
1290                <input type="hidden" name="signup_internal_referrer">
1291                <input type="hidden" name="signup_external_referrer">
1292                <input type="hidden" name="referral_url">
1293
1294                
1295                    <input type="hidden" name="js_enabled" value="0" id="id_a35f4d_js_enabled">
1296                
1297
1298                
1299                <ul class="signup-list list-no-bullets">
1300                
1301                    
1302                    
1303                        <li>
1304                            <label><span class="screen-reader-text">Select Newsletter:</span></label>
1305                            <input id="newsletter-sidebar-checkbox-7"
1306                                   type="checkbox"
1307                                   name="site_newsletters"
1308                                   value="7"
1309                                   class="checkbox"
1310                                   
1311                                   />
1312                            <label for="newsletter-sidebar-checkbox-7">
1313                                <span class="newsletter-title">Daily Dive</span>
1314                                
1315                                    <span class="secondary-label">M-F</span>
1316                                
1317                            </label>
1318                        </li>
1319                    
1320                        <li>
1321                            <label><span class="screen-reader-text">Select Newsletter:</span></label>
1322                            <input id="newsletter-sidebar-checkbox-105"
1323                                   type="checkbox"
1324                                   name="site_newsletters"
1325                                   value="105"
1326                                   class="checkbox"
1327                                   
1328                                   />
1329                            <label for="newsletter-sidebar-checkbox-105">
1330                                <span class="newsletter-title">Mobile Weekly</span>
1331                                
1332                                    <span class="secondary-label">Every Thursday</span>
1333                                
1334                            </label>
1335                        </li>
1336                    
1337                        <li>
1338                            <label><span class="screen-reader-text">Select Newsletter:</span></label>
1339                            <input id="newsletter-sidebar-checkbox-1815"
1340                                   type="checkbox"
1341                                   name="site_newsletters"
1342                                   value="1815"
1343                                   class="checkbox"
1344                                   
1345                                   />
1346                            <label for="newsletter-sidebar-checkbox-1815">
1347                                <span class="newsletter-title">
1347Agencies Weekly</span>
1348                                
1349                                    <span class="secondary-label">Every Monday</span>
1350                                
1351                            </label>
1352                        </li>
1353                    
1354                    
1355                
1356                    <li>
1357                        <label><span class="screen-reader-text">Select user consent:</span></label>
1358                        <input type="checkbox" name="user_consent" id="id_user_consent-sidebar" value="1" class="checkbox"/>
1359                        <label for="id_user_consent-sidebar">
1360                            <span class="signup-user-consent_box">
1361                                <span>
1362    By signing up to receive our newsletter, you agree to our
1363    <a href="https://www.informatechtarget.com/terms-of-use/" target="_blank">Terms of Use</a> and
1364    <a href="https://www.informatechtarget.com/privacy-policy/" target="_blank">Privacy Policy</a>. You can unsubscribe at anytime.
1365</span>
1366
1367                            </span>
1368                        </label>
1369                    </li>
1370                </ul>
1371                
1372                    <button class="button button--medium signup-button" type="submit" value="Sign up">Sign up</button>
1373                
1374                
1375
1376<script type="module" src="/static/js/dist/sendEmailToLytics.bundle.js?281219230926" ></script>
1376
1377
1378                
1379                <label class="error email_error" style="display:none;">A valid email address is required.</label>
1380                <label class="error newsletter-error" style="display:none;">Please select at least one newsletter.</label>
1381            </form>
1382        </div>
1383        
1384
1385        
1386        
1387            
1388
1389            
1390                <div class="sidebar-signup-box-it-pub hide-small show-large" data-box-priority="0">
1391    <div class="sidebar-signup-box-it-pub__sign-up-form">
1392        <h3 class="sidebar-signup-box-it-pub__header">Take your <span class="it_signup_headline_industry"></span> knowledge further with <span class="it_signup_site_name"></span></h3>
1393        <p class="sidebar-signup-box-it-pub__description free-signup-text">Sign up for the free <span class="it_signup_site_name"></span> newsletter. <span class="it_signup_copy"></span></p>
1394        <div class="sidebar-signup-box-it-pub__related-publication">
1395            <img class="sidebar-signup-box-it-pub__related-publication__logo" src="" alt="" />
1396            <p class="sidebar-signup-box-it-pub__description">
1397                Interested? Explore more of what <a class='it_signup_pub_link' href=""><span class="it_signup_site_name"></span></a> has to offer.
1398            </p>
1399            <div>
1400                <button class="button button-medium signup-button button-spinner" id="it_media_signup_button" type="button" data-sailthru-list-name="">
1401                    One-click newsletter signup
1402                    <div class="lds-ring sidebar-signup-box-spinner">
1403                        <div></div>
1404                        <div></div>
1405                        <div></div>
1406                        <div></div>
1407                    </div>
1408                </button>
1409            </div>
1410        </div>
1411    </div>
1412    <div class="sidebar-signup-box-it-pub__success-message">
1413        <h3 class="sidebar-signup-box__header">
1414            <svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
1415                <path d="M15.6251 25L21.8751 31.25L34.3751 18.75M45.8334 25C45.8334 36.5058 36.5059 45.8333 25.0001 45.8333C13.4941 45.8333 4.16675 36.5058 4.16675 25C4.16675 13.4941 13.4941 4.16667 25.0001 4.16667C36.5059 4.16667 45.8334 13.4941 45.8334 25Z" stroke="#414192" stroke-linecap="round" stroke-linejoin="round"/>
1416            </svg>
1417            <div>You're all set</div>
1418        </h3>
1419        <p class="sidebar-signup-box__description">
1420            Thanks for signing up!
1421            Please keep an eye out for a confirmation email from
1422            <a href="/cdn-cgi/l/email-protection#0a646f7d79666f7e7e6f784a637e7e646f7d79666f7e7e6f7824696567"><span class="__cf_email__" data-cfemail="a9c7ccdedac5ccddddccdbe9c0ddddc7ccdedac5ccddddccdb87cac6c4">[email&#160;protected]</span></a>
1423            To ensure we make it into your inbox regularly,
1424            add us to your allow list, mark us as a safe sender, or add us to your address book.
1425            Check out more from
1426            <a class='it_signup_pub_link' href=""><span class="it_signup_pub_link"></span></a>
1427        </p>
1428    </div>
1429</div>
1430
1431            
1432
1433            <div class="subscriber-demographics demographics-form" id="demographics-box-sidebar"></div>
vendor: 121 bytes, lines 1433-1434
1433
1434            <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1434<script src="/static/js/subscriberDemographicsForm.js?520919230926"></script>
1434
1435            
1435<script>
1436                var siteName = 'Marketing Dive' || null;
1437                if (siteName) {
1438                    setupFormCallbackAndCreateFormIfSub(siteName, 'sidebar');
1439                }
1440            </script>
1440
1441        
1442    
1443
1444
1445
1446
1447
1448    
1449
1450
1451
1452
1453
1454    <div class="sidebar-box" data-box-priority="2">
1455        <h3 class="sidebar-box__header sidebar-box__header--loud">
1456            Most Popular
1457        </h3>
1458        <ol class="sidebar-box-list sidebar-box-list--ordered">
1459            
1460                <li class="sidebar-box-list__item sidebar-box-list__item--ordered flex">
1461                    <!-- image -->
1462                    <div class="sidebar-box-list__image-container">
1463                        <a class="analytics t-most-popular-sidebar-item-1 hide-small show-large"
1464                           href="/news/inside-mcdonalds-new-marketing-model-as-it-enters-media-network-fray/831170/">
1465                            
1466                            
1467
1468    
1469        <img
1470        class="sidebar-box-list__image"
1471        src="https://imgproxy.divecdn.com/rtrjLXa8Z-G4-a4eLexvgwwebYQnhkhMoxmeHYahvcU/g:ce/rs:fill:600:338:1/Z3M6Ly9kaXZlc2l0ZS1zdG9yYWdlL2RpdmVpbWFnZS9HZXR0eUltYWdlcy0yMTgwNTQ2MTkyX1RPWDJkcDMuanBn.webp"
1472        width="600" height="338"
1473        srcset="https://imgproxy.divecdn.com/30Kmd0tO6xaJEi-5CUu97C6BGmOEBfpI8hlECWCUdaQ/g:ce/rs:fill:300:169:1/Z3M6Ly9kaXZlc2l0ZS1zdG9yYWdlL2RpdmVpbWFnZS9HZXR0eUltYWdlcy0yMTgwNTQ2MTkyX1RPWDJkcDMuanBn.webp 300w, https://imgproxy.divecdn.com/rtrjLXa8Z-G4-a4eLexvgwwebYQnhkhMoxmeHYahvcU/g:ce/rs:fill:600:338:1/Z3M6Ly9kaXZlc2l0ZS1zdG9yYWdlL2RpdmVpbWFnZS9HZXR0eUltYWdlcy0yMTgwNTQ2MTkyX1RPWDJkcDMuanBn.webp 600w"
1474        sizes="25vw"
1475        alt="Customers pass in the Drive Thru lane during breakfast hours at a McDonald’s restaurant on October 23, 2024 in Omaha, Nebraska."
1476        
1477            loading="lazy"
1478        
1479        >
1480    
1481
1482                        </a>
1483                    </div>
1484                    <div class="sidebar-box-title-container">
1485                        
1486
1487
1488
1489
1490
1491
1492                        <a class="analytics t-most-popular-sidebar-item-1 sidebar-box-list__item-title"
1493                           href="/news/inside-mcdonalds-new-marketing-model-as-it-enters-media-network-fray/831170/">Inside McDonald’s new marketing model as it enters media network fray
1494                        </a> <!--Article Title-->
1495                    </div>
1496                </li>
1497            
1498                <li class="sidebar-box-list__item sidebar-box-list__item--ordered flex">
1499                    <!-- image -->
1500                    <div class="sidebar-box-list__image-container">
1501                        <a class="analytics t-most-popular-sidebar-item-2 hide-small show-large"
1502                           href="/news/how-chilis-marketing-works-and-why-mexican-qsrs-are-its-next-target/830959/">
1503                            
1504                            
1505
1506    
1507        <img
1508        class="sidebar-box-list__image"
1509        src="https://imgproxy.divecdn.com/RS1hElV5Wy75ccY8iPrho0A6Ol00k0QC8zVw-nWq5hE/g:ce/rs:fill:600:338:1/Z3M6Ly9kaXZlc2l0ZS1zdG9yYWdlL2RpdmVpbWFnZS9jaGlsaXMtcXVlc28uanBn.webp"
1510        width="600" height="338"
1511        srcset="https://imgproxy.divecdn.com/uyvSy77CursXXcEtArf-n8yuenVFAVpx8FIJsnZ9njU/g:ce/rs:fill:300:169:1/Z3M6Ly9kaXZlc2l0ZS1zdG9yYWdlL2RpdmVpbWFnZS9jaGlsaXMtcXVlc28uanBn.webp 300w, https://imgproxy.divecdn.com/RS1hElV5Wy75ccY8iPrho0A6Ol00k0QC8zVw-nWq5hE/g:ce/rs:fill:600:338:1/Z3M6Ly9kaXZlc2l0ZS1zdG9yYWdlL2RpdmVpbWFnZS9jaGlsaXMtcXVlc28uanBn.webp 600w"
1512        sizes="25vw"
1513        alt="A person dips a chip in Chili&#x27;s queso"
1514        
1515            loading="lazy"
1516        
1517        >
1518    
1519
1520                        </a>
1521                    </div>
1522                    <div class="sidebar-box-title-container">
1523                        
1524
1525
1526
1527
1528
1529
1530                        <a class="analytics t-most-popular-sidebar-item-2 sidebar-box-list__item-title"
1531                           href="/news/how-chilis-marketing-works-and-why-mexican-qsrs-are-its-next-target/830959/">How Chili’s marketing works — and why Mexican QSRs are its next target
1532                        </a> <!--Article Title-->
1533                    </div>
1534                </li>
1535            
1536                <li class="sidebar-box-list__item sidebar-box-list__item--ordered flex">
1537                    <!-- image -->
1538                    <div class="sidebar-box-list__image-container">
1539                        <a class="analytics t-most-popular-sidebar-item-3 hide-small show-large"
1540                           href="/news/accenture-song-signals-us-media-ambitions-with-exec-appointment/830854/">
1541                            
1542                            
1543
1544    
1545        <img
1546        class="sidebar-box-list__image"
1547        src="https://imgproxy.divecdn.com/tn5WNfiPbf90qKDs2S2yn-WcpxWPYA8taF3GrDJdTA0
1547/g:ce/rs:fill:600:338:1/Z3M6Ly9kaXZlc2l0ZS1zdG9yYWdlL2RpdmVpbWFnZS9HZXR0eUltYWdlcy0xNzk1NDk5MTQ0X0hEazRDQnguanBn.webp"
1548        width="600" height="338"
1549        srcset="https://imgproxy.divecdn.com/X-Ftfo-nGLexQrGxw6tR1dp6rjuiR4fSiKLkfmgagws/g:ce/rs:fill:300:169:1/Z3M6Ly9kaXZlc2l0ZS1zdG9yYWdlL2RpdmVpbWFnZS9HZXR0eUltYWdlcy0xNzk1NDk5MTQ0X0hEazRDQnguanBn.webp 300w, https://imgproxy.divecdn.com/tn5WNfiPbf90qKDs2S2yn-WcpxWPYA8taF3GrDJdTA0/g:ce/rs:fill:600:338:1/Z3M6Ly9kaXZlc2l0ZS1zdG9yYWdlL2RpdmVpbWFnZS9HZXR0eUltYWdlcy0xNzk1NDk5MTQ0X0hEazRDQnguanBn.webp 600w"
1550        sizes="25vw"
1551        alt="The facade of the French headquarters of Accenture in Paris on Nov. 15, 2023."
1552        
1553            loading="lazy"
1554        
1555        >
1556    
1557
1558                        </a>
1559                    </div>
1560                    <div class="sidebar-box-title-container">
1561                        
1562
1563
1564
1565
1566
1567
1568                        <a class="analytics t-most-popular-sidebar-item-3 sidebar-box-list__item-title"
1569                           href="/news/accenture-song-signals-us-media-ambitions-with-exec-appointment/830854/">Accenture Song signals US media ambitions with exec appointment
1570                        </a> <!--Article Title-->
1571                    </div>
1572                </li>
1573            
1574                <li class="sidebar-box-list__item sidebar-box-list__item--ordered flex">
1575                    <!-- image -->
1576                    <div class="sidebar-box-list__image-container">
1577                        <a class="analytics t-most-popular-sidebar-item-4 hide-small show-large"
1578                           href="/news/targets-new-campaign-puts-design-legacy-at-center-of-marketing/831116/">
1579                            
1580                            
1581
1582    
1583        <img
1584        class="sidebar-box-list__image"
1585        src="https://imgproxy.divecdn.com/rZFXE9rO6jCjUCTyWT11d0LyPM0CPzvhLqqidRX8MnE/g:ce/rs:fill:600:338:1/Z3M6Ly9kaXZlc2l0ZS1zdG9yYWdlL2RpdmVpbWFnZS90YXJnZXQtaW5zaWRlLW91dC5wbmc=.webp"
1586        width="600" height="338"
1587        srcset="https://imgproxy.divecdn.com/t03BRYV7LLIq63lCMbkdEO2nvgRN7K8FhPHyZVTT-a4/g:ce/rs:fill:300:169:1/Z3M6Ly9kaXZlc2l0ZS1zdG9yYWdlL2RpdmVpbWFnZS90YXJnZXQtaW5zaWRlLW91dC5wbmc=.webp 300w, https://imgproxy.divecdn.com/rZFXE9rO6jCjUCTyWT11d0LyPM0CPzvhLqqidRX8MnE/g:ce/rs:fill:600:338:1/Z3M6Ly9kaXZlc2l0ZS1zdG9yYWdlL2RpdmVpbWFnZS90YXJnZXQtaW5zaWRlLW91dC5wbmc=.webp 600w"
1588        sizes="25vw"
1589        alt="Target &quot;Inside Out&quot; ad creative"
1590        
1591            loading="lazy"
1592        
1593        >
1594    
1595
1596                        </a>
1597                    </div>
1598                    <div class="sidebar-box-title-container">
1599                        
1600
1601
1602
1603
1604
1605    
1606    
1607        
1608    
1609
1610
1611                        <a class="analytics t-most-popular-sidebar-item-4 sidebar-box-list__item-title"
1612                           href="/news/targets-new-campaign-puts-design-legacy-at-center-of-marketing/831116/">Target’s new campaign puts design legacy at center of marketing
1613                        </a> <!--Article Title-->
1614                    </div>
1615                </li>
1616            
1617        </ol>
1618    </div>
1619
1620
1621
1622
1623
1624
1625    
1626
1627
1628
1629
1630
1631
1632    <div class="sidebar-box hide-small show-large" data-box-priority="4">
1633        <h3 class="sidebar-box__header">Library resources</h3>
1634        <ul class="sidebar-box-list">
1635            
1636                <li class="sidebar-box-list__item flex">
1637                    
1638                        <div class='sidebar-box-list__icon sidebar-box-list__icon--soft'>
1639                            
1640                                <img src="/static/img/lib_icons/playbook-black.svg?520919230926" height="25" width="25" alt="Studio resource icon" loading="lazy">
1641                            
1642                        </div>
1643                    
1644                    <div>
1645                        
1646                            <div class="label label--soft">Playbook</div>
1647                        
1648                        <a class="analytics t-library-sidebar-item-1 sidebar-box-list__item-title"
1649                           target="_blank"
1650                           href="https://packagingdive.tradepub.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp%3A&amp;qf=w_defa11610&amp;ch=library&amp;utm_source=MD&amp;utm_medium=Library&amp;utm_campaign=AveryDennison">
1651                            How RFID Changes Retail by Making Every Product Count
1652                        </a>
1653                        
1654
1655
1656    <span class="sponsor-label__leading-text  secondary-label">Custom content for </span>
1657    <span class="sponsor-label__name  secondary-label">Avery Dennison</span>
1658
1659
1660                    </div>
1661                </li>
1662            
1663                <li class="sidebar-box-list__item flex">
1664                    
1665                        <div class='sidebar-box-list__icon sidebar-box-list__icon--soft'>
1666                            
1667                                <img src="/static/img/lib_icons/playbook-black.svg?520919230926" height="25" width="25" alt="Studio resource icon" loading="lazy">
1668                            
1669                        </div>
1670                    
1671                    <div>
1672                        
1673                            <div class="label label--soft">Playbook</div>
1674                        
1675                        <a class="analytics t-library-sidebar-item-2 sidebar-box-list__item-title"
1676                           target="_blank"
1677                           href="https://retaildive.tradepub.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp%3A&amp;qf=w_defa11728&amp;ch=library&amp;utm_source=Marketing&amp;utm_medium=Library&amp;utm_campaign=Werner">
1678                            How Heavy Goods Retailers Can Transform Last Mile Delivery
1679                        </a>
1680                        
1681
1682
1683    <span class="sponsor-label__leading-text  secondary-label">Custom content for </span>
1684    <span class="sponsor-label__name  secondary-label">Werner</span>
1685
1686
1687                    </div>
1688                </li>
1689            
1690                <li class="sidebar-box-list__item flex">
1691                    
1692                        <div class='sidebar-box-list__icon sidebar-box-list__icon--soft'>
1693                            
1694                                <img src="/static/img/lib_icons/playbook-black.svg?520919230926" height="25" width="25" alt="Studio resource icon" loading="lazy">
1695                            
1696                        </div>
1697                    
1698                    <div>
1699                        
1700                            <div class="label label--soft">Playbook</div>
1701                        
1702                        <a class="analytics t-library-sidebar-item-3 sidebar-box-list__item-title"
1703                           target="_blank"
1704                           href="https://retaildive.tradepub.com/c/pubRD.mpl?secure=1&amp;sr=pp&amp;_t=pp%3A&amp;qf=w_defa11632&amp;ch=library&amp;utm_source=MD&amp;utm_medium=Library&amp;utm_campaign=JLL">
1705                            How To Drive Profits With Predictive Facilities Management
1706                        </a>
1707                        
1708
1709
1710    <span class="sponsor-label__leading-text  secondary-label">Custom content for </span>
1711    <span class="sponsor-label__name  secondary-label">JLL</span>
1712
1713
1714                    </div>
1715                </li>
1716            
1717        </ul>
1718        <a class="analytics t-library-sidebar-all sidebar-box__cta"
1719           aria-label="View all library items"
1720           href="/library/">View all</a>
1721    </div>
1722
1723
1724
1725
1726
1727
1728    
1729
1730<div class="sidebar-box js-pressrelease-sidebar-box" data-box-priority=" 6 ">
1731    <h3 class="sidebar-box__header">Company Announcements</h3>
1732    <div class="press-release-placeholder">
1733        <ul class="sidebar-box-list"
1734         hx-get="/api/v3/htmx/boxes/pressrelease-sidebar-box/"
1735         hx-trigger="load"
1736         hx-swap="outerHTML">
1737            
1738            
1739            <li class="sidebar-box-list__item flex pr-box-skeleton-item">
1740                <div class="sidebar-box-list__thumbnail-container pr-box-skeleton-image"></div>
1741                <div class="sidebar-box-title-container">
1742                    <div class="pr-box-skeleton-text-line"></div>
1743                    <div class="pr-box-skeleton-text-line"></div>
1744                    <div class="pr-box-skeleton-text-line"></div>
1745                    <div class="pr-box-skeleton-text-line"></div>
1746                    <div class="pr-box-skeleton-text-line pr-box-skeleton-company-name"></div>
1747                </div>
1748            </li>
1749            
1750            <li class="sidebar-box-list__item flex pr-box-skeleton-item">
1751                <div class="sidebar-box-list__thumbnail-container pr-box-skeleton-image"></div>
1752                <div class="sidebar-box-title-container">
1753                    <div class="pr-box-skeleton-text-line"></div>
1754                    <div class="pr-box-skeleton-text-line"></div>
1755                    <div class="pr-box-skeleton-text-line"></div>
1756                    <div class="pr-box-skeleton-text-line"></div>
1757                    <div class="pr-box-skeleton-text-line pr-box-skeleton-company-name"></div>
1758                </div>
1759            </li>
1760            
1761            <li class="sidebar-box-list__item flex pr-box-skeleton-item">
1762                <div class="sidebar-box-list__thumbnail-container pr-box-skeleton-image"></div>
1763                <div class="sidebar-box-title-container">
1764                    <div class="pr-box-skeleton-text-line"></div>
1765                    <div class="pr-box-skeleton-text-line"></div>
1766                    <div class="pr-box-skeleton-text-line"></div>
1767                    <div class="pr-box-skeleton-text-line"></div>
1768                    <div class="pr-box-skeleton-text-line pr-box-skeleton-company-name"></div>
1769                </div>
1770            </li>
1771            
1772            <li class="sidebar-box-list__item flex pr-box-skeleton-item">
1773                <div class="sidebar-box-list__thumbnail-container pr-box-skeleton-image"></div>
1774                <div class="sidebar-box-title-container">
1775                    <div class="pr-box-skeleton-text-line"></div>
1776                    <div class="pr-box-skeleton-text-line"></div>
1777                    <div class="pr-box-skeleton-text-line"></div>
1778                    <div class="pr-box-skeleton-text-line"></div>
1779                    <div class="pr-box-skeleton-text-line pr-box-skeleton-company-name"></div>
1780                </div>
1781            </li>
1782            
1783        </ul>
1784        <span class="sidebar-box__cta">
1785            <a class="analytics t-pr-sidebar-all"
1786               aria-label="View all press release items"
1787               href="/press-release/">View all</a>
1788            
1789                | <a class="analytics t-pr-sidebar-start" href="/press-release/get-started/">Post a press release</a>
1790            
1791        </span>
1792    </div>
1793</div>
1794
1795
1796
1797
1798    
1799
1800
1801
1802
1803
1804
1805    
1806        
1807            <div class="sidebar-box hide-small show-large" data-box-priority="8">
1808                <h3 class="sidebar-box__header">What We're Reading</h3>
1809                    <ul class="sidebar-box-list">
1810                        
1811                        
1812                            <li class="sidebar-box-list__item">
1813                                <img src="https://www.google.com/s2/favicons?sz=32&domain=https%3A//www.wsj.com/business/retail/general-mills-profit-sales-slip-as-turnaround-continues-14bcb98a"
1814                                     srcset="https://www.google.com/s2/favicons?sz=32&domain=https%3A//www.wsj.com/business/retail/general-mills-profit-sales-slip-as-turnaround-continues-14bcb98a 1x, https://www.google.com/s2/favicons?sz=64&domain=https%3A//www.wsj.com/business/retail/general-mills-profit-sales-slip-as-turnaround-continues-14bcb98a 2x" height="16" width="16" alt="" loading="lazy">
1815                                <span class="label label--soft">The Wall Street Journal</span>
1816                                <a class="analytics t-wwr-sidebar-item sidebar-box-list__item-title" href="https://www.wsj.com/business/retail/general-mills-profit-sales-slip-as-turnaround-continues-14bcb98a" target="_blank">
1817                                    General Mills Profit, Sales Slip as Turnaround Continues
1818                                    <img src="/static/img/offsite.svg?520919230926" class="off-site-link" alt="offsite link" height="12" width="12" loading="lazy">
1819                                </a>
1820                            </li>
1821                        
1822                            <li class="sidebar-box-list__item">
1823                                <img src="https://www.google.com/s2/favicons?sz=32&domain=https%3A//www.bbc.com/sport/football/articles/cq4g528drx79o"
1824                                     srcset="https://www.google.com/s2/favicons?sz=32&domain=https%3A//www.bbc.com/sport/football/articles/cq4g528drx79o 1x, https://www.google.com/s2/favicons?sz=64&domain=https%3A//www.bbc.com/sport/football/articles/cq4g528drx79o 2x" height="16" width="16" alt="" loading="lazy">
1825                                <span class="label label--soft">BBC</span>
1826                                <a class="analytics t-wwr-sidebar-item sidebar-box-list__item-title" href="https://www.bbc.com/sport/football/articles/cq4g528drx79o" target="_blank">
1827                                    ‘Constant bombardment’ - fans shown 65,000 junk food ads at World Cup
1828                                    <img src="/static/img/offsite.svg?520919230926" class="off-site-link" alt="offsite link" height="12" width="12" loading="lazy">
1829                                </a>
1830                            </li>
1831                        
1832                            <li class="sidebar-box-list__item">
1833                                <img src="https://www.google.com/s2/favicons?sz=32&domain=https%3A//www.adweek.com/convergent-tv/tv-measurement-companies-comscore-ispot-and-videoamp-get-new-vote-of-confidence/"
1834                                     srcset="https://www.google.com/s2/favicons?sz=32&domain=https%3A//www.adweek.com/convergent-tv/tv-measurement-companies-comscore-ispot-and-videoamp-get-new-vote-of-confidence/ 1x, https://www.google.com/s2/favicons?sz=64&domain=https%3A//www.adweek.com/convergent-tv/tv-measurement-companies-comscore-ispot-and-videoamp-get-new-vote-of-confidence/ 2x" height="16" width="16" alt="" loading="lazy">
1835                                <span class="label label--soft">Adweek</span>
1836                                <a class="analytics t-wwr-sidebar-item sidebar-box-list__item-title" href="https://www.adweek.com/convergent-tv/tv-measurement-companies-comscore-ispot-and-videoamp-get-new-vote-of-confidence/" target="_blank">
1837                                    TV Measurement Companies Comscore, iSpot, and VideoAmp Get New Vote of Confidence
1838                                    <img src="/static/img/offsite.svg?520919230926" class="off-site-link" alt="offsite link" height="12" width="12" loading="lazy">
1839                                </a>
1840                            </li>
1841                        
1842                    </ul>
1843                <a class="analytics t-wwr-sidebar-all sidebar-box__cta"
1844                    aria-label="View all what we are reading items"
1845                    href="/what-we-are-reading">View all</a>
1846            </div>
1847        
1848    
1849
1850
1851
1852
1853
1854    
1855
1856
1857
1858
1859<div class="sidebar-box hide-small show-large" data-box-priority="10">
1860    <h3 class="sidebar-box__header">Events</h3>
1861    <div class="events-placeholder">
1862        <ul class="sidebar-box-list"
1863         hx-get="/api/v3/htmx/boxes/events-sidebar-box/"
1864         hx-trigger="load"
1865         hx-swap="outerHTML">
1866            
1867            
1868            <li class="sidebar-box-list__item flex events-box-skeleton-item">
1869                <div class="sidebar-box-list__events-date events-box-skeleton-date">
1870                    <span class="events-box-skeleton-day"></span>
1871                    <span class="events-box-skeleton-month"></span>
1872                </div>
1873                <div class="sidebar-box-title-container__events">
1874                    <div class="events-box-skeleton-text-line"></div>
1875                    <div class="events-box-skeleton-text-line"></div>
1876                    <div class="events-box-skeleton-text-line events-box-skeleton-location"></div>
1877                </div>
1878            </li>
1879            
1880            <li class="sidebar-box-list__item flex events-box-skeleton-item">
1881                <div class="sidebar-box-list__events-date events-box-skeleton-date">
1882                    <span class="events-box-skeleton-day"></span>
1883                    <span class="events-box-skeleton-month"></span>
1884                </div>
1885                <div class="sidebar-box-title-container__events">
1886                    <div class="events-box-skeleton-text-line"></div>
1887                    <div class="events-box-skeleton-text-line"></div>
1888                    <div class="events-box-skeleton-text-line events-box-skeleton-location"></div>
1889                </div>
1890            </li>
1891            
1892        </ul>
1893        <div class="sidebar-box__cta">
1894            <a class="analytics t-events-sidebar-all" href="/events/">View all</a>
1895            
1896                | <a class="analytics t-events-sidebar-start" href="/selfservice/event-listings/contact">Promote an event</a>
1897            
1898        </div>
1899    </div>
1900</div>
1901
1902
1903
1904
1905    
1906
1907
1908
1909
1910
1911    <div class="sidebar-box hide-small show-large" data-box-priority="8">
1912        <h3 class="sidebar-box__header">Industry Intel</h3>
1913        <ul class="sidebar-box-list">
1914            
1915                <li class="sidebar-box-list__item">
1916                    <a class="analytics t-intel-sidebar-item sidebar-box-list__item-title"
1917                       target="_blank"
1918                       href="https://resources.industrydive.com/What-Does-AI-Think-About-Your-Brand">
1919                        What Does AI Think About Your Brand?
1920                    </a>
1921                    
1922                        <span class="secondary-label secondary-label--all-caps">Webinar - on demand</span>
1923                    
1924                    
1925                        
1926                            <span class="secondary-label">&bull;</span>
1927                        
1928                            <span class="secondary-label">Provided by BERA.ai</span>
1929                    
1930                </li>
1931            
1932                <li class="sidebar-box-list__item">
1933                    <a class="analytics t-intel-sidebar-item sidebar-box-list__item-title"
1934                       target="_blank"
1935                       href="https://resources.industrydive.com/creative-subscriptions?utm_source=MD&amp;utm_medium=Library&amp;utm_campaign=DesignPickle">
1936                        Hit Subscribe: How Creative Subscriptions Are Changing the Marketing Game
1937                    </a>
1938                    
1939                        <span class="secondary-label secondary-label--all-caps">Webinar - on demand</span>
1940                    
1941                    
1942                        
1943                            <span class="secondary-label">&bull;</span>
1944                        
1945                            <span class="secondary-label">Provided by Design Pickle</span>
1946                    
1947                </li>
1948            
1949                <li class="sidebar-box-list__item">
1950                    <a class="analytics t-intel-sidebar-item sidebar-box-list__item-title"
1951                       target="_blank"
1952                       href="https://resources.industrydive.com/Why-Mental-Availability-Is-Your-Brands-Ultimate-Growth-Engine">
1953                        Don&#x27;t Get Left Behind: Why Mental Availability Is Your Brand&#x27;s Ultimate Growth Engine
1954                    </a>
1955                    
1956                        <span class="secondary-label secondary-label--all-caps">Webinar - on demand</span>
1957                    
1958                    
1959                        
1960                            <span class="secondary-label">&bull;</span>
1961                        
1962                            <span class="secondary-label">Provided by quantilope</span>
1963                    
1964                </li>
1965            
1966        </ul>
1967    </div>
1968
1969
1970
1971
1972
1973
1974
1975    
1976<div class="hybrid-ad-wrapper hide-small show-large">
1977    <div class="hybrid-ad-inner-wrapper">
1978        
1979            <div class="hide-small show-large">
1980        
1981        
1982            <div id='dfp-hybrid2-desktop'>
1983                
1983<script>
1984                    if (window.dfp_visibility === 'desktop' ) {
1985                        googletag.cmd.push(function() {
1986                            googletag.defineSlot(
1987                                '/3618/marketingdive/marketingdivehybrid2',
1988                                [[300, 250], 'fluid', [160, 600]],
1989                                'dfp-hybrid2-desktop'
1990                            ).addService(googletag.pubads());
1991                        });
1992                    }
1993                    waitToLoadAds.push(function() {
1994                        googletag.cmd.push(function() {
1995                            if (window.dfp_visibility === 'desktop' ) {
1996                                window.onDvtagReady?.(() => googletag.display('dfp-hybrid2-desktop'));
1997                                googletag.pubads().addEventListener('slotRenderEnded', function (event) {
1998                                    var adUnitPath = '/3618/marketingdive/marketingdivehybrid2';
1999                                    var onProformative = false;
2000                                    if (onProformative && event.slot.getAdUnitPath() === adUnitPath && !event.isEmpty ) {
2001                                        var adUnitPathWithVisibility = adUnitPath + '-desktop';
2002                                        var selector = '.pf-comments__ad-wrapper #dfp-hybrid2-desktop';
2003                                        if (!$(selector).closest('.pf-comments__ad-wrapper').hasClass('borders')) {
2004                                            $(selector).closest('.pf-comments__ad-wrapper').addClass('borders')
2005                                        }
2006                                    }
2007                                });
2008                            }
2009                        });
2010                    });
2011                </script>
2011
2012            </div>
2013        
2014        </div>
2015    </div>
2016</div>
2017
2018
2019
2020
2021
2022                                    
2023                            </aside>
2024                        </div>
2025                    </div>
2026
2027                
2028
2029                </div> <!-- ends page-inner-wrapper -->
2030
2031                <section class="pre-footer">
2032                    
2033                </section>
2034
2035                
2036                    
2037
2038
2039
2040
2041
2042<hr class="footer-hr">
2043<footer>
2044    <div class="custom-article-footer">
2045        <div class="row columns">
2046            <div class="footer-grid">
2047                <div class="footer-links">
2048                    <img class="pub-logo-footer" src="https://d12v9rtnomnebu.cloudfront.net/logo/publications/marketing_black.svg" alt="Marketing Dive Logo" height="28" loading="lazy"/>
2049                    
2050                    
2051
2052
2053<ul class="social-icon-list social-icon-list__footer">
2054    
2055        <li>
2056            <a href="https://www.linkedin.com/company/marketing-dive-digital-&amp;-online-marketing-news-and-tips"
2057               aria-label="Industry Dive LinkedIn"
2058               class="social-icon-footer analytics t-sitefooter-linkedin">
2059                <img src="/static/img/social_icons/article_page/linkedin.svg?520919230926" alt="">
2060            </a>
2061        </li>
2062    
2063    
2064        <li>
2065            <a href="https://www.facebook.com/MarketingDive/"
2066               aria-label="Industry Dive Facebook"
2067               class="social-icon-footer analytics t-sitefooter-facebook">
2068                <img src="/static/img/social_icons/article_page/facebook.svg?520919230926"  alt="">
2069            </a>
2070        </li>
2071    
2072    
2073        <li>
2074            <a href="https://twitter.com/marketingdive"
2075               aria-label="Industry Dive X/Twitter"
2076               class="social-icon-footer analytics t-sitefooter-twitter">
2077                <img src="/static/img/social_icons/article_page/x.svg?520919230926" alt="">
2078            </a>
2079        </li>
2080    
2081    
2082    
2083    <li>
2084        <a href="https://www.marketingdive.com/feeds/news/"
2085           aria-label="Industry Dive RSS feed"
2086           class="social-icon-footer analytics t-sitefooter-rss">
2087            <img src="/static/img/social_icons/article_page/rss.svg?520919230926" alt="">
2088        </a>
2089    </li>
2090</ul>
2091
2092                </div>
2093                <div class="link-wrapper">
2094                    <div class="footer-links">
2095                        <h4 class="uppercase-heading-01">Explore</h4>
2096                        <ul class="list-no-bullets">
2097                            <li>
2098                                <a href="/about/" class="analytics t-about-sitefooter">About</a>
2099                            </li>
2100                            
2101                                <li>
2102                                    <a href="/editors/" class="analytics t-editors-sitefooter">Editorial Team</a>
2103                                </li>
2104                            
2105                            <li>
2106                                <a href="/contact/" class="analytics t-feedback-sitefooter">Contact Us</a>
2107                            </li>
2108                            
2109                                <li>
2110                                    <a href="/signup/?signup_location=footer-list&amp;signup_path=/cpm-calculator-app/"
2111                                       rel="nofollow" class="analytics t-signup-sitefooter">Newsletter</a>
2112                                </li>
2113                                
2114                                    <li>
2115                                        <a href="/selfservice/article-licensing/submit/"
2116                                           rel="nofollow" class="analytics t-licensing-sitefooter">Purchase Licensing Rights</a>
2117                                    </li>
2118                                
2119                            
2120                            
2121                            <li>
2122                                <a class="analytics t-pr-sitefooter-all" href="/press-release/">Press Releases</a>
2123                            </li>
2124                            
2125                            
2126                            
2127                            
2128                            
2129                            <li>
2130                                <a href="/what-we-are-reading/" class="analytics t-wwr-sitefooter">What We're Reading</a>
2131                            </li>
2132                            
2133                            
2134                                <li>
2135                                    <a href="/cpm-calculator-app/" class="analytics t-cpm-sitefooter">CPM Calculator</a>
2136                                </li>
2137                            
2138                            
2139                            
2140                        </ul>
2141                    </div>
2142                    <div class="second-column">
2143                        <div class="footer-links">
2144                            <h4 class="uppercase-heading-01">Reach our audience</h4>
2145                            <ul class="list-no-bullets">
2146                                
2147                                    <li>
2148                                        <a href="/advertise/"
2149                                           class="analytics t-advertising-sitefooter">Advertising</a>
2150                                    </li>
2151                                
2152                                
2153                                    <li>
2154                                        <a class="analytics t-pr-sitefooter-all"
2155                                           href="/press-release/get-started/">Post a press release</a>
2156                                    </li>
2157                                
2158                                
2159                                
2160                                    <li>
2161                                        <a class="analytics t-events-sitefooter-start" href="/selfservice/event-listings/contact">Promote an event</a>
2162                                    </li>
2163                                
2164                                
2165                            </ul>
2166                        </div>
2167                        <div class="footer-links">
2168                            
2169                                
2170                                    <h4 class="uppercase-heading-01">Related Publications</h4>
2171                                    <ul class="list-no-bullets">
2172                                        
2173                                            <li>
2174                                                <a href="https://www.customerexperiencedive.com/"
2175                                                   class="analytics t-sitefooter-related-cx-dive">CX Dive</a>
2176                                            </li>
2177                                        
2178                                            <li>
2179                                                <a href="https://www.retaildive.com/"
2180                                                   class="analytics t-sitefooter-related-retail-dive">Retail Dive</a>
2181                                            </li>
2182                                        
2183                                            <li>
2184                                                <a href="https://www.socialmediatoday.com/"
2185                                                   class="analytics t-sitefooter-related-social-media-today">Social Media Today</a>
2186                                            </li>
2187                                        
2188                                    </ul>
2189                                
2190                            
2191                        </div>
2192                    </div>
2193                </div>
2194            </div>
2195        </div>
2196    </div>
2197</footer>
2198<hr class="footer-hr">
2199<div class="baseline-footer-wrapper">
2200    <div class="baseline-footer-logo">
2201        <a href="https://www.informatechtarget.com">
2202            <img src="/static/img/ITechTarget-Logo.png?520919230926" alt="Informa TechTarget" loading="lazy" />
2203        </a>
2204    </div>
2205    <div class="baseline-footer-content">
2206        <div>
2207            
2208            This website is owned and operated by
2209            <a href="https://www.informatechtarget.com/" rel="noopener noreferrer">Informa TechTarget</a>,
2210            a global network that informs, influences and connects the world's technology buyers and sellers.
2211            
2212        </div>
2213        <br>
2214        <div class="informa-legal-notice">
2215            
2216
2217<div class="baseline-footer">
2218    &copy; 2025 TechTarget, Inc. or its subsidiaries. All rights reserved. An Informa PLC company.
2219    <br>
2220    <a href="https://www.informatechtarget.com/privacy-policy/">Privacy policy</a>
2221    | <a href="https://www.informatechtarget.com/terms-of-use/">Terms of use</a>
2222    | <a href="https://www.industrydive.com/takedown-policy/">Take down policy</a>
2223    | <a href="#" onclick="Osano.cm.showDrawer('osano-cm-dom-info-dialog-open')">Cookie Preferences / Do Not Sell</a>
2224</div>
2225
2226        </div>
2227    </div>
2228</div>
2229
2230                
2231
2232            </div>
2233        </div>
2234
2235        
2236
2237        <!-- mobile menu, not visible on desktop, must go AFTER footer -->
2238        
2239            
2240
2241
2242 <nav class="mobile-menu">
2243    <div class="mm-top-bar">
2244        <div class="mm-search">
2245            <form class="mm-search__form" action="/search/" method="GET" data-ajax="false" data-search-track data-search-tracking-url="/search/tracking/">
2246                <label for="search-mobile" class="screen-reader-text">Search</label>
2247                <input
2248                    id="search-mobile"
2249                    class="mm-search__input"
2250                    type="search"
2251                    name="q"
2252                    placeholder="Ask a question..."
2253                    data-role="none"
2254                    autocomplete="off"
2255                >
2256                <button
2257                    type="button"
2258                    class="mm-search__clear js-mm-search-clear"
2259                    aria-label="Clear search"
2260                    hidden
2261                >
2262                    <img src="/static/img/components/forms/x-circle.svg?520919230926" width="16" height="16" alt="">
2263                </button>
2264            </form>
2265        </div>
2266        
2267        
2268            <button type="button" class="mm-top-bar__close js-mm-close" aria-label="Close menu">
2269                <img src="/static/img/menu_icons/close.svg?520919230926" width="16" height="16" alt="">
2270            </button>
2271        
2272    </div>
2273    
2274        
2275
2276
2277
2278
2279<ul class="mm-list list-no-bullets">
2280    <li>
2281        <a href="/" class="analytics t-dash-navigation-mobile">
2282            <span>Home</span>
2283        </a>
2284    </li>
2285    <li class="mm-accordion">
2286        <button>
2287            <span>Topics</span>
2288            <span class="accordion-toggle-arrow">
2289                <img src="/static/img/menu_icons/chevron_down.svg?520919230926" width="16" height="9" alt="down arrow" loading="lazy">
2290            </span>
2291        </button>
2292        <ul class="list-no-bullets">
2293            
2294                
2295                <li>
2296                    <a class="analytics t-topic-navigation-mobile-mobile-marketing" href="/topic/mobile-marketing/">Mobile</a>
2297                </li>
2298            
2299                
2300                <li>
2301                    <a class="analytics t-topic-navigation-mobile-creative" href="/topic/creative/">Creative</a>
2302                </li>
2303            
2304                
2305                <li>
2306                    <a class="analytics t-topic-navigation-mobile-Social-media-marketing" href="/topic/Social-media-marketing/">Social Media</a>
2307                </li>
2308            
2309                
2310                <li>
2311                    <a class="analytics t-topic-navigation-mobile-Video-marketing" href="/topic/Video-marketing/">Video</a>
2312                </li>
2313            
2314                
2315                <li>
2316                    <a class="analytics t-topic-navigation-mobile-agencies" href="/topic/agencies/">Agencies</a>
2317                </li>
2318            
2319                
2320                <li>
2321                    <a class="analytics t-topic-navigation-mobile-analytics" href="/topic/analytics/">Data/Analytics</a>
2322                </li>
2323            
2324                
2325                <li>
2326                    <a class="analytics t-topic-navigation-mobile-influencer-marketing" href="/topic/influencer-marketing/">Influencer Marketing</a>
2327                </li>
2328            
2329                
2330                <li>
2331                    <a class="analytics t-topic-navigation-mobile-marketing-tech" href="/topic/marketing-tech/">Ad Tech</a>
2332                </li>
2333            
2334                
2335                <li>
2336                    <a class="analytics t-topic-navigation-mobile-cmo-corner" href="/topic/cmo-corner/">CMO Corner</a>
2337                </li>
2338            
2339                
2340                <li>
2341                    <a class="analytics t-topic-navigation-mobile-brand-strategy" href="/topic/brand-strategy/">Brand Strategy</a>
2342                </li>
2343            
2344        </ul>
2345    </li>
2346
2347    <li>
2348        <a href="/deep-dive/" class="analytics t-deepdive-navigation-mobile">
2349            <span>Deep Dive</span>
2350        </a>
2351    </li>
2352
2353
2354
2355
2356    <li>
2357        <a href="/library/" class="analytics t-library-navigation-mobile">
2358            <span>Library</span>
2359        </a>
2360    </li>
2361
2362
2363    <li>
2364        <a href="/events/" class="analytics t-events-navigation-mobile">
2365            <span>Events</span>
2366        </a>
2367    </li>
2368
2369
2370    <li>
2371        <a href="/press-release/" class="analytics t-press-releases-navigation-mobile">
2372            <span>Press Releases</span>
2373        </a>
2374    </li>
2375
2376
2377
2378
2379</ul>
2380
2381
2382    
2383    
2384        
2385        <section class="signup mm-signup">
2386            <div class="row">
2387                
2388
2389
2390
2391
2392
2393
2394 
2395    
2396    
2397        
2398            <div class="large-9 medium-10 medium-centered columns">
2399                <h3 class="display-heading-03 display-heading-03--loud">Get Marketing Dive in your inbox</h3>
2400                <p class="subhead">The free newsletter covering the top industry headlines</p>
2401        
2402            <form class="form js-form-email-validate" name="signup" action="/signup/" method="POST">
2403                
2404
2405                <label for="id_f3e713_email" class="email-input js-email-input">
2406                    <span class="screen-reader-text">Email:</span>
2407                    <input type="email" name="email" placeholder="Work email address" class="email" maxlength="320" required id="id_f3e713_email">
2408                </label>
2409
2410                <span class="captcha-container">
2411                    <div class="g-recaptcha"  data-sitekey="6LfnFggUAAAAAKaDTgN6vqjZtnNENIqa--TCG9F4" ></div>
2412                </span>
2413
2414                <input type="hidden" name="signup_box_location" value="integrated_menu">
2415                <input type="hidden" name="signup_initial_url_path" value="/cpm-calculator-app/">
2416                <input type="hidden" name="signup_internal_referrer">
2417                <input type="hidden" name="signup_external_referrer">
2418                <input type="hidden" name="referral_url">
2419
2420                
2421                    <input type="hidden" name="js_enabled" value="0" id="id_f3e713_js_enabled">
2422                
2423
2424                
2425                <ul class="signup-list list-no-bullets">
2426                
2427                    
2428                    
2429                        <li>
2430                            <label><span class="screen-reader-text">Select Newsletter:</span></label>
2431                            <input id="newsletter-integrated_menu-checkbox-7"
2432                                   type="checkbox"
2433                                   name="site_newsletters"
2434                                   value="7"
2435                                   class="checkbox"
2436                                   
2437                                   />
2438                            <label for="newsletter-integrated_menu-checkbox-7">
2439                                <span class="newsletter-title">Daily Dive</span>
2440                                
2441                                    <span class="secondary-label">M-F</span>
2442                                
2443                            </label>
2444                        </li>
2445                    
2446                        <li>
2447                            <label><span class="screen-reader-text">Select Newsletter:</span></label>
2448                            <input id="newsletter-integrated_menu-checkbox-105"
2449                                   type="checkbox"
2450                                   name="site_newsletters"
2451                                   value="105"
2452                                   class="checkbox"
2453                                   
2454                                   />
2455                            <label for="newsletter-integrated_menu-checkbox-105">
2456                                <span class="newsletter-title">Mobile Weekly</span>
2457                                
2458                                    <span class="secondary-label">Every Thursday</span>
2459                                
2460                            </label>
2461                        </li>
2462                    
2463                        <li>
2464                            <label><span class="screen-reader-text">Select Newsletter:</span></label>
2465                            <input id="newsletter-integrated_menu-checkbox-1815"
2466                                   type="checkbox"
2467                                   name="site_newsletters"
2468                                   value="1815"
2469                                   class="checkbox"
2470                                   
2471                                   />
2472                            <label for="newsletter-integrated_menu-checkbox-1815">
2473                                <span class="newsletter-title">Agencies Weekly</span>
2474                                
2475                                    <span class="secondary-label">Every Monday</span>
2476                                
2477                            </label>
2478                        </li>
2479                    
2480                    
2481                
2482                    <li>
2483                        <label><span class="screen-reader-text">Select user consent:</span></label>
2484                        <input type="checkbox" name="user_consent" id="id_user_consent-integrated_menu" value="1" class="checkbox"/>
2485                        <label for="id_user_consent-integrated_menu">
2486                            <span class="signup-user-consent_box">
2487                                <span>
2488    By signing up to receive our newsletter, you agree to our
2489    <a href="https://www.informatechtarget.com/terms-of-use/" target="_blank">Terms of Use</a> and
2490    <a href="https://www.informatechtarget.com/privacy-policy/" target="_blank">Privacy Policy</a>. You can unsubscribe at anytime.
2491</span>
2492
2493                            </span>
2494                        </label>
2495                    </li>
2496                </ul>
2497                
2498                    <button class="button button--medium signup-button" type="submit" value="Sign up">Sign up</button>
2499                
2500                
2501
2502<script type="module" src="/static/js/dist/sendEmailToLytics.bundle.js?281219230926" ></script>
2502
2503
2504                
2505                <label class="error email_error" style="display:none;">A valid email address is required.</label>
2506                <label class="error newsletter-error" style="display:none;">Please select at least one newsletter.</label>
2507            </form>
2508        </div>
2509        
2510
2511        
2512        
2513    
2514
2515            </div>
2516        </section>
2517    
2518    
2519</nav>
2520
2521        
2522    
2523        
2524        
2525        
2526        
2527            
2528<style>
2529  /* Keep this hidden until we need to show the v2 challenge. */
2530  .captcha-container { display: none; }
2531</style>
2532<script>
2533  (function () {
2534    // v3-first, v2-fallback: score on submit via /signup/recaptcha-v3-score/; show checkbox challenge if score is low or v3 fails.
2535
2536    // Shared config: site keys and constants that are the same for every form on the page.
2537    // Set once; subsequent calls (e.g. from _signupform.html on landing pages) are no-ops.
2538    if (!window._signupRecaptchaSharedConfig) {
2539      window._signupRecaptchaSharedConfig = {
2540        v2ContainerSelector: '.captcha-container',
2541        v2ElementSelector: '.g-recaptcha',
2542        submitAction: 'signup_submit',
2543        scoreThreshold: 0.5,
2544        v2SiteKey: '6LfnFggUAAAAAKaDTgN6vqjZtnNENIqa\u002D\u002DTCG9F4',
2545        v3SiteKey: '6Lc\u002DlpYsAAAAAMhweO3XD1__w\u002DvHSSOVRRpARwEM'
2546      };
2547    }
2548
2549    // Register per-form unique configs (only the params that differ per form).
2550    window._signupRecaptchaConfigs = window._signupRecaptchaConfigs || [];
2551    
2552      // Multi-form mode: loop over the list supplied by the context processor.
2553      
2554      window._signupRecaptchaConfigs.push({
2555        key: 'generic_signup',
2556        formSelector: 'form.js\u002Dform\u002Demail\u002Dvalidate[name\u003D\u0022signup\u0022]'
2557      });
2558      
2559      window._signupRecaptchaConfigs.push({
2560        key: 'signup_interstitial',
2561        formSelector: '#signup\u002Dinter\u002Dform'
2562      });
2563      
2564    
2565
2566    // If we've already initialized once, skip doing it again.
2567    if (window._signupRecaptchaBootstrapped) {
2568      return;
2569    }
2570    window._signupRecaptchaBootstrapped = true;
2571
2572    // Strip odd characters so this is safe for dataset keys/callback names.
2573    function safeKey(str) {
2574      return String(str || 'default').replace(/[^a-zA-Z0-9_]/g, '');
2575    }
2576
2577    // Load only the v3 script — it covers both v3 scoring and v2 widget rendering.
2578    // Avoid the plain api.js, which auto-renders all .g-recaptcha elements on load.
2579    function loadRecaptchaScripts(v3SiteKey) {
2580      if (!document.getElementById('signup-recaptcha-v3-script')) {
2581        var v3Script = document.createElement('script');
2582        v3Script.id = 'signup-recaptcha-v3-script';
2583        v3Script.src = 'https://www.google.com/recaptcha/api.js?render=' + encodeURIComponent(v3SiteKey);
2584        document.head.appendChild(v3Script);
2585      }
2586    }
2587
2588    // Get a v3 token, then let our backend verify and score it.
2589    function runV3AndScore(v3SiteKey, actionName) {
2590      return grecaptcha.execute(v3SiteKey, { action: actionName })
2591        .then(function(token) {
2592          return fetch('/signup/recaptcha-v3-score/', {
2593            method: 'POST',
2594            headers: { 'Content-Type': 'application/json' },
2595            body: JSON.stringify({ token: token, action: actionName })
2596          });
2597        })
2598        .then(function(res) { return res.json(); });
2599    }
2600
2601    // Wire recaptcha behavior to each form, merging shared constants with the per-form unique config.
2602    function wireConfig(formConfig, configIndex) {
2603      var shared = window._signupRecaptchaSharedConfig;
2604      var config = {
2605        key: formConfig.key,
2606        formSelector: formConfig.formSelector,
2607        v2ContainerSelector: shared.v2ContainerSelector,
2608        v2ElementSelector: shared.v2ElementSelector,
2609        submitAction: shared.submitAction,
2610        scoreThreshold: shared.scoreThreshold,
2611        v2SiteKey: shared.v2SiteKey,
2612        v3SiteKey: shared.v3SiteKey
2613      };
2614      var forms = document.querySelectorAll(config.formSelector);
2615      forms.forEach(function(form, formIndex) {
2616        // Keep track of whether this form is wired/passed/already waiting on v2.
2617        var key = safeKey(config.key + '_' + configIndex + '_' + formIndex);
2618        var wiredFlag = 'recaptchaWired' + key;
2619        var passedFlag = 'recaptchaPassed' + key;
2620        var awaitingFlag = 'awaitingV2Challenge' + key;
2621
2622        if (form.dataset[wiredFlag] === 'true') {
2623          return;
2624        }
2625        form.dataset[wiredFlag] = 'true';
2626
2627        var recaptchaElement = form.querySelector(config.v2ElementSelector);
2628        var widgetId = null;
2629        var v2WatcherInterval = null;
2630
2631        // Read the v2 response via widgetId, falling back to this form's textarea.
2632        function getV2Response() {
2633          var response = '';
2634          try {
2635            response = widgetId !== null ? grecaptcha.getResponse(widgetId) : '';
2636          } catch (e) {
2637            response = '';
2638          }
2639          if (!response) {
2640            var textarea = form.querySelector('textarea[name="g-recaptcha-response"]');
2641            if (textarea && textarea.value) {
2642              response = textarea.value;
2643            }
2644          }
2645          return response;
2646        }
2647
2648        // Once verified, mark the form so the submit handler lets it pass.
2649        function submitVerifiedForm() {
2650          if (form.dataset[passedFlag] === 'true') {
2651            return;
2652          }
2653          form.dataset[passedFlag] = 'true';
2654          if (form.closest('.inline-signup')) {
2655            form.dispatchEvent(new CustomEvent('recaptcha:verified', { bubbles: false }));
2656            var inlineContainer = form.querySelector(config.v2ContainerSelector);
2657            if (inlineContainer) inlineContainer.style.display = 'none';
2658          }
2659          form.submit();
2660        }
2661
2662        // Show the v2 challenge and poll until we see a response token.
2663        function beginV2Challenge() {
2664          form.dataset[awaitingFlag] = 'true';
2665          var container = form.querySelector(config.v2ContainerSelector);
2666          if (container) container.style.display = 'block';
2667
2668          // Render the v2 widget on first challenge, not on page load.
2669          if (widgetId === null && recaptchaElement) {
2670            try {
2671              widgetId = grecaptcha.render(recaptchaElement, {
2672                sitekey: config.v2SiteKey,
2673                callback: submitVerifiedForm
2674              });
2675            } catch (e) {}
2676          }
2677
2678          if (v2WatcherInterval) {
2679            clearInterval(v2WatcherInterval);
2680          }
2681          v2WatcherInterval = setInterval(function() {
2682            if (form.dataset[passedFlag] === 'true') {
2683              clearInterval(v2WatcherInterval);
2684              return;
2685            }
2686            var response = getV2Response();
2687            if (response) {
2688              clearInterval(v2WatcherInterval);
2689              submitVerifiedForm();
2690            }
2691          }, 250);
2692        }
2693
2694        // Main flow: validation first, then v3 score check, then v2 fallback if needed.
2695        form.addEventListener('submit', function(event) {
2696          if (form.dataset[passedFlag] === 'true') {
2697            return;
2698          }
2699
2700          // If a prior handler (e.g. email/checkbox validation) already stopped submission, bail out.
2701          if (event.defaultPrevented) {
2702            return;
2703          }
2704
2705          event.preventDefault();
2706
2707          if (form.dataset[awaitingFlag] === 'true') {
2708            if (getV2Response()) {
2709              submitVerifiedForm();
2710            } else {
2711              beginV2Challenge();
2712            }
2713            return;
2714          }
2715
2716          grecaptcha.ready(function() {
2717            runV3AndScore(config.v3SiteKey, config.submitAction)
2718              .then(function(data) {
2719                var score = Number(data && data.score);
2720                var recaptchaSuccess = Boolean(data && (data.recaptcha_success || data.success));
2721                var scorePass = !Number.isNaN(score) && score > config.scoreThreshold;
2722
2723                if (recaptchaSuccess && scorePass) {
2724                  submitVerifiedForm();
2725                  return;
2726                }
2727                beginV2Challenge();
2728              })
2729              .catch(function() {
2730                // If v3 fails (network/API), still let real users complete v2.
2731                beginV2Challenge();
2732              });
2733          });
2734        });
2735      });
2736    }
2737
2738    // Wire everything once grecaptcha is available.
2739    function setupAllConfigs() {
2740      if (typeof grecaptcha === 'undefined') {
2741        return false;
2742      }
2743      window._signupRecaptchaConfigs.forEach(function(formConfig, index) {
2744        wireConfig(formConfig, index);
2745      });
2746      return true;
2747    }
2748
2749    document.addEventListener('DOMContentLoaded', function() {
2750      var v3SiteKey = window._signupRecaptchaSharedConfig.v3SiteKey;
2751      if (v3SiteKey) {
2752        loadRecaptchaScripts(v3SiteKey);
2753      }
2754
2755      if (setupAllConfigs()) {
2756        return;
2757      }
2758
2759      // Retry briefly while external recaptcha scripts finish loading.
2760      var attempts = 0;
2761      var interval = setInterval(function() {
2762        attempts += 1;
2763        if (typeof grecaptcha !== 'undefined') {
2764          clearInterval(interval);
2765          setupAllConfigs();
2766        } else if (attempts > 50) {
2767          clearInterval(interval);
2768        }
2769      }, 100);
2770    });
2771  })();
2772</script>
2772
2773
2774        
2775        
2776        <!-- Track signups for Facebook Conversions API -->
2777        
2778
2779<script type="module" src="/static/js/dist/signupValidation.bundle.js?281219230926" ></script>
2779
2780
2781        
2782
2783<script type="module" src="/static/js/dist/gtmEvents.bundle.js?281219230926" ></script>
2783
2784
2785        <!-- Convert straight quotes to curly -->
2786        
2787
2788<script type="module" src="/static/js/dist/smartQuotes.bundle.js?281219230926" ></script>
2788
2789
2790        <!-- HTMX press release analytics -->
2791        
2792            
2793
2794<script type="module" src="/static/js/dist/htmxPressReleaseAnalytics.bundle.js?281219230926" ></script>
2794
2795
2796        
2797
2798        
2799
2800        
2801    
2801<script data-osano="MARKETING" src="//platform.twitter.com/oct.js" type="text/javascript"></script>
2801
2802    
2802<script type="text/javascript">
2803        if(typeof twttr !== 'undefined' && typeof twttr.conversion !== 'undefined') {
2804            twttr.conversion.trackPid('l6guv', { tw_sale_amount: 0, tw_order_quantity: 0 });
2805        } else {
2806            window.console && console.log && console.log('twttr undefined; Unable to track twitter retargeting');
2807        }
2808    </script>
2808
2809    <noscript>
2810    <img height="1" width="1" style="display:none;" alt="" src="https://analytics.twitter.com/i/adsct?txn_id=l6guv&amp;p_id=Twitter&amp;tw_sale_amount=0&amp;tw_order_quantity=0" />
2811    <img height="1" width="1" style="display:none;" alt="" src="//t.co/i/adsct?txn_id=l6guv&amp;p_id=Twitter&amp;tw_sale_amount=0&amp;tw_order_quantity=0" />
2812    </noscript>
2813
2814
2815
2816        
2817
2818        
2818<script>
2819            // Set cookie if we're on mobile app. Expire if we're not. This affects
2820            // which template is used to display the site to the user.
2821            $(document).ready(function() {
2822                // Get integer value of mobileapp param from URL and default to 0 if it doesn't exist
2823                var mobileapp = '';
2824
2825                // Set cookie if mobileapp is 1 or 2 or expire cookie if mobileapp == 0
2826                if (mobileapp == '0') {
2827                    document.cookie = 'mobileapp=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
2828                } else if (mobileapp == '1' || mobileapp == '2') {
2829                    document.cookie = 'mobileapp=' + mobileapp + '; path=/;';
2830                }
2831
2832                // There's no need to immediately load or preload print.css since it's not needed on page
2833                // load. Therefore, load it when the document is ready
2834                var stylesheet=document.createElement("link");
2835                stylesheet.setAttribute("rel", "stylesheet");
2836                stylesheet.setAttribute("type", "text/css");
2837                stylesheet.setAttribute("media", "print");
2838                if (window.location.pathname.includes('trendline')) {
2839                    stylesheet.setAttribute("href", "/static/css/print_trendline.css?151219230926");
2840                }
2841                else {
2842                    stylesheet.setAttribute("href", "/static/css/print.css?151219230926");
2843                }
2844                document.getElementsByTagName("head")[0].appendChild(stylesheet);
2845            });
2846        </script>
2846
2847
2848
2849        
2850
2851        
2852            <!-- Sailthru Horizon -->
2853
2854
2855<!-- 
2855<script type="text/javascript" src="https://ak.sail-horizon.com/horizon/v1.js"></script>
2855 -->
2856
2857<script data-osano="MARKETING" src="https://ak.sail-horizon.com/spm/spm.v1.min.js"></script>
vendor: 1 bytes, line 2857
2857
2858<script type="text/javascript">
2859    $(function() {
2860        // Sailthru Personalization Engine Setup
2861        var sailthru_setup = {
2862            customerId: '12ab35a80530ffa5450add9c09f5de04',
2863            domain: 'horizon.marketingdive.com',
2864            spider: false
2865        };
2866        
2867        if (window.Sailthru) {
2868            Sailthru.init(sailthru_setup);
2869        }
2870    });
2871</script>
2871
2872
2873
2874        
2875        
2876          
2877            
2878
2879
2880<script type="module" src="/static/js/dist/mobileFooterAd.bundle.js?281219230926" ></script>
2880
2881
2882<div class="mobile-footer-ad" id="mobile-footer-ad" role="complementary" aria-label="Advertisement">
2883    <div class="mobile-footer-ad__slot" id="dfp-mobilefooter-mobile"></div>
2884</div>
2885
2886<script data-osano="ESSENTIAL">
2887    window.googletag = window.googletag || { cmd: [] };
2888
2889    googletag.cmd.push(function () {
2890        // GPT serves the largest mapped size that fits, so 300x50 only
2891        // wins below 320px and nothing is requested at 768px and up.
2892        var mobileFooterMapping = googletag.sizeMapping()
2893            .addSize([768, 0], [])
2894            .addSize([320, 0], [[320, 50], [300, 50]])
2895            .addSize([0, 0], [[300, 50]])
2896            .build();
2897
2898        googletag.defineSlot(
2899            '/3618/marketingdive/marketingdivemobile_leaderboard',
2900            [[320, 50], [300, 50]],
2901            'dfp-mobilefooter-mobile'
2902        )
2903            .defineSizeMapping(mobileFooterMapping)
2904            .addService(googletag.pubads());
2905    });
2906
2907    waitToLoadAds.push(function () {
2908        googletag.cmd.push(function () {
2909            if (window.dfp_visibility === 'mobile') {
2910                window.onDvtagReady?.(() => googletag.display('dfp-mobilefooter-mobile'));
2911            }
2912        });
2913    });
2914</script>
2914
2915
2916          
2917        
2918    </body>
2919</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.