Subscribe to Twig Science Reporter!

Twig Science Reporter is a unique science news service tailored for K–8 classrooms. Each Thursday, we dive into the biggest news in science, aiming to spark students’ interest through scientific inquiry and reasoning.

It's the ideal resource for educators looking to bring real-world science into their teaching and inspire students to ask questions, explore, and discover.
;(function(){'use strict'; /****************** CONFIGURATION VARIABLES ******************/ // Use Marketo's SOAP API names of corresponding UTM fields var utmFields = { 'utmmedium' : 'utmmedium' , 'utmsource' : 'utmsource' , 'utmcampaign' : 'utmcampaign' , 'utmcontent' : 'utmcontent' , 'utmterm' : 'utmterm' , 'utm_adgroup' : '' }; // Use Marketo's SOAP API names of corresponding _original_ UTM fields var utmOrigFields = { 'utm_medium' : 'original_utm_medium' , 'utm_source' : 'original_utm_source' }; /**************** DO NOT EDIT BELOW THIS LINE ****************/ var version="200514",cookieName="dpi_utmVals",cookieOrigName="dpi_utmOrigVals",cookieExpiry=180,cookieDomain="",_=function(o){"#debug"===location.hash&&.log(o)},getQueryVar=function(o){o=o.replace(/[*+?^$.\[\]{}()|\\\/]/g,"\\$&");var e=location.search.match(new RegExp("[?&]"+o+"=([^&]+)(&|$)"));return e&&(e[1].replace(/\+/g," "))},getCookie=function(o){var e=document.cookie.match("(^|;) ?"+o+"=([^;]*)(;|$)");return e?JSON.parse(e[2]):null},setCookie=function(o,e,i,t){var n=new Date;n.setTime(n.getTime()+864e5*i);var c="";"string"==typeof t&&.length>0&&(c=";domain=."+t),document.cookie=o+"="+JSON.stringify(e)+";path=/;expires="+n.toGMTString()+c},deleteCookie=function(o,e){setCookie(o,"",-1,e)},getCookieDomain=function(){for(var o=location.hostname.split("."),e="",i=o.length-1;i>=0;i--){if(e=e.length>0?o[i]+"."+e:o[i],setCookie("dpi_test",e,1,e),getCookie("dpi_test"))return deleteCookie("dpi_test",e),e;if(0===i)return null}},recordNone=function(){if(_("Checking for "+cookieOrigName+" cookie..."),getCookie(cookieOrigName))_(cookieOrigName+" cookie already set; no change");else{var o={};Object.keys(utmOrigFields).forEach(function(e){o[utmOrigFields[e]]="none"}),setCookie(cookieOrigName,o,cookieExpiry,cookieDomain),_("Set "+cookieOrigName+' cookie with "none"')}},init=function(){_("Running init() function");var o={},e={},i="",t=0,n=[cookieName,cookieOrigName];if(cookieDomain=getCookieDomain(),_("Cookie domain is "+cookieDomain),_("Checking for query string..."),location.search.length){var c;for(c in _("Query string found; searching for UTM parameters and values..."),utmFields)(i=getQueryVar(c))?(t++,o[utmFields[c]]=i):o[utmFields[c]]="NULL";for(c in utmOrigFields)i=getQueryVar(c),e[utmOrigFields[c]]=i||"none";t>0?(_("Found "+t+" UTM values in query string"),setCookie(cookieName,o,cookieExpiry,cookieDomain),_("Set "+cookieName+" cookie with "+t+" UTM values"),_("Checking for "+cookieOrigName+" cookie..."),getCookie(cookieOrigName)?_(cookieOrigName+" cookie already set; no change"):(setCookie(cookieOrigName,e,cookieExpiry,cookieDomain),_("Set "+cookieOrigName+" cookie with "+Object.keys(e).length+" UTM values"))):(_("No UTM values present in query string"),recordNone())}else _("No query string found"),recordNone();if(_("Checking for MktoForms2 API..."),"object"!=typeof MktoForms2)return _("MktoForms2 API not detected; exiting"),!1;_("MktoForms2 API detected"),MktoForms2.whenReady(function(o){var e=o.getFormElem()[0];_("Marketo form detected (#mktoForm_"+o.getId()+")"),n.forEach(function(i){_("Checking for "+i+" cookie..."),getCookie(i)?(_("Found "+i+" cookie with "+Object.keys(getCookie(i)).length+" UTM values"),_("Adding UTM values from "+i+" cookie to Marketo form #mktoForm_"+o.getId()),o.addHiddenFields(getCookie(i)),e.getAttribute("digitalpi-utms-added")||e.setAttribute("digitalpi-utms-added",!0)):_(i+" cookie not found")}),o.onSuccess(function(){_("Marketo form (#mktoForm_"+o.getId()+") submitted successfully with UTM data; deleting "+cookieName+" cookie"),deleteCookie(cookieName,cookieDomain)})})},global=function(){_("_digitalpi object defined in global scope"),window._digitalpi=window._digitalpi||{},_("_digitalpi.trackUTMs() defined in global scope"),window._digitalpi.trackUTMs=function(){init()}},c=function(){var o="%cUTM Tracking for %cMarketo. %c❤%c, @digitalpi. %cVersion: "+version+". Append #debug to URL to enable console logging.",e={1:"WFhYWCAgIFhYWFhYWFhYICAgIFhYWFg=",2:"ICAgIFhYWA==",3:"WFhYWCAgICAgICBYWFhYICAgIFhYWFg=",4:"ICAgIFhYWFhY",5:"WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFg=",6:"ICAgIFg=",7:"WFhYWCAgIFhYICAgWFhYICAgIFhYWFg="},i="";[5,5,3,7,7,3,1,1,5,5,4,2,6].forEach(function(o){i+=atob(e[o])+"\n"}),console.log(o,"font-weight:bold;color:#646669","font-weight:bold;color:#5944b0","font-size:125%;color:#3AA5B6","color:#3AA5B6","font-weight:normal;color:#C4C6C9"),"#debug"===location.hash&&.log("%c"+i+"%cUTM Tracking for Marketo\n%cAuthor: Jon Bourne, jonbourne.com\nCompany: Digital Pi, digitalpi.com\nVersion: "+version,"color:#3AA5B6","font-weight:bold;color:#3AA5B6","color:#C4C6C9")};/complete|interactive|loaded/.test(document.readyState)?(_("Document loaded; calling init()"),c(),init(),global()):(_("Document not loaded; setting DOMContentLoaded event listener to call init()"),document.addEventListener("DOMContentLoaded",function(){_("DOMContentLoaded event fired; calling init()"),c(),init(),global()})); })();