PageSourceSearch

https://www.educationdive.com/contact/

html educationdive.com collected 2026-10-02 02:22:08 UTC 95,123 bytes, 2,028 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>Contact | Education Dive</title>
27        
28
29        
30            
31                <meta name="description" content="News, voices and jobs for education professionals.  Optimized for your mobile phone."/>
32            
33        
34
35        
36
37        
38
39        
40            <meta property="fb:pages" content="410714205684147">
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?162315011026" ></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="Education Dive - Latest News Feed" href="https://www.educationdive.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/education_dive_feed_header.jpg" />
107        
108
109        
110
111        
112        
113
114        <link rel="stylesheet" href="/static/css/dive_app.css?062315011026">
115
116        
117
118<script type="text/javascript" src="/static/js/ad_blocker_recovery.js?252015011026" 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?252015011026"></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': 'Education 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-N39SJ4T
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?162315011026" ></script>
318
319
320
321        
322
323        <!-- HTMX for dynamic content loading -->
324        
325
326<script src="/static/js/htmx_204.min.js?252015011026"></script>
326
327
328
329        
330        
331        
332
333        
334            
335
336<script type="text/javascript" src="/static/js/mailcheck.min.js?252015011026" defer></script>
vendor: 1 bytes, line 336
336
337<script type="text/javascript" src="/static/js/dive_mailcheck.js?252015011026" defer></script>
337
338
339        
340
341        
342        
342<script src="/static/js/app.js?252015011026" defer></script>
342
343
344        
345            
345<script type="text/javascript">
346                var divecounter_settings = {};
347                
348                
349                
350                
351            </script>
351
352        
353        
353<script type="text/javascript" src="/static/js/divecounter.js?252015011026"></script>
353
354
355        
356
357        
358            
359<script type="text/javascript">
360    function read_cookie(cookieName) {
361        var re = new RegExp('[; ]'+cookieName+'=([^\\s;]*)');
362        var sMatch = (' '+document.cookie).match(re);
363        if (cookieName && sMatch) return unescape(sMatch[1]);
364        return '';
365    }
366
367    var script = document.createElement('script');
368    script.type = 'text/javascript';
369    script.async = true;
370    script.addEventListener('load', function(e) {
371        // we only pass the template this context variable on newsposts
372        let informaData = false;
373        
374        if (window.IIRISTracker) {
375            var sailthru_id = read_cookie('sailthru_hid');
376            if (sailthru_id.length > 56) {
377              sailthru_id = sailthru_id.slice(32,56);
378            }
379
380            var notProduction = 'False' === 'True';
381            var domain = 'www.educationdive.com'.split('.')[1];
382            // on non-prod environment, there is specific collector domain to send the data to.
383            var cDomain = notProduction ? 'com-informa-prod1.mini.snplow.net' : 'c.' + domain + '.com' // removed .com previous line
384            var cfg = {
385                config: {
386                    td: {},
387                    snowplow: {
388                        context: {}
389                    }
390                }
391            };
392            cfg.config.idsource = 'sailthruid';
393            cfg.config.snowplow.appId = domain;
394            cfg.config.snowplow.cDomain = cDomain;
395            cfg.config.td.lob = 'it';
396            cfg.config.td.domain = domain;
397            cfg.config.snowplow.contentTagEnabled = !!informaData
398            cfg.config.snowplow.context = informaData
399            window.IIRISTracker.initConfig(cfg);
400            window.IIRISTracker.setTrackingUID(sailthru_id);
401            var irisEvt = new Event('trackerLoaded');
402            window.dispatchEvent(irisEvt);
403        } else {
404            window.addEventListener('trackerLoaded', function(evt) {
405                if(window.IIRISTracker) {
406                    window.IIRISTracker.setTrackingUID(sailthru_id);
407                }
408            });
409        }
410    });
411    script.src = 'https://static.iris.informa.com/widgets/v3.0/iris-t.js';
412    document.getElementsByTagName('head')[0].appendChild(script);
413</script>
413
414
415        
416
417        
418        
419
420        
421
422        
423        
423<script type="text/javascript">
424            jQuery.browser = {};
425            (function () {
426                jQuery.browser.msie = false;
427                jQuery.browser.version = 0;
428                if (navigator.userAgent.match(/MSIE ([0-9]+)\./)) {
429                    jQuery.browser.msie = true;
430                    jQuery.browser.version = RegExp.$1;
431                }
432            })();
433        </script>
433
434        <!-- for modal signup form -->
435
436        
436<script type="text/javascript" src="/static/js/jquery.simplemodal.divefork.min.js?252015011026" defer></script>
436
437
438        
439
440        <style>
441
442            /* dynamic style overrides based on DB go here*/
443            
444        </style>
445
446        
447
448        
449
450<script type="module" src="/static/js/dist/signupReferrer.bundle.js?162315011026" ></script>
450
451
452
453        
454            
455
456<script type="module" src="/static/js/dist/searchTracking.bundle.js?162315011026" ></script>
456
457
458            
459
460<script type="module" src="/static/js/dist/navRelatedQuestionsTracking.bundle.js?162315011026" ></script>
460
461
462        
463
464        
465        
466
467        
468        
469            
470
471
472
473
474
475
476    
476<script type="text/javascript" src="/static/js/prestitial.js?252015011026"></script>
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493<script type="text/javascript" src="/static/js/dist/adTemplates.bundle.js?162315011026" defer></script>
vendor: 1 bytes, line 493
493
494<script>
495    const desktopWidth = 1024;
496    
497    window.dfp_visibility = window.innerWidth >= desktopWidth ? 'desktop' : 'mobile';
498
499    const dfpDisplayConfiguration = {
500        "prestitialEnabled": true,
501        "leaderboardEnabled": true,
502        "sidebarAdsEnabled": true,
503        "visibility": window.dfp_visibility
504    };
505
506    
507    var googletag = googletag || {};
508    googletag.cmd = googletag.cmd || [];
509    googletag.cmd.push(function () {
510        
511
512        
513        
514
515        
516
517        if ((typeof divecounter !== "undefined") && (divecounter.getMarketingData().is_subscriber)) {
518            googletag.pubads().setTargeting("is_subscriber", "yes");
519        }
520
521        const site = window.location.host
522        googletag.pubads().setTargeting("site", site);
523
524        const first_path = window.location.pathname.split( '/' )[1];
525        googletag.pubads().setTargeting("first_path", first_path);
526
527        
528        
529
530        // Set ad targeting on the trendline to show the ads designated for it
531        
532        
533        const isTopicPage = window.location.pathname.indexOf('/topic/') !== -1;
534        if(isTopicPage) {
535            googletag.pubads().setTargeting('is_topics_page', 'true');
536        }
537
538        
539        const cookies = document.cookie.split("; ");
540        const utmMedium = cookies.find(cookie => cookie.startsWith("utmMedium="));
541        const utmMediumValue = utmMedium ? utmMedium.split("=")[1] : null;
542        const ppc = utmMediumValue && utmMediumValue.toUpperCase() === "CPC" ? "1" : "0";
543        googletag.pubads().setTargeting("ppc", ppc);
544
545    });
546
547    googletag.cmd.push(function () {
548        googletag.pubads().setCentering(true);
549        googletag.pubads().collapseEmptyDivs(false); // Whether to collapse the slots even before the ads are fetched.
550        googletag.setConfig({ singleRequest: true });
551        window.onDvtagReady?.(); // Notify DoubleVerify page tag that slots are defined.
552        googletag.enableServices();
553    });
554</script>
554
555
556
557
558
559<script>window.fallbackAds = '[]'</script>
559
560
561
562<script type="module" src="/static/js/dist/onBoardDiagnostics.bundle.js?162315011026" ></script>
562
563
564
565
566
567
568
569        
570
571        
572        <!-- NEW RELIC SYNTHETICS CANARY -->
573    </head>
574
575
576    <body class="contact contact-form">
577        <!-- Accessibility skip-nav link -->
578        <a href="#skip-link-target" class="button button--loud skip-nav-link" tabindex="1">Skip to main content</a>
579
580        
581            <!-- Google Tag Manager (noscript) -->
582                <noscript><iframe data-osano="ESSENTIAL" src="https://www.googletagmanager.com/ns.html?id=GTM-N39SJ4T" height="0" width="0" style="display:none;visibility:hidden">
583                </iframe></noscript>
584            <!-- End Google Tag Manager (noscript) -->
585        
586
587        
588            
589
590
591    
592        
593        <div id="prestitial-init" style="display: none;" class="prestitial-init"></div>
594        <div id="prestitial-oop" style="display: none;"></div>
595        <div id="prestitial-outer" style="display: none;" class="prestitial content-overlay">
596            <section class="site-menu" aria-label="Site menu">
597                <div class="site-menu-inner">
598                    
599                        <img src="https://d12v9rtnomnebu.cloudfront.net/logo/publications/education_black.svg" alt="Education Dive" class="pub-logo">
600                    
601                </div>
602            </section>
603            <section class="paychek-page-wrapper row">
604                <div class="paychek-button large-4 large-push-8 columns">
605                    <div>
606                        CONTINUE TO SITE ➞
607                    </div>
608                </div>
609                <div class="paychek large-8 large-pull-4 columns">
610                    
611                    <div id="paychekgoeshere"></div>
612                    
612<script type="text/javascript">
613                      if (typeof prestitialAds !== 'undefined' && prestitialAds.pageIsPrestitialEligible()) {
614                        
615                          prestitialAds.showOverlay();
616                        
617                      }
618                    </script>
618
619                    
619<script type="text/javascript">
620                        
621                        if (typeof prestitialAds !== 'undefined' && prestitialAds.pageIsPrestitialEligible()) {
622                          // Initialize but don't show yet - wait to see if OOP loads
623                          prestitialAds.initialize(3);
624                          
625                          prestitialAds.setPrestitialPossibleCookie();
626                          const prestitial_ad_unit_path = '/3618/educationdive/educationdiveprestitial';
627
628                          
629                          let oopStatus = 'pending';
630                          let standardStatus = 'pending';
631                          let resolved = false;
632
633                          function resolvePrestitial() {
634                            if (resolved) return;
635
636                            if (oopStatus === 'loaded') {
637                              resolved = true;
638                              prestitialAds.showOOPPrestitial();
639                              // Wait for OOP ad content to exist before hiding overlay
640                              prestitialAds.waitForOOPAdContent(function() {
641                                $('div#prestitial-init').hide(); // hide the all white overlay
642                                // Wait for Airtory to close (either by user or timeout)
643                                // before closing OOP wrapper and restoring the page scroll.
644                                prestitialAds.watchForOOPAdClose(function() {
645                                  prestitialAds.closePrestitial();
646                                });
647                              });
648                            } else if (oopStatus === 'empty' && standardStatus === 'loaded') {
649                              resolved = true;
650                              prestitialAds.showStandardPrestitial();
651                              $.modal.close();
652                              $('div#prestitial-init').hide(); // hide the all white overlay
653                            } else if (oopStatus === 'empty' && standardStatus === 'empty') {
654                              resolved = true;
655                              prestitialAds.closePrestitial();
656                            }
657                            // else: one or both slots are still pending, wait for the other to report.
658                          }
659
660                          googletag.cmd.push(function () {
661                            googletag.pubads().addEventListener('slotRenderEnded', function (event) {
662                              
663                              if (event.slot.getAdUnitPath() == prestitial_ad_unit_path) {
664                                const slotElementId = event.slot.getSlotElementId();
665
666                                if (slotElementId === 'prestitial-oop') {
667                                  oopStatus = event.isEmpty ? 'empty' : 'loaded';
668                                  resolvePrestitial();
669                                } else if (slotElementId === 'paychekgoeshere') {
670                                  standardStatus = (event.isEmpty || prestitialAds.testingNoAd()) ? 'empty' : 'loaded';
671                                  resolvePrestitial();
672                                }
673                              }
674                            });
675
676                            // Set the _prestitialViewed cookie after there has been a prestitial impression
677                            googletag.pubads().addEventListener('impressionViewable', function (event) {
678                              if (event.slot.getAdUnitPath() == prestitial_ad_unit_path) {
679                                prestitialAds.setCookie(
680                                  "_prestitialViewed",
681                                  (new Date()).getTime(),
682                                  prestitialAds.daysBetweenPrestitial
683                                );
684                              }
685                            });
686                          });
687
688                          
689                          if (prestitialAds.testingNoAd()) {
690                            
691                          } else {
692                            
693                            
694                            if (prestitialAds.screenMeetsSizeReqs()) {
695                                googletag.cmd.push(function() {
696                                  googletag.defineSlot(
697                                    prestitial_ad_unit_path,
698                                    [[500, 300], [640, 480]],
699                                    'paychekgoeshere'
700                                  ).addService(googletag.pubads());
701
702                                  googletag.defineOutOfPageSlot(
703                                    prestitial_ad_unit_path,
704                                    'prestitial-oop'
705                                  ).addService(googletag.pubads());
706                                });
707                            }
708                            
709                            waitToLoadAds.push(function() {
710                              
711                              googletag.cmd.push(function () {
712                                
713                                // Both slots must be displayed (requested) so GAM has a chance to
714                                // fill either one; resolvePrestitial() needs both slotRenderEnded
715                                // events to decide which ad (if any) to actually show.
716                                window.onDvtagReady?.(() => googletag.display('paychekgoeshere'));
717                                window.onDvtagReady?.(() => googletag.display('prestitial-oop'));
718                              });
719                            });
720                          }
721
722                          
723                          setTimeout(
724                            function () {
725                              if (prestitialAds.overrideTimeout()) {
726                                
727                                return;
728                              }
729
730                              if (!resolved && standardStatus === 'loaded') {
731                                
732                                oopStatus = 'empty';
733                                resolvePrestitial();
734                              }
735
736                              if (!resolved) {
737                                
738                                resolved = true;
739                                if (!prestitialAds.prestitialAdIsClosed()) {
740                                  prestitialAds.closePrestitial();
741                                }
742                                return;
743                              }
744
745                              if (standardStatus === 'loaded' && oopStatus !== 'loaded') {
746                                
747                                setTimeout(
748                                  function () {
749                                    // if the prestitial is already hidden, then don't hide it again.
750                                    if (!prestitialAds.prestitialAdIsClosed()) {
751                                      prestitialAds.closePrestitial();
752                                    }
753                                  },
754                                  prestitialAds.timeoutSeconds()
755                                );
756                              }
757                              
758                            },
759                            
760                            2900
761                          );
762                          prestitialAds.sentPrestitialEligibleEvent();
763                        } else if (typeof prestitialAds !== 'undefined' && !prestitialAds.pageIsPrestitialEligible()){
764                          
765                          prestitialAds.closePrestitial();
766                        }
767                    </script>
767
768                </div>
769            </section>
770        </div>
771    
772
773
774        
775
776        
777            
778        
779
780        
781        
782
783        
784            
785        
786
787        <!-- leaderboard -->
788        
789            
790            
791        
792
793        <!-- ITT cross pub nav -->
794        
795
796
797<!-- Nav that lists the site's related publications including itt sites  -->
798
799<div class="itt-cross-nav">
800  <div class="itt-cross-nav-inner">
801    <div class="desktop-section-wrapper">
802      <a class="itt-brand analytics t-ittbanner-logo" href="https://www.informatechtarget.com/">
803        <img class="itt-logo" src="https://d12v9rtnomnebu.cloudfront.net/logo/ITechTarget-Orbit-W_rgb.png" alt="Informa Tech Target Logo" height="16">
804        <span class="itt-brand-name nav-item">Informa TechTarget</span>
805        <span class="nav-divider nav-item">|</span>
806      </a>
807      <ul class="itt-pubs list-no-bullets">
808        
809      </ul>
810    </div>
811    <div>
812      <a href="https://www.informatechtarget.com/our-brands/" class="desktop-cta nav-item-link analytics t-ittbanner-brands">
813        <span>Explore our brands</span>
814        <img class="external-link-logo" src="https://d12v9rtnomnebu.cloudfront.net/logo/link-external-wht.svg" alt="Informa TechTarget Brands" height="12">
815      </a>
816      <a href="https://www.informatechtarget.com/" class="mobile-cta nav-item-link analytics t-ittbanner-mobile">An Informa TechTarget Publication</a>
817    </div>
818  </div>
819</div>
820
821
822
823    
824        <div class="page-container">
825            
826            
827                
828                    
829
830
831
832
833
834<header role="banner">
835    <nav id="top" class="site-menu" aria-label="Site menu">
836        <div class="site-menu-inner">
837            <!-- logo -->
838            <div class="pub-logo-wrapper">
839                <a href="/" class="analytics t-dash-navigation">
840                    
841                        <img class="pub-logo" src="https://d12v9rtnomnebu.cloudfront.net/logo/publications/education_black.svg" alt="Education Dive" height="28">
842                    
843                </a>
844            </div>
845            <!-- desktop menu, not visible on mobile/tablet -->
846            <div class="menu-content-wrapper">
847                <ul class="desktop-menu-main">
848                    
849                      <li>
850                          <a href="/deep-dive/" class="nav-menu-item analytics t-deepdive-navigation">Deep Dive</a>
851                      </li>
852                    
853                    
854                        <li>
855                            <a href="/opinion/" class="nav-menu-item analytics t-opinion-navigation">Opinion</a>
856                        </li>
857                    
858                    
859                    
860                        <li>
861                            <a href="/library/" class="nav-menu-item analytics t-library-navigation">Library</a>
862                        </li>
863                    
864                    
865                        <li>
866                            <a href="/events/" class="nav-menu-item analytics t-events-navigation">Events</a>
867                        </li>
868                    
869                    
870                        <li>
871                            <a href="/press-release/" class="nav-menu-item analytics t-press-releases-navigation">Press Releases</a>
872                        </li>
873                    
874                    
875                    
876                    
877                    <li class="topics top-nav-dropdown-item">
878                        <button class="nav-menu-item topics-dropdown-item">
879                            Topics
880                            <span class="dropdown-toggle-arrow"></span>
881                        </button>
882                    </li>
883                </ul>
884                <!-- mobile menu toggle icon, not visible on desktop -->
885                <a href="/signup/?signup_location=header" rel="nofollow" class="nav-menu-item nav-signup-button mobile-nav-signup-button analytics t-signup-navigation button">
886                    Sign up
887                </a>
888                <button class="mobile-menu-toggle">
889                    
890                    
891                        <img src="/static/img/menu_icons/menu_search.svg?252015011026" alt="menu" loading="lazy">
892                    
893                </button>
894                <!-- newsletter and search, only shown on desktop -->
895                <ul class="desktop-menu-sub list-no-bullets">
896                    <li>
897                        <button class="search-toggle search-button-front analytics t-search-navigation-top">
898                            
899                            
900                                <img src="/static/img/menu_icons/ai_search_black.svg?252015011026" alt="search" width="16" height="16" loading="lazy">
901                            
902                            
903                                <span class="sub-link">Search</span>
904                            
905                        </button>
906                    </li>
907                    <li>
908
909                        <a href="/signup/?signup_location=header" rel="nofollow" class="nav-menu-item nav-signup-button desktop-nav-signup-button analytics t-signup-navigation button">
910                            <img src="/static/img/email_icons/mail.svg?252015011026" width="16" height="11" loading="lazy" alt="">
911                            Sign up
912                        </a>
913                    </li>
914                </ul>
915
916            </div>
917        </div>
918    </nav>
919</header>
920
921
922
923<div
924    class="menu-search menu-search--semantic js-search-hide"
925    data-related-questions-url="/search/related-questions/"
926    data-search-url="/search/"
927>
928    <div class="menu-search-inner-wrapper menu-search-panel" role="region" aria-label="Search panel">
929        <form action="/search/" method="GET" data-ajax="false" data-search-track data-search-tracking-url="/search/tracking/" class="menu-search-form">
930            <label for="search-desktop">
931                <span class="screen-reader-text search">Search</span>
932            </label>
933            <div class="menu-search-input-wrap">
934                <input id="search-desktop" type="search" name="q" placeholder="Ask a question..." data-role="none" autocomplete="off">
935                <button type="button" class="close menu-search-close" aria-label="Close search">
936                    <img src="/static/img/menu_icons/close.svg?252015011026" width="16" height="16" alt="" loading="lazy">
937                </button>
938                <button type="submit" value="" data-role="none" class="search-button-front menu-search-submit analytics t-search-navigation-drawer" aria-label="Search">
939                    <img src="/static/img/menu_icons/ai_search.svg?252015011026" alt="" height="16" width="16" loading="lazy">
940                </button>
941            </div>
942        </form>
943        <section class="menu-search-paa" aria-label="People also ask">
944            <div class="menu-search-paa__header">
945                <h2 class="dash-header">People also ask</h2>
946            </div>
947            <ul class="menu-search-paa__list js-menu-search-related-questions">
948                <li class="menu-search-paa__item menu-search-paa__item--loading">Loading questions...</li>
949            </ul>
950        </section>
951    </div>
952</div>
953
954
955
956<nav class="topics menu-bar" aria-label="Menu bar">
957    <ul class="list-no-bullets">
958        
959            
960            <li>
961                <a class="analytics t-topic-navigation-HigherED" href="/topic/HigherED/">Higher Ed</a>
962            </li>
963        
964            
965            <li>
966                <a class="analytics t-topic-navigation-k12" href="/topic/k12/">K-12</a>
967            </li>
968        
969            
970            <li>
971                <a class="analytics t-topic-navigation-Technology" href="/topic/Technology/">Technology</a>
972            </li>
973        
974            
975            <li>
976                <a class="analytics t-topic-navigation-Policy" href="/topic/Policy/">Policy</a>
977            </li>
978        
979            
980            <li>
981                <a class="analytics t-topic-navigation-curriculum" href="/topic/curriculum/">Curriculum</a>
982            </li>
983        
984            
985            <li>
986                <a class="analytics t-topic-navigation-Online" href="/topic/Online/">Online Learning</a>
987            </li>
988        
989            
990            <li>
991                <a class="analytics t-topic-navigation-legal-courts" href="/topic/legal-courts/">Legal / Courts</a>
992            </li>
993        
994            
995            <li>
996                <a class="analytics t-topic-navigation-for-profit" href="/topic/for-profit/">For-Profit</a>
997            </li>
998        
999    </ul>
1000</nav>
1001
1002
1003
1004<script type="module" src="/static/js/dist/navSignupHelper.bundle.js?162315011026" ></script>
1004
1005
1006
1007<script>
1008    window.siteName = 'Education Dive';
1009</script>
1009
1010
1011                
1012            
1013
1014            
1015            
1016            <div class="search-overlay"></div>
1017            <div class="page-wrapper ">
1018
1019                <div class="page-inner-wrapper" id="skip-link-target">
1020
1021                
1022                
1023    <section class="contact-header ">
1024        <div class="row">
1025            <div class="medium-12 columns">
1026                <h1 class="display-heading-04 display-heading-04--loud-centered contact-header__header-text">Contact us</h1>
1027                <div class="contact-header__subheader-text">Have a question? We're here to help.</div>
1028            </div>
1029        </div>
1030    </section>
1031
1032    
1033        <section class="outreach">
1034            <div class="row">
1035                <div class="large-9 large-centered medium-12 medium-centered">
1036                    <div class="row columns">
1037                        <div class="columns medium-4">
1038                            <div class="outreach__box">
1039                                <h3 class="outreach__box__header uppercase-heading-02">
1040                                    CONTACT THE<br />NEWSROOM
1041                                </h3>
1042                                <div class="outreach__box__links">
1043                                    <div class="outreach__box__links__link">
1044                                        <a class="analytics t-contact-editors" href="/editors/">Meet the editorial team</a>
1045                                    </div>
1046                                    <div class="outreach__box__links__link">
1047                                        <a class="analytics t-contact-tip" href="/submit-tip/">Submit a tip</a>
1048                                    </div>
1049                                    
1050                                    <div class="outreach__box__links__link">
1051                                        <a class="analytics t-contact-opinion" href="/opinion/submit-opinion/">Pitch an opinion piece</a>
1052                                    </div>
1053                                    
1054                                </div>
1055                            </div>
1056                        </div>
1057                        <div class="columns medium-4">
1058                            <div class="outreach__box">
1059                                <h3 class="outreach__box__header up
1059percase-heading-02">
1060                                    REACH OUR<br />AUDIENCE
1061                                </h3>
1062                                <div class="outreach__box__links">
1063                                    <div class="outreach__box__links__link">
1064                                        <a class="analytics t-contact-advertise" href="/advertise/">Advertise with us</a>
1065                                    </div>
1066                                    
1067                                </div>
1068                            </div>
1069                        </div>
1070                        <div class="columns medium-4">
1071                            <div class="outreach__box">
1072                                <h3 class="outreach__box__header uppercase-heading-02">
1073                                    CORPORATE<br />INFORMATION
1074                                </h3>
1075                                <div class="outreach__box__links">
1076                                    <div class="outreach__box__links__link">
1077                                        <a class="analytics t-contact-blog" href="https://industrydive.com/news">Follow our corporate blog</a>
1078                                    </div>
1079                                    <div class="outreach__box__links__link">
1080                                        <a class="analytics t-contact-privacy" href="https://www.informatechtarget.com/privacy-policy/">Read our privacy policy</a>
1081                                    </div>
1082                                </div>
1083                            </div>
1084                        </div>
1085                    </div>
1086                </div>
1087            </div>
1088        </section>
1089    
1090
1091    <section class="contact-form">
1092        <div class="row">
1093            <div class="columns large-8 large-centered medium-9 medium-centered">
1094                <h3 class="form__header contact-form__header">Get in touch with the Education Dive team</h3>
1095
1096                <form id="form-contact" class="form" method="post" action="/contact/#form-contact" onsubmit="javascript:$('input[name=js_enabled]').val('1')">
1097                    
1098                        <div class="fieldWrapper">
1099                            <label for="id_topic">How can we help you?</label> 
1100                            <select name="topic" title="Choose a topic for outreach." required id="id_topic">
1101  <option value="" selected></option>
1102
1103</select>
1104                            
1105                            <p class="form-error__message"></p>
1106                        </div>
1107                    
1108                        <div class="fieldWrapper">
1109                            <label for="id_name">Name:</label> 
1110                            <input type="text" name="name" title="Enter your name" autocomplete="off" required id="id_name">
1111                            
1112                            <p class="form-error__message"></p>
1113                        </div>
1114                    
1115                        <div class="fieldWrapper">
1116                            <label for="id_email">Email:</label> 
1117                            <input type="email" name="email" title="Enter your email" autocomplete="off" required id="id_email">
1118                            
1119                            <p class="form-error__message"></p>
1120                        </div>
1121                    
1122                        <div class="fieldWrapper">
1123                            <label for="id_message">Message:</label> 
1124                            <textarea name="message" cols="40" rows="10" title="Enter your message" autocomplete="off" required id="id_message">
1125</textarea>
1126                            
1127                            <p class="form-error__message"></p>
1128                        </div>
1129                    
1130                    
1131                        <div class="fieldWrapper">
1132                            <div style="display: none">
1133                                <label for="id_js_enabled">Js enabled:</label> 
1134                                <input type="hidden" name="js_enabled" value="0" id="id_js_enabled">
1135                                
1136                            </div>
1137                            <p class="form-error__message"></p>
1138                        </div>
1139                    
1140                    <button type="submit" value="submit" id="submit-contact-form-button" class="contact-form__button button button--loud">Submit</button>
1141                </form>
1142            </div>
1143        </div>
1144    </section>
1145
1146    <section class="address-map">
1147        <div class="row">
1148            <div class="columns large-3 large-offset-1 medium-4">
1149                <div class="address-map__address">
1150                    <div class="address-map__address__header">
1151                        TechTarget, Inc.
1152                    </div>
1153                    <div class="address-map__address__street">
1154                        275 Grove St.
1155                    </div>
1156                    <div class="address-map__address__city">
1157                        Newton, MA 02466
1158                    </div>
1159                    <div class="address-map__address__phone">
1160                        <a class="analytics t-contact-phone" href="tel:+12023312480">1.202.331.2480</a>
1161                    </div>
1162                    <div class="address-map__address__email">
1163                        <a class="analytics t-contact-email" href="/cdn-cgi/l/email-protection#adc4c3cbc2edc4c3c9d8ded9dfd4c9c4dbc883cec2c0"><span class="__cf_email__" data-cfemail="472e292128072e2923323433353e232e31226924282a">[email&#160;protected]</span></a>
1164                    </div>
1165                </div>
1166            </div>
1167            <div class="columns large-6 end large-offset-1 medium-8">
1168                <div class="address-map__map">
1169                    <div class='address-map__map__embed-container'>
1170                        <iframe data-osano="MARKETING" src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2949.168200190068!2d-71.25524412329055!3d42.33893717119476!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x89e383a559884161%3A0x65907a64247889af!2sInforma%20TechTarget!5e0!3m2!1sen!2sus!4v1750176185294!5m2!1sen!2sus" width="529" height="349" frameborder="0" style="border:0" allowfullscreen"></iframe>
1171                    </div>
1172                </div>
1173            </div>
1174        </div>
1175    </section>
vendor: 114 bytes, lines 1175-1177
1175
1176
1177    <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1177<script>
1178        // Send contact form submission to GTM for GA4
1179        $('#form-contact').submit(function(e) {
1180            const eventObject = {
1181                event: 'user.contactSubmission',
1182                'user.contactSubmission': {
1183                  v: 12,// <-- DO NOT EDIT.
1184                  name: "Contact Form Submission"
1185              }
1186            }
1187            window.pushGTMEvent(eventObject)
1188        });
1189    </script>
1189
1190
1191
1192
1193                
1194
1195                
1196
1197                </div> <!-- ends page-inner-wrapper -->
1198
1199                <section class="pre-footer">
1200                    
1201                </section>
1202
1203                
1204                    
1205
1206
1207
1208
1209
1210<hr class="footer-hr">
1211<footer>
1212    <div class="custom-article-footer">
1213        <div class="row columns">
1214            <div class="footer-grid">
1215                <div class="footer-links">
1216                    <img class="pub-logo-footer" src="https://d12v9rtnomnebu.cloudfront.net/logo/publications/education_black.svg" alt="Education Dive Logo" height="28" loading="lazy"/>
1217                    
1218                    
1219
1220
1221<ul class="social-icon-list social-icon-list__footer">
1222    
1223        <li>
1224            <a href="https://www.linkedin.com/showcase/education-dive-k12/"
1225               aria-label="Industry Dive LinkedIn"
1226               class="social-icon-footer analytics t-sitefooter-linkedin">
1227                <img src="/static/img/social_icons/article_page/linkedin.svg?252015011026" alt="">
1228            </a>
1229        </li>
1230    
1231    
1232        <li>
1233            <a href="https://www.facebook.com/EducationDive/"
1234               aria-label="Industry Dive Facebook"
1235               class="social-icon-footer analytics t-sitefooter-facebook">
1236                <img src="/static/img/social_icons/article_page/facebook.svg?252015011026"  alt="">
1237            </a>
1238        </li>
1239    
1240    
1241        <li>
1242            <a href="https://twitter.com/EdDiveK12"
1243               aria-label="Industry Dive X/Twitter"
1244               class="social-icon-footer analytics t-sitefooter-twitter">
1245                <img src="/static/img/social_icons/article_page/x.svg?252015011026" alt="">
1246            </a>
1247        </li>
1248    
1249    
1250    
1251    <li>
1252        <a href="https://www.educationdive.com/feeds/news/"
1253           aria-label="Industry Dive RSS feed"
1254           class="social-icon-footer analytics t-sitefooter-rss">
1255            <img src="/static/img/social_icons/article_page/rss.svg?252015011026" alt="">
1256        </a>
1257    </li>
1258</ul>
1259
1260                </div>
1261                <div class="link-wrapper">
1262                    <div class="footer-links">
1263                        <h4 class="uppercase-heading-01">Explore</h4>
1264                        <ul class="list-no-bullets">
1265                            <li>
1266                                <a href="/about/" class="analytics t-about-sitefooter">About</a>
1267                            </li>
1268                            
1269                                <li>
1270                                    <a href="/editors/" class="analytics t-editors-sitefooter">Editorial Team</a>
1271                                </li>
1272                            
1273                            <li>
1274                                <a href="/contact/" class="analytics t-feedback-sitefooter">Contact Us</a>
1275                            </li>
1276                            
1277                                <li>
1278                                    <a href="/signup/?signup_location=footer-list&amp;signup_path=/contact/"
1279                                       rel="nofollow" class="analytics t-signup-sitefooter">Newsletter</a>
1280                                </li>
1281                                
1282                            
1283                            
1284                            <li>
1285                                <a class="analytics t-pr-sitefooter-all" href="/press-release/">Press Releases</a>
1286                            </li>
1287                            
1288                            
1289                            
1290                            
1291                            
1292                            <li>
1293                                <a href="/what-we-are-reading/" class="analytics t-wwr-sitefooter">What We're Reading</a>
1294                            </li>
1295                            
1296                            
1297                            
1298                            
1299                        </ul>
1300                    </div>
1301                    <div class="second-column">
1302                        <div class="footer-links">
1303                            <h4 class="uppercase-heading-01">Reach our audience</h4>
1304                            <ul class="list-no-bullets">
1305                                
1306                                    <li>
1307                                        <a href="/advertise/"
1308                                           class="analytics t-advertising-sitefooter">Advertising</a>
1309                                    </li>
1310                                
1311                                
1312                                
1313                                <li>
1314                                    <a class="analytics t-pr-sitefooter-all" href="/opinion/submit-opinion/">Submit an opinion piece</a>
1315                                </li>
1316                                
1317                                
1318                                
1319                            </ul>
1320                        </div>
1321                        <div class="footer-links">
1322                            
1323                                
1324                            
1325                        </div>
1326                    </div>
1327                </div>
1328            </div>
1329        </div>
1330    </div>
1331</footer>
1332<hr class="footer-hr">
1333<div class="baseline-footer-wrapper">
1334    <div class="baseline-footer-logo">
1335        <a href="https://www.informatechtarget.com">
1336            <img src="/static/img/ITechTarget-Logo.png?252015011026" alt="Informa TechTarget" loading="lazy" />
1337        </a>
1338    </div>
1339    <div class="baseline-footer-content">
1340        <div>
1341            
1342            This website is owned and operated by
1343            <a href="https://www.informatechtarget.com/" rel="noopener noreferrer">Informa TechTarget</a>,
1344            a global network that informs, influences and connects the world's technology buyers and sellers.
1345            
1346        </div>
1347        <br>
1348        <div class="informa-legal-notice">
1349            
1350
1351<div class="baseline-footer">
1352    &copy; 2025 TechTarget, Inc. or its subsidiaries. All rights reserved. An Informa PLC company.
1353    <br>
1354    <a href="https://www.informatechtarget.com/privacy-policy/">Privacy policy</a>
1355    | <a href="https://www.informatechtarget.com/terms-of-use/">Terms of use</a>
1356    | <a href="https://www.industrydive.com/takedown-policy/">Take down policy</a>
1357    | <a href="#" onclick="Osano.cm.showDrawer('osano-cm-dom-info-dialog-open')">Cookie Preferences / Do Not Sell</a>
1358</div>
1359
1360        </div>
1361    </div>
1362</div>
1363
1364                
1365
1366            </div>
1367        </div>
1368
1369        
1370
1371        <!-- mobile menu, not visible on desktop, must go AFTER footer -->
1372        
1373            
1374
1375
1376 <nav class="mobile-menu">
1377    <div class="mm-top-bar">
1378        <div class="mm-search">
1379            <form class="mm-search__form" action="/search/" method="GET" data-ajax="false" data-search-track data-search-tracking-url="/search/tracking/">
1380                <label for="search-mobile" class="screen-reader-text">Search</label>
1381                <input
1382                    id="search-mobile"
1383                    class="mm-search__input"
1384                    type="search"
1385                    name="q"
1386                    placeholder="Ask a question..."
1387                    data-role="none"
1388                    autocomplete="off"
1389                >
1390                <button
1391                    type="button"
1392                    class="mm-search__clear js-mm-search-clear"
1393                    aria-label="Clear search"
1394                    hidden
1395                >
1396                    <img src="/static/img/components/forms/x-circle.svg?252015011026" width="16" height="16" alt="">
1397                </button>
1398            </form>
1399        </div>
1400        
1401        
1402            <button type="button" class="mm-top-bar__close js-mm-close" aria-label="Close menu">
1403                <img src="/static/img/menu_icons/close.svg?252015011026" width="16" height="16" alt="">
1404            </button>
1405        
1406    </div>
1407    
1408        
1409
1410
1411
1412
1413<ul class="mm-list list-no-bullets">
1414    <li>
1415        <a href="/" class="analytics t-dash-navigation-mobile">
1416            <span>Home</span>
1417        </a>
1418    </li>
1419    <li class="mm-accordion">
1420        <button>
1421            <span>Topics</span>
1422            <span class="accordion-toggle-arrow">
1423                <img src="/static/img/menu_icons/chevron_down.svg?252015011026" width="16" height="9" alt="down arrow" loading="lazy">
1424            </span>
1425        </button>
1426        <ul class="list-no-bullets">
1427            
1428                
1429                <li>
1430                    <a class="analytics t-topic-navigation-mobile-HigherED" href="/topic/HigherED/">Higher Ed</a>
1431                </li>
1432            
1433                
1434                <li>
1435                    <a class="analytics t-topic-navigation-mobile-k12" href="/topic/k12/">K-12</a>
1436                </li>
1437            
1438                
1439                <li>
1440                    <a class="analytics t-topic-navigation-mobile-Technology" href="/topic/Technology/">Technology</a>
1441                </li>
1442            
1443                
1444                <li>
1445                    <a class="analytics t-topic-navigation-mobile-Policy" href="/topic/Policy/">Policy</a>
1446                </li>
1447            
1448                
1449                <li>
1450                    <a class="analytics t-topic-navigation-mobile-curriculum" href="/topic/curriculum/">Curriculum</a>
1451                </li>
1452            
1453                
1454                <li>
1455                    <a class="analytics t-topic-navigation-mobile-Online" href="/topic/Online/">Online Learning</a>
1456                </li>
1457            
1458                
1459                <li>
1460                    <a class="analytics t-topic-navigation-mobile-legal-courts" href="/topic/legal-courts/">Legal / Courts</a>
1461                </li>
1462            
1463                
1464                <li>
1465                    <a class="analytics t-topic-navigation-mobile-for-profit" href="/topic/for-profit/">For-Profit</a>
1466                </li>
1467            
1468        </ul>
1469    </li>
1470
1471    <li>
1472        <a href="/deep-dive/" class="analytics t-deepdive-navigation-mobile">
1473            <span>Deep Dive</span>
1474        </a>
1475    </li>
1476
1477
1478    <li>
1479        <a href="/opinion/" class="analytics t-opinion-navigation-mobile">
1480            <span>Opinion</span>
1481        </a>
1482    </li>
1483
1484
1485
1486    <li>
1487        <a href="/library/" class="analytics t-library-navigation-mobile">
1488            <span>Library</span>
1489        </a>
1490    </li>
1491
1492
1493    <li>
1494        <a href="/events/" class="analytics t-events-navigation-mobile">
1495            <span>Events</span>
1496        </a>
1497    </li>
1498
1499
1500    <li>
1501        <a href="/press-release/" class="analytics t-press-releases-navigation-mobile">
1502            <span>Press Releases</span>
1503        </a>
1504    </li>
1505
1506
1507
1508
1509</ul>
1510
1511
1512    
1513    
1514        
1515        <section class="signup mm-signup">
1516            <div class="row">
1517                
1518
1519
1520
1521
1522
1523
1524 
1525    
1526    
1527        
1528            <div class="large-9 medium-10 medium-centered columns">
1529                <h3 class="display-heading-03 display-heading-03--loud">Get Education Dive in your inbox</h3>
1530                <p class="subhead">The free newsletter covering the top industry headlines</p>
1531        
1532            <form class="form js-form-email-validate" name="signup" action="/signup/" method="POST">
1533                
1534
1535                <label for="id_5cc4ee_email" class="email-input js-email-input">
1536                    <span class="screen-reader-text">Email:</span>
1537                    <input type="email" name="email" placeholder="Work email address" class="email" maxlength="320" required id="id_5cc4ee_email">
1538                </label>
1539
1540                <span class="captcha-container">
1541                    <div class="g-recaptcha"  data-sitekey="6LfnFggUAAAAAKaDTgN6vqjZtnNENIqa--TCG9F4" ></div>
1542                </span>
1543
1544                <input type="hidden" name="signup_box_location" value="integrated_menu">
1545                <input type="hidden" name="signup_initial_url_path" value="/contact/">
1546                <input type="hidden" name="signup_internal_referrer">
1547                <input type="hidden" name="signup_external_referrer">
1548                <input type="hidden" name="referral_url">
1549
1550                
1551                    <input type="hidden" name="js_enabled" value="0" id="id_5cc4ee_js_enabled">
1552                
1553
1554                
1555                <ul class="signup-list list-no-bullets">
1556                
1557                    
1558                    
1559                        <li>
1560                            <label><span class="screen-reader-text">Select Newsletter:</span></label>
1561                            <input id="newsletter-integrated_menu-checkbox-20"
1562                                   type="checkbox"
1563                                   name="site_newsletters"
1564                                   value="20"
1565                                   class="checkbox"
1566                                   
1567                                   />
1568                            <label for="newsletter-integrated_menu-checkbox-20">
1569                                <span class="newsletter-title">BioPharma Dive: Daily Dive</span>
1570                                
1571                                    <span class="secondary-label">M-F</span>
1572                                
1573                            </label>
1574                        </li>
1575                    
1576                        <li>
1577                            <label><span class="screen-reader-text">Select Newsletter:</span></label>
1578                            <input id="newsletter-integrated_menu-checkbox-42"
1579                                   type="checkbox"
1580                                   name="site_newsletters"
1581                                   value="42"
1582                                   class="checkbox"
1583                                   
1584                                   />
1585                            <label for="newsletter-integrated_menu-checkbox-42">
1586                                <span class="newsletter-title">BioPharma Dive: Commercialization Weekly</span>
1587                                
1588                                    <span class="secondary-label">Every Wednesday</span>
1589                                
1590                            </label>
1591                        </li>
1592                    
1593                        <li>
1594                            <label><span class="screen-reader-text">Select Newsletter:</span></label>
1595                            <input id="newsletter-integrated_menu-checkbox-43"
1596                                   type="checkbox"
1597                                   name="site_newsletters"
1598                                   value="43"
1599                                   class="checkbox"
1600                                   
1601                                   />
1602                            <label for="newsletter-integrated_menu-checkbox-43">
1603                                <span class="newsletter-title">BioPharma Dive: Gene Therapy Weekly</span>
1604                                
1605                                    <span class="secondary-label">Every Thursday</span>
1606                                
1607                            </label>
1608                        </li>
1609                    
1610                        <li>
1611                            <label><span class="screen-reader-text">Select Newsletter:</span></label>
1612                            <input id="newsletter-integrated_menu-checkbox-4"
1613                                   type="checkbox"
1614                                   name="site_newsletters"
1615                                   value="4"
1616                                   class="checkbox"
1617                                   
1618                                   />
1619                            <label for="newsletter-integrated_menu-checkbox-4">
1620                                <span class="newsletter-title">Higher Ed Dive: Daily Dive</span>
1621                                
1622                                    <span class="secondary-label">M-F</span>
1623                                
1624                            </label>
1625                        </li>
1626                    
1627                        <li>
1628                            <label><span class="screen-reader-text">Select Newsletter:</span></label>
1629                            <input id="newsletter-integrated_menu-checkbox-18"
1630                                   type="checkbox"
1631                                   name="site_newsletters"
1632                                   value="18"
1633                                   class="checkbox"
1634                                   
1635                                   />
1636                            <label for="newsletter-integrated_menu-checkbox-18">
1637                                <span class="newsletter-title">K-12 Dive: Daily Dive</span>
1638                                
1639                                    <span class="secondary-label">M-F</span>
1640                                
1641                            </label>
1642                        </li>
1643                    
1644                    
1645                
1646                    <li>
1647                        <label><span class="screen-reader-text">Select user consent:</span></label>
1648                        <input type="checkbox" name="user_consent" id="id_user_consent-integrated_menu" value="1" class="checkbox"/>
1649                        <label for="id_user_consent-integrated_menu">
1650                            <span class="signup-user-consent_box">
1651                                <span>
1652    By signing up to receive our newsletter, you agree to our
1653    <a href="https://www.informatechtarget.com/terms-of-use/" target="_blank">Terms of Use</a> and
1654    <a href="https://www.informatechtarget.com/privacy-policy/" target="_blank">Privacy Policy</a>. You can unsubscribe at anytime.
1655</span>
1656
1657                            </span>
1658                        </label>
1659                    </li>
1660                </ul>
1661                
1662                    <button class="button button--medium signup-button" type="submit" value="Sign up">Sign up</button>
1663                
1664                
1665
1666<script type="module" src="/static/js/dist/sendEmailToLytics.bundle.js?162315011026" ></script>
1666
1667
1668                
1669                <label class="error email_error" style="display:none;">A valid email address is required.</label>
1670                <label class="error newsletter-error" style="display:none;">Please select at least one newsletter.</label>
1671            </form>
1672        </div>
1673        
1674
1675        
1676        
1677    
1678
1679            </div>
1680        </section>
1681    
1682    
1683</nav>
1684
1685        
1686    
1687        
1688        
1689        
1690        
1691            
1692<style>
1693  /* Keep this hidden until we need to show the v2 challenge. */
1694  .captcha-container { display: none; }
1695</style>
1696<script>
1697  (function () {
1698    // v3-first, v2-fallback: score on submit via /signup/recaptcha-v3-score/; show checkbox challenge if score is low or v3 fails.
1699
1700    // Shared config: site keys and constants that are the same for every form on the page.
1701    // Set once; subsequent calls (e.g. from _signupform.html on landing pages) are no-ops.
1702    if (!window._signupRecaptchaSharedConfig) {
1703      window._signupRecaptchaSharedConfig = {
1704        v2ContainerSelector: '.captcha-container',
1705        v2ElementSelector: '.g-recaptcha',
1706        submitAction: 'signup_submit',
1707        scoreThreshold: 0.5,
1708        v2SiteKey: '6LfnFggUAAAAAKaDTgN6vqjZtnNENIqa\u002D\u002DTCG9F4',
1709        v3SiteKey: '6Lc\u002DlpYsAAAAAMhweO3XD1__w\u002DvHSSOVRRpARwEM'
1710      };
1711    }
1712
1713    // Register per-form unique configs (only the params that differ per form).
1714    window._signupRecaptchaConfigs = window._signupRecaptchaConfigs || [];
1715    
1716      // Multi-form mode: loop over the list supplied by the context processor.
1717      
1718      window._signupRecaptchaConfigs.push({
1719        key: 'generic_signup',
1720        formSelector: 'form.js\u002Dform\u002Demail\u002Dvalidate[name\u003D\u0022signup\u0022]'
1721      });
1722      
1723      window._signupRecaptchaConfigs.push({
1724        key: 'signup_interstitial',
1725        formSelector: '#signup\u002Dinter\u002Dform'
1726      });
1727      
1728    
1729
1730    // If we've already initialized once, skip doing it again.
1731    if (window._signupRecaptchaBootstrapped) {
1732      return;
1733    }
1734    window._signupRecaptchaBootstrapped = true;
1735
1736    // Strip odd characters so this is safe for dataset keys/callback names.
1737    function safeKey(str) {
1738      return String(str || 'default').replace(/[^a-zA-Z0-9_]/g, '');
1739    }
1740
1741    // Load only the v3 script — it covers both v3 scoring and v2 widget rendering.
1742    // Avoid the plain api.js, which auto-renders all .g-recaptcha elements on load.
1743    function loadRecaptchaScripts(v3SiteKey) {
1744      if (!document.getElementById('signup-recaptcha-v3-script')) {
1745        var v3Script = document.createElement('script');
1746        v3Script.id = 'signup-recaptcha-v3-script';
1747        v3Script.src = 'https://www.google.com/recaptcha/api.js?render=' + encodeURIComponent(v3SiteKey);
1748        document.head.appendChild(v3Script);
1749      }
1750    }
1751
1752    // Get a v3 token, then let our backend verify and score it.
1753    function runV3AndScore(v3SiteKey, actionName) {
1754      return grecaptcha.execute(v3SiteKey, { action: actionName })
1755        .then(function(token) {
1756          return fetch('/signup/recaptcha-v3-score/', {
1757            method: 'POST',
1758            headers: { 'Content-Type': 'application/json' },
1759            body: JSON.stringify({ token: token, action: actionName })
1760          });
1761        })
1762        .then(function(res) { return res.json(); });
1763    }
1764
1765    // Wire recaptcha behavior to each form, merging shared constants with the per-form unique config.
1766    function wireConfig(formConfig, configIndex) {
1767      var shared = window._signupRecaptchaSharedConfig;
1768      var config = {
1769        key: formConfig.key,
1770        formSelector: formConfig.formSelector,
1771        v2ContainerSelector: shared.v2ContainerSelector,
1772        v2ElementSelector: shared.v2ElementSelector,
1773        submitAction: shared.submitAction,
1774        scoreThreshold: shared.scoreThreshold,
1775        v2SiteKey: shared.v2SiteKey,
1776        v3SiteKey: shared.v3SiteKey
1777      };
1778      var forms = document.querySelectorAll(config.formSelector);
1779      forms.forEach(function(form, formIndex) {
1780        // Keep track of whether this form is wired/passed/already waiting on v2.
1781        var key = safeKey(config.key + '_' + configIndex + '_' + formIndex);
1782        var wiredFlag = 'recaptchaWired' + key;
1783        var passedFlag = 'recaptchaPassed' + key;
1784        var awaitingFlag = 'awaitingV2Challenge' + key;
1785
1786        if (form.dataset[wiredFlag] === 'true') {
1787          return;
1788        }
1789        form.dataset[wiredFlag] = 'true';
1790
1791        var recaptchaElement = form.querySelector(config.v2ElementSelector);
1792        var widgetId = null;
1793        var v2WatcherInterval = null;
1794
1795        // Read the v2 response via widgetId, falling back to this form's textarea.
1796        function getV2Response() {
1797          var response = '';
1798          try {
1799            response = widgetId !== null ? grecaptcha.getResponse(widgetId) : '';
1800          } catch (e) {
1801            response = '';
1802          }
1803          if (!response) {
1804            var textarea = form.querySelector('textarea[name="g-recaptcha-response"]');
1805            if (textarea && textarea.value) {
1806              response = textarea.value;
1807            }
1808          }
1809          return response;
1810        }
1811
1812        // Once verified, mark the form so the submit handler lets it pass.
1813        function submitVerifiedForm() {
1814          if (form.dataset[passedFlag] === 'true') {
1815            return;
1816          }
1817          form.dataset[passedFlag] = 'true';
1818          if (form.closest('.inline-signup')) {
1819            form.dispatchEvent(new CustomEvent('recaptcha:verified', { bubbles: false }));
1820            var inlineContainer = form.querySelector(config.v2ContainerSelector);
1821            if (inlineContainer) inlineContainer.style.display = 'none';
1822          }
1823          form.submit();
1824        }
1825
1826        // Show the v2 challenge and poll until we see a response token.
1827        function beginV2Challenge() {
1828          form.dataset[awaitingFlag] = 'true';
1829          var container = form.querySelector(config.v2ContainerSelector);
1830          if (container) container.style.display = 'block';
1831
1832          // Render the v2 widget on first challenge, not on page load.
1833          if (widgetId === null && recaptchaElement) {
1834            try {
1835              widgetId = grecaptcha.render(recaptchaElement, {
1836                sitekey: config.v2SiteKey,
1837                callback: submitVerifiedForm
1838              });
1839            } catch (e) {}
1840          }
1841
1842          if (v2WatcherInterval) {
1843            clearInterval(v2WatcherInterval);
1844          }
1845          v2WatcherInterval = setInterval(function() {
1846            if (form.dataset[passedFlag] === 'true') {
1847              clearInterval(v2WatcherInterval);
1848              return;
1849            }
1850            var response = getV2Response();
1851            if (response) {
1852              clearInterval(v2WatcherInterval);
1853              submitVerifiedForm();
1854            }
1855          }, 250);
1856        }
1857
1858        // Main flow: validation first, then v3 score check, then v2 fallback if needed.
1859        form.addEventListener('submit', function(event) {
1860          if (form.dataset[passedFlag] === 'true') {
1861            return;
1862          }
1863
1864          // If a prior handler (e.g. email/checkbox validation) already stopped submission, bail out.
1865          if (event.defaultPrevented) {
1866            return;
1867          }
1868
1869          event.preventDefault();
1870
1871          if (form.dataset[awaitingFlag] === 'true') {
1872            if (getV2Response()) {
1873              submitVerifiedForm();
1874            } else {
1875              beginV2Challenge();
1876            }
1877            return;
1878          }
1879
1880          grecaptcha.ready(function() {
1881            runV3AndScore(config.v3SiteKey, config.submitAction)
1882              .then(function(data) {
1883                var score = Number(data && data.score);
1884                var recaptchaSuccess = Boolean(data && (data.recaptcha_success || data.success));
1885                var scorePass = !Number.isNaN(score) && score > config.scoreThreshold;
1886
1887                if (recaptchaSuccess && scorePass) {
1888                  submitVerifiedForm();
1889                  return;
1890                }
1891                beginV2Challenge();
1892              })
1893              .catch(function() {
1894                // If v3 fails (network/API), still let real users complete v2.
1895                beginV2Challenge();
1896              });
1897          });
1898        });
1899      });
1900    }
1901
1902    // Wire everything once grecaptcha is available.
1903    function setupAllConfigs() {
1904      if (typeof grecaptcha === 'undefined') {
1905        return false;
1906      }
1907      window._signupRecaptchaConfigs.forEach(function(formConfig, index) {
1908        wireConfig(formConfig, index);
1909      });
1910      return true;
1911    }
1912
1913    document.addEventListener('DOMContentLoaded', function() {
1914      var v3SiteKey = window._signupRecaptchaSharedConfig.v3SiteKey;
1915      if (v3SiteKey) {
1916        loadRecaptchaScripts(v3SiteKey);
1917      }
1918
1919      if (setupAllConfigs()) {
1920        return;
1921      }
1922
1923      // Retry briefly while external recaptcha scripts finish loading.
1924      var attempts = 0;
1925      var interval = setInterval(function() {
1926        attempts += 1;
1927        if (typeof grecaptcha !== 'undefined') {
1928          clearInterval(interval);
1929          setupAllConfigs();
1930        } else if (attempts > 50) {
1931          clearInterval(interval);
1932        }
1933      }, 100);
1934    });
1935  })();
1936</script>
1936
1937
1938        
1939        
1940        <!-- Track signups for Facebook Conversions API -->
1941        
1942
1943<script type="module" src="/static/js/dist/signupValidation.bundle.js?162315011026" ></script>
1943
1944
1945        
1946
1947<script type="module" src="/static/js/dist/gtmEvents.bundle.js?162315011026" ></script>
1947
1948
1949        <!-- Convert straight quotes to curly -->
1950        
1951
1952<script type="module" src="/static/js/dist/smartQuotes.bundle.js?162315011026" ></script>
1952
1953
1954        <!-- HTMX press release analytics -->
1955        
1956            
1957
1958<script type="module" src="/static/js/dist/htmxPressReleaseAnalytics.bundle.js?162315011026" ></script>
1958
1959
1960        
1961
1962        
1963
1964        
1965
1966
1967        
1968
1969        
1969<script>
1970            // Set cookie if we're on mobile app. Expire if we're not. This affects
1971            // which template is used to display the site to the user.
1972            $(document).ready(function() {
1973                // Get integer value of mobileapp param from URL and default to 0 if it doesn't exist
1974                var mobileapp = '';
1975
1976                // Set cookie if mobileapp is 1 or 2 or expire cookie if mobileapp == 0
1977                if (mobileapp == '0') {
1978                    document.cookie = 'mobileapp=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
1979                } else if (mobileapp == '1' || mobileapp == '2') {
1980                    document.cookie = 'mobileapp=' + mobileapp + '; path=/;';
1981                }
1982
1983                // There's no need to immediately load or preload print.css since it's not needed on page
1984                // load. Therefore, load it when the document is ready
1985                var stylesheet=document.createElement("link");
1986                stylesheet.setAttribute("rel", "stylesheet");
1987                stylesheet.setAttribute("type", "text/css");
1988                stylesheet.setAttribute("media", "print");
1989                if (window.location.pathname.includes('trendline')) {
1990                    stylesheet.setAttribute("href", "/static/css/print_trendline.css?012315011026");
1991                }
1992                else {
1993                    stylesheet.setAttribute("href", "/static/css/print.css?012315011026");
1994                }
1995                document.getElementsByTagName("head")[0].appendChild(stylesheet);
1996            });
1997        </script>
1997
1998
1999
2000        
2001
2002        
2003            <!-- Sailthru Horizon -->
2004
2005
2006<!-- 
2006<script type="text/javascript" src="https://ak.sail-horizon.com/horizon/v1.js"></script>
2006 -->
2007
2008<script data-osano="MARKETING" src="https://ak.sail-horizon.com/spm/spm.v1.min.js"></script>
vendor: 1 bytes, line 2008
2008
2009<script type="text/javascript">
2010    $(function() {
2011        // Sailthru Personalization Engine Setup
2012        var sailthru_setup = {
2013            customerId: '12ab35a80530ffa5450add9c09f5de04',
2014            domain: 'horizon.educationdive.com',
2015            spider: false
2016        };
2017        
2018        if (window.Sailthru) {
2019            Sailthru.init(sailthru_setup);
2020        }
2021    });
2022</script>
2022
2023
2024
2025        
2026        
2027    </body>
2028</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.