[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"cms-page:\u002Fabout\u002Four-team\u002Faaron-dicks\u002Fpage\u002F9":3},{"name":4,"url":5,"description":6,"avatar_urls":7,"acf":9,"social":213,"head_links":216,"breadcrumbs":201,"posts":220,"pages":196,"head":1465},"Aaron Dicks","","Chief Technology Officer of Impression. Previously a developer and SEO, I now oversee our technology- and data-driven services, as well as some of our innovation and software development. Technical problem solver.",{"24":8,"48":8,"96":8},"https:\u002F\u002Fimages.impression.co.uk\u002F2023\u002F10\u002FAaron-Dicks2.png?auto=compress&fit=fit&fm=jpg&h=96&q=90&w=96",{"job_title":10,"full_bio":11,"specialist_service_links":12,"photo":71,"page_content_modules":127,"hero":197},"Chief Technology Officer","\u003Cp>Chief Technology Officer. Co-founded Impression in 2012.\u003C\u002Fp>\n\u003Cp>I’m a self-taught web developer who stumbled into digital marketing through a part time job at University. I went on to work with a number of digital agencies when I was in an in-house marketing manager role which led me to identify an opportunity to start Impression to offer a better service and product.\u003C\u002Fp>\n\u003Cp>Having been here from day one, I’ve held many roles at Impression, but have since settled back into a technology role. I lead our technology and data service design and delivery and also look after some of our internal media software development.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Something that I’m proud of:\u003C\u002Fstrong>\u003Cbr \u002F>\nBuilding a business that can have so many positive impacts across our team, clients and &#8211; in time &#8211; a more positive impact on the community and environment.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Outside of work:\u003C\u002Fstrong>\u003Cbr \u002F>\nYou’ll find me walking my Giant Schnoodle, Otto.\u003C\u002Fp>\n",[13,30,42,52,62],{"page":14,"link_text":18},{"ID":15,"post_author":16,"post_date":17,"post_date_gmt":17,"post_content":5,"post_title":18,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":21,"to_ping":5,"pinged":5,"post_modified":22,"post_modified_gmt":22,"post_content_filtered":5,"post_parent":23,"guid":24,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":29},108,"98","2020-12-16 14:36:55","Digital Marketing Strategy","publish","closed","strategy","2025-10-29 17:34:16",33,"\u002F?page_id=108",0,"page","0","raw","\u002Fdigital-marketing\u002Fstrategy\u002F",{"page":31,"link_text":41},{"ID":32,"post_author":33,"post_date":34,"post_date_gmt":34,"post_content":5,"post_title":35,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":36,"to_ping":5,"pinged":5,"post_modified":37,"post_modified_gmt":37,"post_content_filtered":5,"post_parent":38,"guid":39,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":40},24830,"1","2023-09-09 12:14:08","Media Measurement","measurement","2026-09-25 10:45:33",17552,"\u002F?page_id=24830","\u002Fmedia-solutions\u002Fmeasurement\u002F","Media Effectiveness & MMM",{"page":43,"link_text":46},{"ID":44,"post_author":16,"post_date":45,"post_date_gmt":45,"post_content":5,"post_title":46,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":47,"to_ping":5,"pinged":5,"post_modified":48,"post_modified_gmt":48,"post_content_filtered":5,"post_parent":49,"guid":50,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":51},244,"2020-12-21 14:32:54","CRO","cro","2026-04-13 10:27:20",24873,"\u002F?page_id=244","\u002Fdigital-experience\u002Fcro\u002F",{"page":53,"link_text":61},{"ID":54,"post_author":16,"post_date":55,"post_date_gmt":55,"post_content":5,"post_title":56,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":57,"to_ping":5,"pinged":5,"post_modified":58,"post_modified_gmt":58,"post_content_filtered":5,"post_parent":25,"guid":59,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":60},374,"2021-01-11 16:25:32","Analytics","analytics","2026-09-28 11:36:16","\u002F?page_id=374","\u002Fanalytics\u002F","Enterprise Analytics",{"page":63,"link_text":66},{"ID":64,"post_author":16,"post_date":65,"post_date_gmt":65,"post_content":5,"post_title":66,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":67,"to_ping":5,"pinged":5,"post_modified":68,"post_modified_gmt":68,"post_content_filtered":5,"post_parent":25,"guid":69,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":70},20655,"2023-01-04 14:22:27","CRM","crm","2025-03-13 14:52:45","\u002F?page_id=20655","\u002Fcrm\u002F",{"ID":72,"id":72,"title":73,"filename":74,"filesize":75,"url":76,"link":77,"alt":5,"author":78,"description":5,"caption":5,"name":79,"status":80,"uploaded_to":25,"date":81,"modified":81,"menu_order":25,"mime_type":82,"type":83,"subtype":84,"icon":85,"width":86,"height":87,"sizes":88},25129,"Aaron-Dicks2","Aaron-Dicks2.png",305948,"https:\u002F\u002Fimages.impression.co.uk\u002F2023\u002F10\u002FAaron-Dicks2.png?auto=compress%2Cformat&q=90","\u002Faaron-dicks2\u002F","12","aaron-dicks2","inherit","2023-10-03 15:58:10","image\u002Fpng","image","png","\u002Fwp\u002Fwp-includes\u002Fimages\u002Fmedia\u002Fdefault.png",696,600,{"thumbnail":89,"thumbnail-width":90,"thumbnail-height":90,"medium":91,"medium-width":92,"medium-height":93,"medium_large":94,"medium_large-width":95,"medium_large-height":96,"large":97,"large-width":98,"large-height":99,"1536x1536":100,"1536x1536-width":101,"1536x1536-height":102,"2048x2048":103,"2048x2048-width":104,"2048x2048-height":105,"post-thumbnail":106,"post-thumbnail-width":107,"post-thumbnail-height":108,"12_col":109,"12_col-width":110,"12_col-height":111,"default_landscape":112,"default_landscape-width":113,"default_landscape-height":87,"default_portrait":114,"default_portrait-width":87,"default_portrait-height":113,"6_col_and_margin_short":115,"6_col_and_margin_short-width":107,"6_col_and_margin_short-height":111,"11_col_and_margin":116,"11_col_and_margin-width":117,"11_col_and_margin-height":111,"9_col_rectangle":118,"9_col_rectangle-width":119,"9_col_rectangle-height":120,"11_col":121,"11_col-width":122,"11_col-height":111,"staff_image_696_600":123,"staff_image_696_600-width":86,"staff_image_696_600-height":87,"rectangular_thumbnail":124,"rectangular_thumbnail-width":125,"rectangular_thumbnail-height":126},"https:\u002F\u002Fimages.impression.co.uk\u002F2023\u002F10\u002FAaron-Dicks2.png?auto=compress%2Cformat&fit=crop&h=640&q=90&w=640","640","https:\u002F\u002Fimages.impression.co.uk\u002F2023\u002F10\u002FAaron-Dicks2.png?auto=compress%2Cformat&fit=scale&h=172&q=90&w=200",200,172,"https:\u002F\u002Fimages.impression.co.uk\u002F2023\u002F10\u002FAaron-Dicks2.png?auto=compress%2Cformat&fit=scale&h=662&q=90&w=768",768,662,"https:\u002F\u002Fimages.impression.co.uk\u002F2023\u002F10\u002FAaron-Dicks2.png?auto=compress%2Cformat&fit=crop&h=1000&q=90&w=1892","1892","1000","https:\u002F\u002Fimages.impression.co.uk\u002F2023\u002F10\u002FAaron-Dicks2.png?auto=compress%2Cformat&fit=scale&h=1324&q=90&w=1536",1536,1324,"https:\u002F\u002Fimages.impression.co.uk\u002F2023\u002F10\u002FAaron-Dicks2.png?auto=compress%2Cformat&fit=scale&h=1766&q=90&w=2048",2048,1766,"https:\u002F\u002Fimages.impression.co.uk\u002F2023\u002F10\u002FAaron-Dicks2.png?auto=compress%2Cformat&fit=crop&h=1180&q=90&w=1860",1860,1180,"https:\u002F\u002Fimages.impression.co.uk\u002F2023\u002F10\u002FAaron-Dicks2.png?auto=compress%2Cformat&fit=crop&h=870&q=90&w=2880",2880,870,"https:\u002F\u002Fimages.impression.co.uk\u002F2023\u002F10\u002FAaron-Dicks2.png?auto=compress%2Cformat&fit=crop&h=600&q=90&w=800",800,"https:\u002F\u002Fimages.impression.co.uk\u002F2023\u002F10\u002FAaron-Dicks2.png?auto=compress%2Cformat&fit=crop&h=800&q=90&w=600","https:\u002F\u002Fimages.impression.co.uk\u002F2023\u002F10\u002FAaron-Dicks2.png?auto=compress%2Cformat&fit=crop&h=870&q=90&w=1860","https:\u002F\u002Fimages.impression.co.uk\u002F2023\u002F10\u002FAaron-Dicks2.png?auto=compress%2Cformat&fit=crop&h=870&q=90&w=3080",3080,"https:\u002F\u002Fimages.impression.co.uk\u002F2023\u002F10\u002FAaron-Dicks2.png?auto=compress%2Cformat&fit=crop&h=1400&q=90&w=2150",2150,1400,"https:\u002F\u002Fimages.impression.co.uk\u002F2023\u002F10\u002FAaron-Dicks2.png?auto=compress%2Cformat&fit=crop&h=870&q=90&w=2640",2640,"https:\u002F\u002Fimages.impression.co.uk\u002F2023\u002F10\u002FAaron-Dicks2.png?auto=compress%2Cformat&fit=crop&h=600&q=90&w=696","https:\u002F\u002Fimages.impression.co.uk\u002F2023\u002F10\u002FAaron-Dicks2.png?auto=compress%2Cformat&fit=crop&h=300&q=90&w=750",750,300,[128],{"acf_fc_layout":129,"reduced":130,"top_overlap":-1,"bottom_underlap":-1,"disable_observer":-1,"title":131,"posts":132},"author_posts",true,"Aaron Dicks’ posts",{"data":133,"pages":196},[134,148,156,168,179,186],{"type_key":135,"title":136,"excerpt":137,"to":138,"postedAt":139,"readingTime":140,"image":141,"authors":142,"category":145},"post","Running WordPress entirely behind Amazon Cloudfront to achieve global sub-1000ms page load times","\u003Cp>This post was first written in 2018, and whilst at the time of updating, Jan 2020, this is not wrong, there are a number of other methods of speeding up your WordPress website.\u003C\u002Fp>\n","\u002Fblog\u002Fwordpress-amazon-cloudfront\u002F","2022-02-07T16:48:33",16,"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002Fhuo3bc0z-050720211625522068_clouds-sky-scaled.jpg?auto=compress%2Cformat&fit=crop&h=640&q=90&w=640",[143],{"name":4,"image":144},"https:\u002F\u002Fimages.impression.co.uk\u002F2023\u002F10\u002FAaron-Dicks2.png?auto=compress&fit=crop&fm=jpg&h=150&q=80&w=150&bg=CFE6F9",{"to":146,"name":147},"\u002Fblog\u002Fcategory\u002Fweb\u002F","Web",{"type_key":135,"title":149,"excerpt":150,"to":151,"postedAt":139,"readingTime":152,"image":5,"authors":153,"category":155},"Monitoring website uptime in Google Sheets &#8211; with email alerts","\u003Cp>If you&#8217;re looking for a very simple and free way to monitor a number of websites&#8217; uptime, then look no further. At Impression, we use Uptime Robot for our hosted clients, but in order to give our team distributed alerts we wanted a lower overhead solution which could be shared around. Labnol created a great [&hellip;]\u003C\u002Fp>\n","\u002Fblog\u002Fmonitoring-website-uptime-google-sheets-email-alerts\u002F",2,[154],{"name":4,"image":144},{"to":146,"name":147},{"type_key":135,"title":157,"excerpt":158,"to":159,"postedAt":160,"readingTime":161,"image":162,"authors":163,"category":165},"WordPress Contact Form 7 Event listeners and Google Tag Manager","\u003Cp>The plugin landscape has changed a lot has changed over the years &#8212; but Contact Form 7 is still one of the most popular WordPress plugin is still one of my favourites. Tracking events from WP Contact Form 7 in Google Analytics 1. Tag managers and data layers Well, firstly, the last few years has [&hellip;]\u003C\u002Fp>\n","\u002Fblog\u002Fwordpress-contact-form-7-event-listeners-gtm\u002F","2022-10-05T10:17:58",6,"https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Fmyriam-jessier-eveI7MOcSmw-unsplash.jpg?auto=compress%2Cformat&fit=crop&h=640&q=90&w=640",[164],{"name":4,"image":144},{"to":166,"name":167},"\u002Fblog\u002Fcategory\u002Fmeasurement\u002F","Measurement",{"type_key":135,"title":169,"excerpt":170,"to":171,"postedAt":172,"readingTime":173,"image":5,"authors":174,"category":176},"How to Build a Google Data Studio Community Connector — Tutorial","\u003Cp>What is Google Data Studio? Google Data Studio is a data dashboard and reporting tool which provides easy-to-read, shareable and customisable reports from a variety of data sources. Data Studio is now free to use and can produce reports from almost any online data source; including digital marketing analytics, CRM pipelines, YouTube stats, etc. You [&hellip;]\u003C\u002Fp>\n","\u002Fblog\u002Fbuild-google-data-studio-community-connector\u002F","2022-02-07T16:48:34",9,[175],{"name":4,"image":144},{"to":177,"name":178},"\u002Fblog\u002Fcategory\u002Fdigital-marketing\u002F","Digital Marketing",{"type_key":135,"title":180,"excerpt":181,"to":182,"postedAt":172,"readingTime":152,"image":5,"authors":183,"category":185},"AdWords Parallel Tracking — another site speed triumph","\u003Cp>AdWords now allows advertisers to deliver an up-to-20% faster click through experience from search results with new technology which removes the link tracking service to run in parallel to the advertiser&#8217;s page load. Most link tracking software works by redirecting users via a server which quickly forwards users on to the destination, only leaving behind [&hellip;]\u003C\u002Fp>\n","\u002Fblog\u002Fadwords-parallel-tracking\u002F",[184],{"name":4,"image":144},{"to":166,"name":167},{"type_key":135,"title":187,"excerpt":188,"to":189,"postedAt":190,"readingTime":191,"image":192,"authors":193,"category":195},"Google Analytics releases new unified &#8216;Global Site Tag&#8217; &#8211; gtag.js","\u003Cp>Recently Google Analytics has quietly released into Beta a new unified site tracking tag called gtag.js.\u003C\u002Fp>\n","\u002Fblog\u002Fgoogle-analytics-new-gtag-js\u002F","2022-02-07T16:48:36",3,"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002F7GPumx1x-050720211625523465_google-analytics-gtagjs-scaled.jpg?auto=compress%2Cformat&fit=crop&h=640&q=90&w=640",[194],{"name":4,"image":144},{"to":166,"name":167},"15",{"type":198,"style":199,"title":200,"heading":4,"intro":11,"services":12,"breadcrumbs":201,"photo":89,"social":213},"author","dark","Meet the Team",[202,205,208,211],{"path":203,"name":204},"\u002F","Home",{"path":206,"name":207},"\u002Fabout\u002F","About Us",{"path":209,"name":210},"\u002Fabout\u002Four-team\u002F","Meet the team",{"path":212,"name":4},null,{"twitter":214,"linkedin":215},"https:\u002F\u002Ftwitter.com\u002Faarondicks","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Faarondicks\u002F",[217],{"rel":218,"href":219},"canonical","https:\u002F\u002Fwww.impressiondigital.com\u002Fabout\u002Four-team\u002Faaron-dicks\u002F",[221,549,721,921,1099,1271],{"id":222,"date":223,"date_gmt":223,"guid":224,"modified":139,"modified_gmt":139,"slug":226,"status":19,"type":135,"link":138,"title":227,"content":228,"excerpt":231,"author":232,"featured_media":233,"comment_status":234,"ping_status":234,"sticky":230,"template":5,"format":235,"meta":236,"categories":239,"collections":241,"coauthors":242,"class_list":243,"acf":251,"head_links":252,"breadcrumbs":253,"url_path":138,"search_description":238,"featured_image_urls":260,"authors":295,"type_nicename":312,"reading_minutes":140,"category":313,"yoast_title":237,"yoast_meta":315,"yoast_json_ld":371,"_links":500},3573,"2018-01-08T16:08:18",{"rendered":225},"https:\u002F\u002Fimpression.test\u002Fblog\u002Fwordpress-amazon-cloudfront\u002F","wordpress-amazon-cloudfront",{"rendered":136},{"rendered":229,"protected":230},"\n\u003Cp>This post was first written in 2018, and whilst at the time of updating, Jan 2020, this is not wrong, there are a number of other methods of speeding up your WordPress website.\u003C\u002Fp>\n\n\n\n\u003Cp class=\"has-background\" style=\"background-color:#23b09b;color: white;font-family: 'Red Hat Display'; id=\" updated-post\"=\"\">\u003Cstrong>We now recommend \u003Cstrong>Kinsta web hosting\u003C\u002Fstrong> for standard WordPress multi page applications as their bespoke caching layers are just as great as those seen in this tutorial, and also strongly advocate performant JavaScript Single Page Applications (SPAs) if you or your developers have the skillset\u003C\u002Fstrong>\u003C\u002Fp>\n\n\n\n\u003Cp>Use Amazon as a full page cache solution and enjoy the benefits of high availability and global coverage &#8211; all whilst reducing your site’s perceived response time to a fraction of what it was &#8211; with this guide.\u003C\u002Fp>\n\n\n\n\u003Cp>I’m sure I’m not alone when I go to spin up a new server and err on the side of caution when picking the instance size in Amazon’s dashboard. “Small” might be too small for even a modest B2B lead generation site like ours.\u003C\u002Fp>\n\n\n\n\u003Cp>Our traffic is growing monthly, and we periodically run aggressive paid campaigns around asset downloads &#8211; so we need to be somewhere fit for the future that can handle traffic spikes and an increasingly global audience.\u003C\u002Fp>\n\n\n\n\u003Cp>The aim of this exercise is to achieve a page load time under 1 second, which, as \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fdevelopers.google.com\u002Fspeed\u002Fdocs\u002Finsights\u002Fmobile\">Google Developers put here\u003C\u002Fa>, is a reasonable requirement for mobile users to see only the above the fold content. On desktops, we’d expect faster load times so we expect to load the entire page in this time. We also want to achieve this result, within some margin, globally.\u003C\u002Fp>\n\n\n\n\u003Ch2 class=\"wp-block-heading\" id=\"amazon-web-services\">Amazon Web Services\u003C\u002Fh2>\n\n\n\n\u003Cp>There are plenty of services out there which can accomplish similar results to those shown here, but our preference is the Amazon Web Services platform as we’re familiar with it. In essence, the steps we need to accomplish are (don’t jump ahead &#8211; there’s some required setup below):\u003C\u002Fp>\n\n\n\n\u003Col class=\"wp-block-list\">\u003Cli style=\"font-weight: 400;\">Environment configuration\u003C\u002Fli>\u003Cli style=\"font-weight: 400;\">Configuring your current setup\u003C\u002Fli>\u003Cli style=\"font-weight: 400;\">Setting up Cloudfront\u003C\u002Fli>\u003Cli style=\"font-weight: 400;\">Local testing\u003C\u002Fli>\u003Cli style=\"font-weight: 400;\">Going ‘live’ with your Cloudfront distribution\u003C\u002Fli>\u003C\u002Fol>\n\n\n\n\u003Ch2 class=\"wp-block-heading\" id=\"1-environment-configuration\">1. Environment configuration\u003C\u002Fh2>\n\n\n\n\u003Cp>Before we begin, be aware that many WordPress Cloudfront blogs are simply talking about using Cloudfront as an asset-only origin-pull CDN (content delivery network) mirror rather than a full page cache. Under an asset CDN model, your web server is still handling all HTTP requests to deliver pages. Conversely, with a full page CDN setup, all of your non-transactional HTTP requests will simply be served a static\u002Fsnapshot HTML version of your web page in a split second. The request doesn’t touch your server until customers start engaging with shopping carts or filling forms (or you drop them a cookie &#8211; more on this later).\u003C\u002Fp>\n\n\n\n\u003Cp>You don’t need to be using Amazon Web Services to host your website for this to work. But in the aim of keeping everything together, it’s worth pointing out you can host your website on Amazon’s EC2 servers (behind a load balancer if you wish) and you can also manage your DNS through Amazon’s Route 53 DNS service, too.\u003C\u002Fp>\n\n\n\n\u003Cp>You will likely want an SSL certificate on your origin server, but you can also manage your public facing SSL Certificate via AWS’ Certificate Manager, which provides a good level of security and trust for your customers. We have chosen Let’s Encrypt for our origin server’s TLS supplier, but during the setup of this process, Let’s Encrypt won’t work as you need a public domain, so we used a premium SSL we had that was about to expire to bridge the gap for us. Alternatively, you could launch insecurely on HTTP and then go through the upgrade process retrospectively (origin first, then Cloudfront as discussed below &#8212; you can then change the behaviour of the Cloudfront distribution to upgrade HTTP to HTTPS traffic for you).\u003C\u002Fp>\n\n\n\n\u003Ch2 class=\"wp-block-heading\" id=\"2-configuring-your-current-setup\">2. Configuring your current setup\u003C\u002Fh2>\n\n\n\n\u003Cp>It’s a lot easier to make these changes on a duplicate server, rather than your live one, for obvious reasons &#8211; but I’ll leave the exact process for you to decide. Bear in mind some of the steps below will temporarily impact public site delivery.\u003C\u002Fp>\n\n\n\n\u003Cp>You will need to ensure your origin server can be served at different URLs. We chose a subdomain to ensure DNS management was easier. Let’s say we also ensure our website is addressable and accessible at example.impression.co.uk, which you can easily achieve by adding an additional Alias entry into your vhosts file and then restarting the process. For NGiNX, this would look something like;\u003C\u002Fp>\n\n\n\n\u003Cp>\u003Ccode>server {\u003Cbr>\nlisten 80;\u003Cbr>\nserver_name impression.co.uk www.impressiondigital.com example.impression.co.uk;\u003Cbr>\n...\u003Cbr>\n}\u003C\u002Fcode>\u003C\u002Fp>\n\n\n\n\u003Cp>Once this configuration has been changed, then you are ready to set up your TLS\u002FSSL certificate and Cloudfront distribution.\u003C\u002Fp>\n\n\n\n\u003Cp>In AWS, select Certificate Manager and follow the intuitive steps. Remember this is for your main public www. domain. You’ll need to verify your ownership via a standard administrator verification email, but the process of creating a certificate is relatively painless. (I believe you can also import your own certificates if you need to, but we haven’t completed this ourselves just yet so cannot recommend this approach.)\u003C\u002Fp>\n\n\n\n\u003Cdiv class=\"wp-block-image\">\u003Cfigure class=\"aligncenter is-resized\">\u003Cimg loading=\"lazy\" decoding=\"async\" src=\"https:\u002F\u002Fcdn.impression.co.uk\u002F2021\u002F05\u002Famazon-certificate-manager-success.jpg\" alt=\"\" class=\"wp-image-9096\" width=\"543\" height=\"406\"\u002F>\u003C\u002Ffigure>\u003C\u002Fdiv>\n\n\n\n\u003Cp>Cloudfront does allow you to extend the “Cache-Control” header for minimizing your AWS bills, but there are a few various settings you will want to make on your server before getting started. These are typical optimisations which you should really consider rolling out regardless;\u003C\u002Fp>\n\n\n\n\u003Cul class=\"wp-block-list\">\u003Cli style=\"font-weight: 400;\">Enable gzip compression\u003C\u002Fli>\u003Cli style=\"font-weight: 400;\">Remove query string from static resources\u003C\u002Fli>\u003Cli style=\"font-weight: 400;\">Extend browser cache lifetime\u003C\u002Fli>\u003Cli style=\"font-weight: 400;\">Compress and concatenate CSS and JavaScript files\u003C\u002Fli>\u003C\u002Ful>\n\n\n\n\u003Cp>I’ve covered all of these briefly below for an NGiNX setup. Apache alternatives are available, though, and actually Google’s Pagespeed module for both Apache and NGiNX is very good at adding much of this for you.\u003C\u002Fp>\n\n\n\n\u003Cp>Also, many WordPress plugins achieve the same, but we prefer less WordPress plugin code bloat where possible.\u003C\u002Fp>\n\n\n\n\u003Ch3 class=\"wp-block-heading\" id=\"enable-gzip-compression\">Enable gzip compression\u003C\u002Fh3>\n\n\n\n\u003Cp>By default, gzip compression is likely already enabled, but it’s always good to check. Smaller files mean less bandwidth transfer to your website visitors, but with a service feeding this for you, it will also translate to a small cost saving, too.\u003C\u002Fp>\n\n\n\n\u003Cp>Check your nginx.conf file, located here: \u002Fetc\u002Fnginx\u002Fnginx.conf\u003C\u002Fp>\n\n\n\n\u003Cp>The most important lines below are gzip on and gzip_types;\u003C\u002Fp>\n\n\n\n\u003Cp>\u003Ccode>gzip on;\u003Cbr>\ngzip_disable \"msie6\";\u003Cbr>\ngzip_vary on;\u003Cbr>\ngzip_proxied any;\u003Cbr>\ngzip_comp_level 6;\u003Cbr>\ngzip_buffers 16 8k;\u003Cbr>\ngzip_http_version 1.1;\u003Cbr>\ngzip_types text\u002Fplain text\u002Fcss application\u002Fjson application\u002Fx-javascript text\u002Fxml application\u002Fxml application\u002Fxml+rss text\u002Fjavascript;\u003C\u002Fcode>\u003C\u002Fp>\n\n\n\n\u003Cp>If you needed to edit this file, ensure that it’s saved and you test and restart the NGiNX process.\u003C\u002Fp>\n\n\n\n\u003Ch3 class=\"wp-block-heading\" id=\"remove-query-string-from-static-resources\">Remove query string from static resources\u003C\u002Fh3>\n\n\n\n\u003Cp>Some services will not cache files which are referenced with query strings in their URLs. This is because feasibly the query string is making the file response in some way dynamic, or it is referencing a particular file version. There are a couple of simple WordPress functions.php drop-ins which can achieve this quickly for you &#8212; as with all WordPress code editing, please ensure this is a good fit for your needs on a local or staging environment first;\u003C\u002Fp>\n\n\n\n\u003Cp>\u003Ccode>function impression_remove_asset_version( $url ){\u003Cbr>\n$parts = explode( '?', $url );\u003Cbr>\nreturn $parts[0];\u003Cbr>\n}\u003Cbr>\nadd_filter( 'script_loader_src', 'impression_remove_asset_version', 15, 1 );\u003Cbr>\nadd_filter( 'style_loader_src', 'impression_remove_asset_version', 15, 1 );\u003C\u002Fcode>\u003C\u002Fp>\n\n\n\n\u003Ch3 class=\"wp-block-heading\" id=\"extend-browser-cache-lifetime\">Extend browser cache lifetime\u003C\u002Fh3>\n\n\n\n\u003Cp>This is important as browsers, without knowing how long you expect a resource to be up-to-date for, will request it on every page load. Images and other media very rarely change once they’re uploaded, so include a snippet like this in your sites-available configuration and your users’ browsers will stop repeat queries to your files &#8212; and this will save you on your Cloudfront bills, too.\u003C\u002Fp>\n\n\n\n\u003Cp>\u003Ccode>location ~* .(js|css|png|jpg|jpeg|gif|ico)$ {\u003Cbr>\nexpires 1y;\u003Cbr>\n}\u003C\u002Fcode>\u003C\u002Fp>\n\n\n\n\u003Ch3 class=\"wp-block-heading\" id=\"compress-and-concatenate-css-and-javascript-files\">Compress and concatenate CSS and JavaScript files\u003C\u002Fh3>\n\n\n\n\u003Cp>With WP Bedrock, we use Laravel Mix in our build process to ensure we get fresh file names on each code compilation. This is a cache-busting way to publish new site content, but it may not be available to all depending on your build process. What we would suggest is in some way ensuring your CSS and Javascript file names are versioned so that you can take advantage of this caching behaviour, too.\u003C\u002Fp>\n\n\n\n\u003Cp>In addition, like many good build processes now, you should attempt to concatenate all similar file types, and also to compress them into smaller files. This will save initial bandwidth and also on request volume. We use Webpack at Impression, but Gulp, Grunt, Codekit, etc, are all good alternatives and they will achieve similar results.\u003C\u002Fp>\n\n\n\n\u003Cp>Once you’re all set up, you should see the following in your dashboard:\u003C\u002Fp>\n\n\n\n\u003Cp>Finally, before we set up the Cloudfront distribution, the other required step, should you wish to keep server-style logs, is to set up an empty S3 bucket. This is where the logs will be stored, as seen in the next image. The format is a little different to Apache\u002FNGiNX server logs but it’s a good idea to get these stored ready for when they’re needed. If they are, then you’re likely going to want to download and concatenate them via a command line\u002Fterminal window as each compressed log file is tiny.\u003C\u002Fp>\n\n\n\n\u003Cdiv class=\"wp-block-image\">\u003Cfigure class=\"aligncenter is-resized\">\u003Cimg loading=\"lazy\" decoding=\"async\" src=\"https:\u002F\u002Fcdn.impression.co.uk\u002F2021\u002F05\u002Fcloudfront-s3-logs.jpg\" alt=\"\" class=\"wp-image-9103\" width=\"588\" height=\"245\"\u002F>\u003C\u002Ffigure>\u003C\u002Fdiv>\n\n\n\n\u003Ch2 class=\"wp-block-heading\" id=\"3-setting-up-cloudfront\">3. Setting up Cloudfront\u003C\u002Fh2>\n\n\n\n\u003Cp>To set up Cloudfront, head to your Amazon Cloudfront dashboard, click “Create Distribution” and then select “Get Started” under the Web heading.\u003C\u002Fp>\n\n\n\n\u003Cdiv class=\"wp-block-image\">\u003Cfigure class=\"aligncenter is-resized\">\u003Cimg loading=\"lazy\" decoding=\"async\" src=\"https:\u002F\u002Fcdn.impression.co.uk\u002F2021\u002F05\u002Fcloudfront-create-distribution.jpg\" alt=\"\" class=\"wp-image-9099\" width=\"630\" height=\"100\"\u002F>\u003C\u002Ffigure>\u003C\u002Fdiv>\n\n\n\n\u003Cp>Enter your newly publicly accessible origin domain name, and either set or accept the default ID. I also like to set the Origin Protocol Policy to “match viewer” and then handle HTTP -&gt; HTTPS upgrades at both the server and Cloudfront levels.\u003C\u002Fp>\n\n\n\n\u003Cdiv class=\"wp-block-image\">\u003Cfigure class=\"aligncenter is-resized\">\u003Cimg loading=\"lazy\" decoding=\"async\" src=\"https:\u002F\u002Fcdn.impression.co.uk\u002F2021\u002F05\u002Faws-new-cf-origin.jpg\" alt=\"\" class=\"wp-image-9097\" width=\"576\" height=\"340\"\u002F>\u003C\u002Ffigure>\u003C\u002Fdiv>\n\n\n\n\u003Ch3 class=\"wp-block-heading\" id=\"origin-headers\">Origin headers\u003C\u002Fh3>\n\n\n\n\u003Cp>Next up, if you want to be extra secure, you can set headers here which are automatically appended to requests when they are sent to the origin. If you wanted to password protect your origin via htpasswd or similar, this is where you’d insert the username and password into the Authorization header in order to allow requests through freely.\u003C\u002Fp>\n\n\n\n\u003Cdiv class=\"wp-block-image\">\u003Cfigure class=\"aligncenter\">\u003Cimg decoding=\"async\" src=\"https:\u002F\u002Fcdn.impression.co.uk\u002F2021\u002F05\u002Forigin-custom-headers.jpg\" alt=\"\" class=\"wp-image-9110\"\u002F>\u003C\u002Ffigure>\u003C\u002Fdiv>\n\n\n\n\u003Ch3 class=\"wp-block-heading\" id=\"default-caching-behaviours\">Default caching behaviours\u003C\u002Fh3>\n\n\n\n\u003Cp>Depending on your current (or planned) HTTPS policies, you may want to allow either both HTTP and HTTPS, or just upgrade all requests to HTTPS at the Cloudfront level. Typically we choose the upgrade option here. This is the default cache behaviours and you can override these with specific settings for specific URL path patterns when we come to add additional custom behaviours.\u003C\u002Fp>\n\n\n\n\u003Cdiv class=\"wp-block-image\">\u003Cfigure class=\"aligncenter is-resized\">\u003Cimg loading=\"lazy\" decoding=\"async\" src=\"https:\u002F\u002Fcdn.impression.co.uk\u002F2021\u002F05\u002Fdeafult-cache-behaviours-https.jpg\" alt=\"\" class=\"wp-image-9106\" width=\"593\" height=\"222\"\u002F>\u003C\u002Ffigure>\u003C\u002Fdiv>\n\n\n\n\u003Ch3 class=\"wp-block-heading\" id=\"whitelist-headers\">Whitelist headers\u003C\u002Fh3>\n\n\n\n\u003Cp>Within this same section, you can further specify your default header behaviour. We need to forward requests on to the origin server with the original hostname appended, for WordPress to handle the requests properly. To do this, select “Whitelist” for the value of “Cache Based on Selected Request Headers” and then select “Host” from the list as per this screenshot.\u003C\u002Fp>\n\n\n\n\u003Cdiv class=\"wp-block-image\">\u003Cfigure class=\"aligncenter is-resized\">\u003Cimg loading=\"lazy\" decoding=\"async\" src=\"https:\u002F\u002Fcdn.impression.co.uk\u002F2021\u002F05\u002Fcloudfront-whitelist-headers.jpg\" alt=\"\" class=\"wp-image-9104\" width=\"639\" height=\"211\"\u002F>\u003C\u002Ffigure>\u003C\u002Fdiv>\n\n\n\n\u003Ch3 class=\"wp-block-heading\" id=\"whitelist-cookies\">Whitelist cookies\u003C\u002Fh3>\n\n\n\n\u003Cp>WordPress relies on a number of cookies to function, which are listed below. Under “Forward Cookies” select “Whitelist” and paste in the below. PHPSESSID is required to persist server sessions, and the other are for WordPress admin\u002Flogged in sessions to maintain an authorised state.\u003C\u002Fp>\n\n\n\n\u003Cul class=\"wp-block-list\">\u003Cli>\u003Ccode>PHPSESSID\u003C\u002Fcode>\u003C\u002Fli>\u003Cli>\u003Ccode>wordpress_logged_in_*\u003C\u002Fcode>\u003C\u002Fli>\u003Cli>\u003Ccode>wordpress_test_cookie\u003C\u002Fcode>\u003C\u002Fli>\u003Cli>\u003Ccode>wp-settings-*\u003C\u002Fcode>\u003C\u002Fli>\u003C\u002Ful>\n\n\n\n\u003Ch3 class=\"wp-block-heading\" id=\"global-distribution\">Global distribution?\u003C\u002Fh3>\n\n\n\n\u003Cp>Regarding price classes, you’ll have the option here to choose just how global your content needs to be. The options are clear from the image below &#8212; if you currently receive or aspire to receive global traffic then there’s only a small set up in cost to select “All Edge Locations” here.\u003C\u002Fp>\n\n\n\n\u003Cdiv class=\"wp-block-image\">\u003Cfigure class=\"aligncenter is-resized\">\u003Cimg loading=\"lazy\" decoding=\"async\" src=\"https:\u002F\u002Fcdn.impression.co.uk\u002F2021\u002F05\u002Fcloudfront-edge-locations.jpg\" alt=\"\" class=\"wp-image-9100\" width=\"645\" height=\"194\"\u002F>\u003C\u002Ffigure>\u003C\u002Fdiv>\n\n\n\n\u003Ch3 class=\"wp-block-heading\" id=\"tls-ssl-certificates\">TLS \u002F SSL Certificates\u003C\u002Fh3>\n\n\n\n\u003Cp>Under the SSL section, select this SSL\u002FTLS certificate which you generated earlier. If your certificate isn’t visible, then use the reload button or check that the certificate has validated your ownership and generated successfully.\u003C\u002Fp>\n\n\n\n\u003Cdiv class=\"wp-block-image\">\u003Cfigure class=\"aligncenter\">\u003Cimg decoding=\"async\" src=\"https:\u002F\u002Fcdn.impression.co.uk\u002F2021\u002F05\u002Fcloudfront-run-custom-ssl-certificate.jpg\" alt=\"\" class=\"wp-image-9102\"\u002F>\u003C\u002Ffigure>\u003C\u002Fdiv>\n\n\n\n\u003Ch3 class=\"wp-block-heading\" id=\"access-logging\">Access logging\u003C\u002Fh3>\n\n\n\n\u003Cp>Logging is also configured on this setup screen. Just Enable it from the checkbox and select the S3 bucket name which you set up earlier. Set a prefix if you intend to share this bucket with other sites or use it for other purposes, too.\u003C\u002Fp>\n\n\n\n\u003Cdiv class=\"wp-block-image\">\u003Cfigure class=\"aligncenter is-resized\">\u003Cimg loading=\"lazy\" decoding=\"async\" src=\"https:\u002F\u002Fcdn.impression.co.uk\u002F2021\u002F05\u002Fcloudfront-logging.jpg\" alt=\"\" class=\"wp-image-9101\" width=\"686\" height=\"170\"\u002F>\u003C\u002Ffigure>\u003C\u002Fdiv>\n\n\n\n\u003Ch2 class=\"wp-block-heading\" id=\"4-additional-custom-behaviours\">4. Additional custom behaviours\u003C\u002Fh2>\n\n\n\n\u003Cp>In addition to the defaults set above, there are some additional cache Behaviours required for WordPress to function properly. All custom cache Behaviours are URL pattern based &#8211; so easily account for URLs like wp-admin, .jpg, and specific page URLs. Switch to the Behaviours tab and click Create Behaviour to get started.\u003C\u002Fp>\n\n\n\n\u003Cdiv class=\"wp-block-image\">\u003Cfigure class=\"aligncenter is-resized\">\u003Cimg loading=\"lazy\" decoding=\"async\" src=\"https:\u002F\u002Fcdn.impression.co.uk\u002F2021\u002F05\u002Fcustom-behaviours.jpg\" alt=\"\" class=\"wp-image-9117\" width=\"614\" height=\"169\"\u002F>\u003C\u002Ffigure>\u003C\u002Fdiv>\n\n\n\n\u003Cp>The purpose of some of these additional rules is to allow HTTP requests to punch straight through the Cloudfront cache without serving the incorrect, cached content whilst doing so. The other rules are designed to force long lifetimes on asset files, for example JavaScript, CSS and media.\u003C\u002Fp>\n\n\n\n\u003Ch3 class=\"wp-block-heading\" id=\"disable-caching\">Disable caching\u003C\u002Fh3>\n\n\n\n\u003Cp>Create a new Behaviour and copy across the settings from my image below. I chose here to redirect all HTTP traffic to HTTPS as that’s what our setup at Impression is capable of. I input the pattern which is discussed below, and most importantly for invalidating this pattern’s caching is the setting for the option “Cache Based on Selected Request Headers” which is set to All.\u003C\u002Fp>\n\n\n\n\u003Cdiv class=\"wp-block-image\">\u003Cfigure class=\"aligncenter is-resized\">\u003Cimg loading=\"lazy\" decoding=\"async\" src=\"https:\u002F\u002Fcdn.impression.co.uk\u002F2021\u002F05\u002Fcustom-behaviour-setting.jpg\" alt=\"\" class=\"wp-image-9105\" width=\"477\" height=\"724\"\u002F>\u003C\u002Ffigure>\u003C\u002Fdiv>\n\n\n\n\u003Cp>To complete the setup, ensure all WordPress related routes also allow for POSTing data in&nbsp;and click save. Next up, complete the same for each of the below if appropriate for your setup.\u003C\u002Fp>\n\n\n\n\u003Cul class=\"wp-block-list\">\u003Cli style=\"font-weight: 400;\">wp* (this covers all WordPress admin and JSON routes. It also covers framework routes and WordPress subfolder installs caused by frameworks, for example \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Froots.io\u002Fbedrock\u002F\">Bedrock\u003C\u002Fa>.)\u003C\u002Fli>\u003Cli style=\"font-weight: 400;\">.well-known (this is a required route for Let’s Encrypt postbacks)\u003C\u002Fli>\u003Cli style=\"font-weight: 400;\">xmlrpc.php (As far as I’m aware, you can treat this as optional, however deliberately missing out this WordPress file will remove many remote publishing capabilities of WordPress)\u003C\u002Fli>\u003Cli style=\"font-weight: 400;\">purge* (we also use PHP-FPM caching on our servers as a backup, and because it integrates with our continuous deployment setup, so we allow for POSTing and GETing the \u002Fpurge URLs too. You may not need this one.)\u003C\u002Fli>\u003C\u002Ful>\n\n\n\n\u003Ch3 class=\"wp-block-heading\" id=\"extending-cache-lifetime\">Extending cache lifetime\u003C\u002Fh3>\n\n\n\n\u003Cp>Opposed to the steps above, where we want to disable caching, for asset files and even the HTML pages, we want to extend both their Cloudfront and browser cache lifetime to much larger values.\u003C\u002Fp>\n\n\n\n\u003Cp>Images, versioned code files (CSS, JavaScript) and other media, in theory, will not be changed &#8211; ever. So these files may persist in the cache.\u003C\u002Fp>\n\n\n\n\u003Cp>To configure these settings for such files, proceed as above, but leave request types to only GET, HEAD. Under “Object Caching” select “Customise”, and then change the maximum and default TTL values to a very large number &#8212; something like 31536000 (1 year).\u003C\u002Fp>\n\n\n\n\u003Cp>Also, set “Compress objects automatically” to “Yes” so that files with the “Accept-Encoding: gzip” header are compressed by Cloudfront.\u003C\u002Fp>\n\n\n\n\u003Ch2 class=\"wp-block-heading\" id=\"5-local-testing\">5. Local testing\u003C\u002Fh2>\n\n\n\n\u003Cp>If you have completed your setup and have added your custom Behaviours, then you’re ready to confirm your setup is working well. Whilst you could go straight ahead and hope, testing is in fact very simple to do via your hosts file. The reason being is that the origin server will already be visible to the Cloudfront distribution, therefore no further Cloudfront changes are required in order to verify success.\u003C\u002Fp>\n\n\n\n\u003Cp>To get started, use Terminal (or a Windows equivalent) to get a valid IP address for your Cloudfront distribution. These can change over time, but in my experience don’t do so very frequently &#8211; but either way do not rely on them &#8211; always CNAME in a live environment.\u003C\u002Fp>\n\n\n\n\u003Cp>\u003Ccode>$ dig +short d286mopxzp4hip.cloudfront.net\u003Cbr>\n54.230.9.186\u003Cbr>\n54.230.9.26\u003Cbr>\n...\u003Cbr>\n54.230.9.210\u003C\u002Fcode>\u003C\u002Fp>\n\n\n\n\u003Cp>Once you have a valid IP, just add this to your local hosts file as per any other DNS live test and then, from a cookieless browser (or curl via Terminal) request a page you’d like to test. It’s likely on the first request you won’t see a Cloudfront Hit header (as the file isn’t yet in the cache) but on the second you should see the file being requested from the Cloudfront cache.\u003C\u002Fp>\n\n\n\n\u003Cp>The headers you’re specifically looking for are shown below;\u003C\u002Fp>\n\n\n\n\u003Cp>\u003Ccode>via: 1.1 d887f5d446ae9c64e0365e1b394dac21.cloudfront.net (CloudFront)\u003Cbr>\nx-amz-cf-id: aIldEmX8N6PwXX9LfOiK3TUSAj1oCrOo_C9HiN-ZoV0zxgDF4SNCHw==\u003Cbr>\nx-cache: Hit from cloudfront\u003C\u002Fcode>\u003C\u002Fp>\n\n\n\n\u003Cp>Also, given your custom Behaviour settings, it’s also worth trying to log in to WordPress and to check that Cloudfront isn’t caching this. Also test your contact forms, any shopping baskets and similarly dynamic functionality elements. Our rules above \u003Ci>should\u003C\u002Fi>&nbsp;account for most situations but without looking at your specific situations we can’t guarantee that.\u003C\u002Fp>\n\n\n\n\u003Ch2 class=\"wp-block-heading\" id=\"6-going-live-with-your-cloudfront-distribution\">6. Going ‘live’ with your Cloudfront distribution\u003C\u002Fh2>\n\n\n\n\u003Cp>To go live, once tested, just change your public DNS settings on your name servers to point the www. subdomain to your Cloudfront distributions web address via CNAME. If you don’t currently have a non-www to www redirection in place, then just use a freely available one via a Google search so that your origin’s IP address\u002Fidentity is concealed.\u003C\u002Fp>\n\n\n\n\u003Cp>If you are using Let’s Encrypt, now is a good time to run the certbot renew command via your command line, in order to double-check for issues with the requests pointing to \u002F.well-known getting through ok.\u003C\u002Fp>\n\n\n\n\u003Cp>If during testing, or following a future deployment, you need to clear the Cloudfront cached version of an asset or page, then you can do this under the Cloudfront Invalidations tab. Try to match the file as precisely as possible as clearing global Cloudfront caches is technologically expensive &#8211; in terms of resource, but there’s also a small cost to you (if used excessively).\u003C\u002Fp>\n\n\n\n\u003Ch2 class=\"wp-block-heading\" id=\"full-page-wordpress-cloudfront-caching-results\">Full page WordPress Cloudfront caching results\u003C\u002Fh2>\n\n\n\n\u003Cp>Impression has been running on a very similar setup to this for a little while now and we’re very pleased with our results. We’ve managed to achieve almost consistent sub-1000ms response times via Pingdom tools in our local test location (Sweden), and when we test across the Atlantic in New York we get very comparable results too. Here are our results;\u003C\u002Fp>\n\n\n\n\u003Cdiv class=\"wp-block-image\">\u003Cfigure class=\"aligncenter is-resized\">\u003Cimg loading=\"lazy\" decoding=\"async\" src=\"https:\u002F\u002Fcdn.impression.co.uk\u002F2021\u002F05\u002Fimpression-sweden.jpg\" alt=\"\" class=\"wp-image-9109\" width=\"489\" height=\"398\"\u002F>\u003C\u002Ffigure>\u003C\u002Fdiv>\n\n\n\n\u003Cdiv class=\"wp-block-image\">\u003Cfigure class=\"aligncenter is-resized\">\u003Cimg loading=\"lazy\" decoding=\"async\" src=\"https:\u002F\u002Fcdn.impression.co.uk\u002F2021\u002F05\u002Fimpression-new-york.jpg\" alt=\"\" class=\"wp-image-9108\" width=\"491\" height=\"405\"\u002F>\u003C\u002Ffigure>\u003C\u002Fdiv>\n\n\n\n\u003Cp>If you have any feedback or suggestions, or comments of any kind, please leave them below. If you think we might be able to help you increase your website’s resilience and performance then please \u003Ca rel=\"noreferrer noopener\" href=\"\u002Fget-in-touch\u002F\">get in touch\u003C\u002Fa> with our team. If you successfully implement this through our instructions, please post a screenshot like ours below!\u003C\u002Fp>\n",false,{"rendered":137,"protected":230},1,8175,"open","standard",{"_yoast_wpseo_focuskw":5,"_yoast_wpseo_title":237,"_yoast_wpseo_metadesc":238,"inline_featured_image":230,"footnotes":5},"WordPress & Amazon Cloudfront Full Page Cache | Impression","Use Amazon as a full page cache solution and enjoy the benefits of high availability and global coverage - all whilst reducing your site’s perceived response time to a fraction of what it was with this guide.",[240],37,[],[15],[244,135,245,246,247,248,249,250],"post-3573","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web",[],[],[254,255,258,259],{"path":203,"name":204},{"path":256,"name":257},"\u002Fblog\u002F","Blog",{"path":146,"name":147},{"path":212,"name":136},{"thumbnail":261,"medium":263,"medium_large":265,"large":267,"1536x1536":271,"2048x2048":273,"post-thumbnail":275,"12_col":277,"default_landscape":279,"default_portrait":281,"6_col_and_margin_short":283,"11_col_and_margin":285,"9_col_rectangle":287,"11_col":289,"staff_image_696_600":291,"rectangular_thumbnail":293},{"url":141,"width":262,"height":262},640,{"url":264,"width":92,"height":92},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002Fhuo3bc0z-050720211625522068_clouds-sky-scaled.jpg?auto=compress%2Cformat&fit=scale&h=134&q=90&w=200",{"url":266,"width":95,"height":25},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002Fhuo3bc0z-050720211625522068_clouds-sky-scaled.jpg?auto=compress%2Cformat&fit=scale&h=513&q=90&w=768",{"url":268,"width":269,"height":270},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002Fhuo3bc0z-050720211625522068_clouds-sky-scaled.jpg?auto=compress%2Cformat&fit=crop&h=1000&q=90&w=1892",1892,1000,{"url":272,"width":101,"height":101},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002Fhuo3bc0z-050720211625522068_clouds-sky-scaled.jpg?auto=compress%2Cformat&fit=scale&h=1025&q=90&w=1536",{"url":274,"width":104,"height":104},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002Fhuo3bc0z-050720211625522068_clouds-sky-scaled.jpg?auto=compress%2Cformat&fit=scale&h=1367&q=90&w=2048",{"url":276,"width":107,"height":108},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002Fhuo3bc0z-050720211625522068_clouds-sky-scaled.jpg?auto=compress%2Cformat&fit=crop&h=1180&q=90&w=1860",{"url":278,"width":110,"height":111},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002Fhuo3bc0z-050720211625522068_clouds-sky-scaled.jpg?auto=compress%2Cformat&fit=crop&h=870&q=90&w=2880",{"url":280,"width":113,"height":87},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002Fhuo3bc0z-050720211625522068_clouds-sky-scaled.jpg?auto=compress%2Cformat&fit=crop&h=600&q=90&w=800",{"url":282,"width":87,"height":113},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002Fhuo3bc0z-050720211625522068_clouds-sky-scaled.jpg?auto=compress%2Cformat&fit=crop&h=800&q=90&w=600",{"url":284,"width":107,"height":111},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002Fhuo3bc0z-050720211625522068_clouds-sky-scaled.jpg?auto=compress%2Cformat&fit=crop&h=870&q=90&w=1860",{"url":286,"width":117,"height":111},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002Fhuo3bc0z-050720211625522068_clouds-sky-scaled.jpg?auto=compress%2Cformat&fit=crop&h=870&q=90&w=3080",{"url":288,"width":119,"height":120},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002Fhuo3bc0z-050720211625522068_clouds-sky-scaled.jpg?auto=compress%2Cformat&fit=crop&h=1400&q=90&w=2150",{"url":290,"width":122,"height":111},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002Fhuo3bc0z-050720211625522068_clouds-sky-scaled.jpg?auto=compress%2Cformat&fit=crop&h=870&q=90&w=2640",{"url":292,"width":86,"height":87},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002Fhuo3bc0z-050720211625522068_clouds-sky-scaled.jpg?auto=compress%2Cformat&fit=crop&h=600&q=90&w=696",{"url":294,"width":125,"height":126},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002Fhuo3bc0z-050720211625522068_clouds-sky-scaled.jpg?auto=compress%2Cformat&fit=crop&h=300&q=90&w=750",[296],{"id":232,"path":297,"display_name":4,"job_title":10,"description":6,"avatar_url":144,"acf":298},"\u002Fabout\u002Four-team\u002Faaron-dicks\u002F",{"job_title":10,"full_bio":11,"specialist_service_links":299,"photo":310},[300,302,304,306,308],{"page":301,"link_text":18},{"ID":15,"post_author":16,"post_date":17,"post_date_gmt":17,"post_content":5,"post_title":18,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":21,"to_ping":5,"pinged":5,"post_modified":22,"post_modified_gmt":22,"post_content_filtered":5,"post_parent":23,"guid":24,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":29},{"page":303,"link_text":41},{"ID":32,"post_author":33,"post_date":34,"post_date_gmt":34,"post_content":5,"post_title":35,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":36,"to_ping":5,"pinged":5,"post_modified":37,"post_modified_gmt":37,"post_content_filtered":5,"post_parent":38,"guid":39,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":40},{"page":305,"link_text":46},{"ID":44,"post_author":16,"post_date":45,"post_date_gmt":45,"post_content":5,"post_title":46,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":47,"to_ping":5,"pinged":5,"post_modified":48,"post_modified_gmt":48,"post_content_filtered":5,"post_parent":49,"guid":50,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":51},{"page":307,"link_text":61},{"ID":54,"post_author":16,"post_date":55,"post_date_gmt":55,"post_content":5,"post_title":56,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":57,"to_ping":5,"pinged":5,"post_modified":58,"post_modified_gmt":58,"post_content_filtered":5,"post_parent":25,"guid":59,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":60},{"page":309,"link_text":66},{"ID":64,"post_author":16,"post_date":65,"post_date_gmt":65,"post_content":5,"post_title":66,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":67,"to_ping":5,"pinged":5,"post_modified":68,"post_modified_gmt":68,"post_content_filtered":5,"post_parent":25,"guid":69,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":70},{"ID":72,"id":72,"title":73,"filename":74,"filesize":75,"url":76,"link":77,"alt":5,"author":78,"description":5,"caption":5,"name":79,"status":80,"uploaded_to":25,"date":81,"modified":81,"menu_order":25,"mime_type":82,"type":83,"subtype":84,"icon":85,"width":86,"height":87,"sizes":311},{"thumbnail":89,"thumbnail-width":90,"thumbnail-height":90,"medium":91,"medium-width":92,"medium-height":93,"medium_large":94,"medium_large-width":95,"medium_large-height":96,"large":97,"large-width":98,"large-height":99,"1536x1536":100,"1536x1536-width":101,"1536x1536-height":102,"2048x2048":103,"2048x2048-width":104,"2048x2048-height":105,"post-thumbnail":106,"post-thumbnail-width":107,"post-thumbnail-height":108,"12_col":109,"12_col-width":110,"12_col-height":111,"default_landscape":112,"default_landscape-width":113,"default_landscape-height":87,"default_portrait":114,"default_portrait-width":87,"default_portrait-height":113,"6_col_and_margin_short":115,"6_col_and_margin_short-width":107,"6_col_and_margin_short-height":111,"11_col_and_margin":116,"11_col_and_margin-width":117,"11_col_and_margin-height":111,"9_col_rectangle":118,"9_col_rectangle-width":119,"9_col_rectangle-height":120,"11_col":121,"11_col-width":122,"11_col-height":111,"staff_image_696_600":123,"staff_image_696_600-width":86,"staff_image_696_600-height":87,"rectangular_thumbnail":124,"rectangular_thumbnail-width":125,"rectangular_thumbnail-height":126},"Article",[314],{"id":240,"name":147,"path":146},[316,318,320,323,325,328,331,333,335,337,340,343,346,349,352,355,358,361,362,365,368],{"property":317,"content":237},"title",{"property":319,"content":238},"description",{"name":321,"content":322},"robots","index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1",{"property":218,"content":324},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fwordpress-amazon-cloudfront\u002F",{"name":326,"content":327},"og:locale","en_GB",{"property":329,"content":330},"og:type","article",{"property":332,"content":237},"og:title",{"property":334,"content":238},"og:description",{"property":336,"content":324},"og:url",{"property":338,"content":339},"og:site_name","Impression",{"property":341,"content":342},"article:publisher","https:\u002F\u002Fwww.facebook.com\u002Fimpression",{"property":344,"content":345},"article:published_time","2018-01-08T16:08:18+00:00",{"property":347,"content":348},"article:modified_time","2022-02-07T16:48:33+00:00",{"property":350,"content":351},"og:image","https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002Fhuo3bc0z-050720211625522068_clouds-sky-scaled.jpg?auto=compress%2Cformat",{"property":353,"content":354},"og:image:width",2560,{"property":356,"content":357},"og:image:height",1709,{"property":359,"content":360},"og:image:type","image\u002Fjpeg",{"property":198,"content":4},{"property":363,"content":364},"twitter:card","summary_large_image",{"property":366,"content":367},"twitter:creator","@https:\u002F\u002Ftwitter.com\u002Faarondicks",{"property":369,"content":370},"twitter:site","@impressiontalk",{"@context":372,"@graph":373},"https:\u002F\u002Fschema.org",[374,394,403,405,417,427,493],{"@type":312,"@id":375,"isPartOf":376,"author":377,"headline":136,"datePublished":345,"dateModified":348,"mainEntityOfPage":379,"wordCount":380,"commentCount":25,"publisher":381,"image":383,"thumbnailUrl":385,"articleSection":386,"inLanguage":387,"potentialAction":388},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fwordpress-amazon-cloudfront\u002F#article",{"@id":324},{"name":4,"@id":378},"https:\u002F\u002Fadmin.impressiondigital.com\u002F#\u002Fschema\u002Fperson\u002F30905680af47e405c37b9921abb28d99",{"@id":324},45,{"@id":382},"https:\u002F\u002Fadmin.impressiondigital.com\u002F#organization",{"@id":384},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fwordpress-amazon-cloudfront\u002F#primaryimage","https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002Fhuo3bc0z-050720211625522068_clouds-sky-scaled.jpg?auto=compress%2Cformat&q=90",[147],"en-GB",[389],{"@type":390,"name":391,"target":392},"CommentAction","Comment",[393],"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fwordpress-amazon-cloudfront\u002F#respond",{"@type":395,"@id":324,"url":324,"name":237,"isPartOf":396,"primaryImageOfPage":398,"image":399,"thumbnailUrl":385,"datePublished":345,"dateModified":348,"description":238,"breadcrumb":400,"inLanguage":402},"WebPage",{"@id":397},"https:\u002F\u002Fwww.impressiondigital.com\u002F#website",{"@id":384},{"@id":384},{"@id":401},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fwordpress-amazon-cloudfront\u002F#breadcrumb","en",{"@type":404,"inLanguage":387,"@id":384,"url":385,"contentUrl":385,"width":354,"height":357},"ImageObject",{"@type":406,"@id":401,"itemListElement":407},"BreadcrumbList",[408,411,413,415],{"@type":409,"position":232,"name":204,"item":410},"ListItem","https:\u002F\u002Fwww.impressiondigital.com\u002F",{"@type":409,"position":152,"name":257,"item":412},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002F",{"@type":409,"position":191,"name":147,"item":414},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fcategory\u002Fweb\u002F",{"@type":409,"position":416,"name":136},4,{"@type":418,"@id":397,"url":410,"name":339,"description":5,"publisher":419,"inLanguage":387,"potentialAction":421},"WebSite",{"@id":420},"https:\u002F\u002Fwww.impressiondigital.com\u002F#organization",{"@type":422,"target":423,"query-input":426},"SearchAction",{"@type":424,"urlTemplate":425},"EntryPoint","https:\u002F\u002Fwww.impressiondigital.com\u002Fsearch?q={search_term_string}","required name=search_term_string",{"@type":428,"@id":420,"name":339,"url":410,"logo":429,"image":434,"sameAs":435,"@context":439,"email":440,"foundingDate":441,"legalName":442,"vatID":443,"description":444,"telephone":445,"address":446,"location":453,"areaServed":486},"Organization",{"@type":404,"inLanguage":387,"@id":430,"url":431,"contentUrl":431,"width":432,"height":433,"caption":339},"https:\u002F\u002Fwww.impressiondigital.com\u002F#\u002Fschema\u002Flogo\u002Fimage\u002F","https:\u002F\u002Fcdn.impression.co.uk\u002F2021\u002F06\u002FA5LuTDrq-Impression_Wordmark.png",920,176,"https:\u002F\u002Fcdn.impression.co.uk\u002F2021\u002F04\u002FFAVxDeOS-Nottingham.jpg",[436,437,438],"https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fimpression-digital-limited","https:\u002F\u002Fwww.facebook.com\u002Fimpression\u002F","https:\u002F\u002Fwww.instagram.com\u002Fimpressiontalk\u002F","https:\u002F\u002Fwww.schema.org\u002F","hello@impressiondigital.com","2012-11-07","Impression Digital Limited","GB186363774","Impression is an award-winning digital marketing agency based in the UK and USA. We offer SEO agency, PPC agency, Digital PR agency and Analytics services to companies of all sizes across the UK, North America, Europe and beyond. Get in touch with us if you think we can work together.","01158 242 212",{"@type":447,"streetAddress":448,"addressLocality":449,"addressRegion":450,"postalCode":451,"addressCountry":452},"PostalAddress","Fothergill House, 16 King Street","Nottingham","Nottinghamshire","NG1 2AS","United Kingdom",[454,463,475],{"@type":455,"name":456,"geo":457,"address":461,"photo":434,"telephone":462},"Place","Impression Digital - Nottingham",{"@type":458,"latitude":459,"longitude":460},"GeoCoordinates","52.95501401025914","-1.1494887460285232",{"@type":447,"streetAddress":448,"addressLocality":449,"addressRegion":450,"postalCode":451,"addressCountry":452},"+44 01158 242 212",{"@type":455,"name":464,"geo":465,"address":468,"photo":473,"telephone":474},"Impression Digital - London",{"@type":458,"latitude":466,"longitude":467},"51.50237208377361","-0.09229841534284115",{"@type":447,"streetAddress":469,"addressLocality":470,"addressRegion":471,"postalCode":472,"addressCountry":452},"201 Borough High St","Southwark","London","SE1 1JA","https:\u002F\u002Fcdn.impression.co.uk\u002F2021\u002F04\u002FwD0pPVWz-London.jpg","+44 020 7112 8148",{"@type":455,"name":476,"geo":477,"address":480},"Impression Digital - New York",{"@type":458,"latitude":478,"longitude":479},"40.726722746949","-74.00527778220652",{"@type":447,"streetAddress":481,"addressLocality":482,"addressRegion":483,"postalCode":484,"addressCountry":485},"160 Varick St","New York","NY","10013","USA",[487,490,492],{"@type":488,"name":489},"Country","Worldwide",{"@type":488,"name":491},"GBR",{"@type":488,"name":485},{"@type":494,"@id":495,"name":4,"image":496,"description":6,"sameAs":498,"url":219},"Person","https:\u002F\u002Fwww.impressiondigital.com\u002F#\u002Fschema\u002Fperson\u002F30905680af47e405c37b9921abb28d99",{"@type":404,"inLanguage":387,"@id":497,"url":8,"contentUrl":8,"caption":4},"https:\u002F\u002Fimages.impression.co.uk\u002F2023\u002F10\u002FAaron-Dicks2.png?auto=compress&fit=fit&fm=jpg&h=96&q=90&w=96069d6f196ce202c9674a411bef4b07a3",[215,499],"https:\u002F\u002Fx.com\u002Fhttps:\u002F\u002Ftwitter.com\u002Faarondicks",{"self":501,"collection":511,"about":514,"author":517,"replies":520,"version-history":523,"predecessor-version":526,"wp:featuredmedia":530,"wp:attachment":533,"wp:term":536,"curies":545},[502],{"href":503,"targetHints":504},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fposts\u002F3573",{"allow":505},[506,507,508,509,510],"GET","POST","PUT","PATCH","DELETE",[512],{"href":513},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fposts",[515],{"href":516},"\u002Fwp-json\u002Fwp\u002Fv2\u002Ftypes\u002Fpost",[518],{"embeddable":130,"href":519},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fusers\u002F1",[521],{"embeddable":130,"href":522},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fcomments?post=3573",[524],{"count":161,"href":525},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fposts\u002F3573\u002Frevisions",[527],{"id":528,"href":529},14888,"\u002Fwp-json\u002Fwp\u002Fv2\u002Fposts\u002F3573\u002Frevisions\u002F14888",[531],{"embeddable":130,"href":532},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fmedia\u002F8175",[534],{"href":535},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fmedia?parent=3573",[537,540,543],{"taxonomy":538,"embeddable":130,"href":539},"category","\u002Fwp-json\u002Fwp\u002Fv2\u002Fcategories?post=3573",{"taxonomy":541,"embeddable":130,"href":542},"collections","\u002Fwp-json\u002Fwp\u002Fv2\u002Fcollections?post=3573",{"taxonomy":198,"embeddable":130,"href":544},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fcoauthors?post=3573",[546],{"name":547,"href":548,"templated":130},"wp","https:\u002F\u002Fapi.w.org\u002F{rel}",{"id":550,"date":551,"date_gmt":551,"guid":552,"modified":139,"modified_gmt":139,"slug":554,"status":19,"type":135,"link":151,"title":555,"content":556,"excerpt":558,"author":232,"featured_media":25,"comment_status":234,"ping_status":234,"sticky":230,"template":5,"format":235,"meta":559,"categories":560,"collections":561,"coauthors":562,"class_list":563,"acf":565,"head_links":566,"breadcrumbs":567,"url_path":151,"search_description":572,"featured_image_urls":573,"authors":590,"type_nicename":312,"reading_minutes":152,"category":606,"yoast_title":608,"yoast_meta":609,"yoast_json_ld":633,"_links":687},3473,"2017-11-20T09:24:10",{"rendered":553},"https:\u002F\u002Fimpression.test\u002Fblog\u002Fmonitoring-website-uptime-google-sheets-email-alerts\u002F","monitoring-website-uptime-google-sheets-email-alerts",{"rendered":149},{"rendered":557,"protected":230},"\u003Cp>If you&#8217;re looking for a very simple and free way to monitor a number of websites&#8217; uptime, then look no further. At Impression, we use \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fuptimerobot.com\u002Fpricing\">Uptime Robot\u003C\u002Fa> for our hosted clients, but in order to give our team distributed alerts we wanted a lower overhead solution which could be shared around.\u003C\u002Fp>\n\u003Cp>Labnol created a great solution for Google Sheets and Google Scripts a few years back, and we took that as inspiration to completely rewrite a solution for ourselves. The Google Sheets Uptime Monitor from Impression allows minute-by-minute website uptime monitoring and alerts to an unlimited number of email addresses. It&#8217;s built to scale and as such, it would be appropriate for teams managing a large number of websites.\u003C\u002Fp>\n\u003Cp>To get started, simply open \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fdocs.google.com\u002Fspreadsheets\u002Fd\u002F1Q2zbhCPGjXoHmqC8595YcnqkeMIwCCVbgFMa6D1KAJU\u002Fedit#gid=0\">this sheet\u003C\u002Fa> and select File &gt; Make a copy&#8230;\u003C\u002Fp>\n\u003Cp>On the Config sheet, simply enter the following into columns A &amp; B;\u003C\u002Fp>\n\u003Cul>\n\u003Cli>The full URL you would like to track\u003C\u002Fli>\n\u003Cli>A comma separated list of email addresses that you would like to be notified when your website goes down and then up\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Next, click Tools &gt; Script Editor to edit the script, which is embedded within the document linked above, but is also provided in full below.\u003C\u002Fp>\n\u003Cp>To ensure the script is running, click Run &gt; Run function &gt; init once. You may be asked for some permissions for Google to connect to external services and to send mail, but this is a one time setup required to both give correct permissions but also setup the script&#8217;s triggers to run every minute.\u003C\u002Fp>\n\u003Cp>\u003Cfigure style=\"width: 1024px\" class=\"wp-caption aligncenter\">\u003Cimg loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-3474\" src=\"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F05\u002Fy2ZBX4DT-run-init-function.png?auto=compress%2Cformat&fit=crop&h=1000&q=90&w=1892\" alt=\"\" width=\"1024\" height=\"339\" \u002F>\u003Cfigcaption class=\"wp-caption-text\">Use this one time setup function to ensure Google has the permissions it requires from you.\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003C\u002Fp>\n\u003Cp>And that&#8217;s it! Feel free to make suggestions in the comments below. I&#8217;ve also provided the full script snippet below for your perusal.\u003C\u002Fp>\n\u003Cp>\u003Cscript src=\"https:\u002F\u002Fgist.github.com\u002Faarondicks\u002Fe145bdcfad3012f5e25b54f75aab88dc.js\">\u003C\u002Fscript>\u003C\u002Fp>\n",{"rendered":150,"protected":230},{"_yoast_wpseo_focuskw":5,"_yoast_wpseo_title":5,"_yoast_wpseo_metadesc":5,"inline_featured_image":230,"footnotes":5},[240],[],[15],[564,135,245,246,247,249,250],"post-3473",[],[],[568,569,570,571],{"path":203,"name":204},{"path":256,"name":257},{"path":146,"name":147},{"path":212,"name":149},"If you&#8217;re looking for a very simple and free way to monitor a number of websites&#8217; uptime, then look no further. At Impression, we use Uptime Robot for our hosted clients, but in order to give our team distributed alerts we wanted a lower overhead solution which could be shared around. Labnol created a great [&hellip;]",{"thumbnail":574,"medium":575,"medium_large":576,"large":577,"1536x1536":578,"2048x2048":579,"post-thumbnail":580,"12_col":581,"default_landscape":582,"default_portrait":583,"6_col_and_margin_short":584,"11_col_and_margin":585,"9_col_rectangle":586,"11_col":587,"staff_image_696_600":588,"rectangular_thumbnail":589},{"url":230,"width":262,"height":262},{"url":230,"width":92,"height":92},{"url":230,"width":95,"height":25},{"url":230,"width":269,"height":270},{"url":230,"width":101,"height":101},{"url":230,"width":104,"height":104},{"url":230,"width":107,"height":108},{"url":230,"width":110,"height":111},{"url":230,"width":113,"height":87},{"url":230,"width":87,"height":113},{"url":230,"width":107,"height":111},{"url":230,"width":117,"height":111},{"url":230,"width":119,"height":120},{"url":230,"width":122,"height":111},{"url":230,"width":86,"height":87},{"url":230,"width":125,"height":126},[591],{"id":232,"path":297,"display_name":4,"job_title":10,"description":6,"avatar_url":144,"acf":592},{"job_title":10,"full_bio":11,"specialist_service_links":593,"photo":604},[594,596,598,600,602],{"page":595,"link_text":18},{"ID":15,"post_author":16,"post_date":17,"post_date_gmt":17,"post_content":5,"post_title":18,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":21,"to_ping":5,"pinged":5,"post_modified":22,"post_modified_gmt":22,"post_content_filtered":5,"post_parent":23,"guid":24,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":29},{"page":597,"link_text":41},{"ID":32,"post_author":33,"post_date":34,"post_date_gmt":34,"post_content":5,"post_title":35,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":36,"to_ping":5,"pinged":5,"post_modified":37,"post_modified_gmt":37,"post_content_filtered":5,"post_parent":38,"guid":39,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":40},{"page":599,"link_text":46},{"ID":44,"post_author":16,"post_date":45,"post_date_gmt":45,"post_content":5,"post_title":46,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":47,"to_ping":5,"pinged":5,"post_modified":48,"post_modified_gmt":48,"post_content_filtered":5,"post_parent":49,"guid":50,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":51},{"page":601,"link_text":61},{"ID":54,"post_author":16,"post_date":55,"post_date_gmt":55,"post_content":5,"post_title":56,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":57,"to_ping":5,"pinged":5,"post_modified":58,"post_modified_gmt":58,"post_content_filtered":5,"post_parent":25,"guid":59,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":60},{"page":603,"link_text":66},{"ID":64,"post_author":16,"post_date":65,"post_date_gmt":65,"post_content":5,"post_title":66,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":67,"to_ping":5,"pinged":5,"post_modified":68,"post_modified_gmt":68,"post_content_filtered":5,"post_parent":25,"guid":69,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":70},{"ID":72,"id":72,"title":73,"filename":74,"filesize":75,"url":76,"link":77,"alt":5,"author":78,"description":5,"caption":5,"name":79,"status":80,"uploaded_to":25,"date":81,"modified":81,"menu_order":25,"mime_type":82,"type":83,"subtype":84,"icon":85,"width":86,"height":87,"sizes":605},{"thumbnail":89,"thumbnail-width":90,"thumbnail-height":90,"medium":91,"medium-width":92,"medium-height":93,"medium_large":94,"medium_large-width":95,"medium_large-height":96,"large":97,"large-width":98,"large-height":99,"1536x1536":100,"1536x1536-width":101,"1536x1536-height":102,"2048x2048":103,"2048x2048-width":104,"2048x2048-height":105,"post-thumbnail":106,"post-thumbnail-width":107,"post-thumbnail-height":108,"12_col":109,"12_col-width":110,"12_col-height":111,"default_landscape":112,"default_landscape-width":113,"default_landscape-height":87,"default_portrait":114,"default_portrait-width":87,"default_portrait-height":113,"6_col_and_margin_short":115,"6_col_and_margin_short-width":107,"6_col_and_margin_short-height":111,"11_col_and_margin":116,"11_col_and_margin-width":117,"11_col_and_margin-height":111,"9_col_rectangle":118,"9_col_rectangle-width":119,"9_col_rectangle-height":120,"11_col":121,"11_col-width":122,"11_col-height":111,"staff_image_696_600":123,"staff_image_696_600-width":86,"staff_image_696_600-height":87,"rectangular_thumbnail":124,"rectangular_thumbnail-width":125,"rectangular_thumbnail-height":126},[607],{"id":240,"name":147,"path":146},"Monitoring website uptime in Google Sheets - with email alerts - Impression",[610,611,612,614,615,616,617,618,619,620,621,623,624,626,627,628,629,630,631,632],{"property":317,"content":608},{"name":321,"content":322},{"property":218,"content":613},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fmonitoring-website-uptime-google-sheets-email-alerts\u002F",{"name":326,"content":327},{"property":329,"content":330},{"property":332,"content":608},{"property":334,"content":572},{"property":336,"content":613},{"property":338,"content":339},{"property":341,"content":342},{"property":344,"content":622},"2017-11-20T09:24:10+00:00",{"property":347,"content":348},{"property":350,"content":625},"https:\u002F\u002Fcdn.impression.co.uk\u002F2021\u002F05\u002Frun-init-function.png",{"property":359,"content":5},{"property":353,"content":5},{"property":356,"content":5},{"property":198,"content":4},{"property":363,"content":364},{"property":366,"content":367},{"property":369,"content":370},{"@context":372,"@graph":634},[635,649,655,656,662,666,684],{"@type":312,"@id":636,"isPartOf":637,"author":638,"headline":149,"datePublished":622,"dateModified":348,"mainEntityOfPage":639,"wordCount":640,"commentCount":25,"publisher":641,"image":642,"thumbnailUrl":625,"articleSection":644,"inLanguage":387,"potentialAction":645},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fmonitoring-website-uptime-google-sheets-email-alerts\u002F#article",{"@id":613},{"name":4,"@id":378},{"@id":613},315,{"@id":382},{"@id":643},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fmonitoring-website-uptime-google-sheets-email-alerts\u002F#primaryimage",[147],[646],{"@type":390,"name":391,"target":647},[648],"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fmonitoring-website-uptime-google-sheets-email-alerts\u002F#respond",{"@type":395,"@id":613,"url":613,"name":608,"isPartOf":650,"primaryImageOfPage":651,"image":652,"thumbnailUrl":625,"datePublished":622,"dateModified":348,"breadcrumb":653,"inLanguage":402},{"@id":397},{"@id":643},{"@id":643},{"@id":654},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fmonitoring-website-uptime-google-sheets-email-alerts\u002F#breadcrumb",{"@type":404,"inLanguage":387,"@id":643,"url":625,"contentUrl":625},{"@type":406,"@id":654,"itemListElement":657},[658,659,660,661],{"@type":409,"position":232,"name":204,"item":410},{"@type":409,"position":152,"name":257,"item":412},{"@type":409,"position":191,"name":147,"item":414},{"@type":409,"position":416,"name":149},{"@type":418,"@id":397,"url":410,"name":339,"description":5,"publisher":663,"inLanguage":387,"potentialAction":664},{"@id":420},{"@type":422,"target":665,"query-input":426},{"@type":424,"urlTemplate":425},{"@type":428,"@id":420,"name":339,"url":410,"logo":667,"image":434,"sameAs":668,"@context":439,"email":440,"foundingDate":441,"legalName":442,"vatID":443,"description":444,"telephone":445,"address":669,"location":670,"areaServed":680},{"@type":404,"inLanguage":387,"@id":430,"url":431,"contentUrl":431,"width":432,"height":433,"caption":339},[436,437,438],{"@type":447,"streetAddress":448,"addressLocality":449,"addressRegion":450,"postalCode":451,"addressCountry":452},[671,674,677],{"@type":455,"name":456,"geo":672,"address":673,"photo":434,"telephone":462},{"@type":458,"latitude":459,"longitude":460},{"@type":447,"streetAddress":448,"addressLocality":449,"addressRegion":450,"postalCode":451,"addressCountry":452},{"@type":455,"name":464,"geo":675,"address":676,"photo":473,"telephone":474},{"@type":458,"latitude":466,"longitude":467},{"@type":447,"streetAddress":469,"addressLocality":470,"addressRegion":471,"postalCode":472,"addressCountry":452},{"@type":455,"name":476,"geo":678,"address":679},{"@type":458,"latitude":478,"longitude":479},{"@type":447,"streetAddress":481,"addressLocality":482,"addressRegion":483,"postalCode":484,"addressCountry":485},[681,682,683],{"@type":488,"name":489},{"@type":488,"name":491},{"@type":488,"name":485},{"@type":494,"@id":495,"name":4,"image":685,"description":6,"sameAs":686,"url":219},{"@type":404,"inLanguage":387,"@id":497,"url":8,"contentUrl":8,"caption":4},[215,499],{"self":688,"collection":693,"about":695,"author":697,"replies":699,"version-history":702,"predecessor-version":705,"wp:attachment":709,"wp:term":712,"curies":719},[689],{"href":690,"targetHints":691},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fposts\u002F3473",{"allow":692},[506,507,508,509,510],[694],{"href":513},[696],{"href":516},[698],{"embeddable":130,"href":519},[700],{"embeddable":130,"href":701},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fcomments?post=3473",[703],{"count":232,"href":704},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fposts\u002F3473\u002Frevisions",[706],{"id":707,"href":708},14901,"\u002Fwp-json\u002Fwp\u002Fv2\u002Fposts\u002F3473\u002Frevisions\u002F14901",[710],{"href":711},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fmedia?parent=3473",[713,715,717],{"taxonomy":538,"embeddable":130,"href":714},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fcategories?post=3473",{"taxonomy":541,"embeddable":130,"href":716},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fcollections?post=3473",{"taxonomy":198,"embeddable":130,"href":718},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fcoauthors?post=3473",[720],{"name":547,"href":548,"templated":130},{"id":722,"date":723,"date_gmt":723,"guid":724,"modified":160,"modified_gmt":160,"slug":726,"status":19,"type":135,"link":159,"title":727,"content":728,"excerpt":730,"author":232,"featured_media":731,"comment_status":234,"ping_status":234,"sticky":230,"template":5,"format":235,"meta":732,"categories":735,"collections":737,"coauthors":738,"class_list":739,"acf":742,"head_links":743,"breadcrumbs":744,"url_path":159,"search_description":734,"featured_image_urls":749,"authors":781,"type_nicename":312,"reading_minutes":161,"category":797,"yoast_title":733,"yoast_meta":800,"yoast_json_ld":828,"_links":884},3409,"2017-10-23T14:38:43",{"rendered":725},"https:\u002F\u002Fimpression.test\u002Fblog\u002Fwordpress-contact-form-7-event-listeners-gtm\u002F","wordpress-contact-form-7-event-listeners-gtm",{"rendered":157},{"rendered":729,"protected":230},"\n\u003Cp>The plugin landscape has changed a lot has changed over the years &#8212; but Contact Form 7 is still one of the most popular WordPress plugin is still one of my favourites.\u003C\u002Fp>\n\n\n\n\u003Ch2 class=\"wp-block-heading\" id=\"tracking-events-from-wp-contact-form-7-in-google-analytics\">Tracking events from WP Contact Form 7 in Google Analytics\u003C\u002Fh2>\n\n\n\n\u003Ch3 class=\"wp-block-heading\" id=\"1-tag-managers-and-data-layers\">1. Tag managers and data layers\u003C\u002Fh3>\n\n\n\n\u003Cp>Well, firstly, the last few years has seen the rise in popular tag management containers such as Google Tag Manager abstract much of your on-site tracking code to the cloud for easier editing. This affects what many may know only as the &#8220;data layer&#8221;&#8211; and if you&#8217;re not in the know, I&#8217;d suggest reading this long form piece about \u003Ca rel=\"noreferrer noopener\" href=\"\u002Fblog\u002Fdata-layer-guide\u002F\">Google Tag Manager\u003C\u002Fa>.\u003C\u002Fp>\n\n\n\n\u003Ch3 class=\"wp-block-heading\" id=\"2-plugin-evolution\">2. Plugin evolution\u003C\u002Fh3>\n\n\n\n\u003Cp>Clearly&nbsp;\u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Ftakayukister\">Takayuki\u003C\u002Fa> is&nbsp;keen to move from the ability to add custom code into the plugin directly in the favour of custom DOM events (\u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fcontactform7.com\u002Fdom-events\u002F\">see all\u003C\u002Fa>) \u003Cspan style=\"text-decoration: underline;\">before the end of 2018\u003C\u002Fspan>. DOM &#8212; the &#8220;document object model&#8221; &#8212; is best described as the resulting HTML document drawn by the HTML, CSS and JavaScript which runs as a page load. The resulting, dynamic, and potentially changing document, is the &#8220;DOM&#8221;.\u003C\u002Fp>\n\n\n\n\u003Cp>Events can be &#8220;fired&#8221; in the DOM, and &#8220;handlers&#8221; can &#8220;listen&#8221; to these events. These listeners can then process additional scripts based on the outputs. And this is what&#8217;s happening here. If you&#8217;re unfamiliar with this terminology, then hang in as I&#8217;ve got a practical example for you below!\u003C\u002Fp>\n\n\n\n\u003Ch2 class=\"wp-block-heading\" id=\"how-to-track-wp-contact-form-7-events-in-google-tag-manager\">How to track WP Contact Form 7 events in Google Tag Manager\u003C\u002Fh2>\n\n\n\n\u003Cp>Through tapping into the DOM events WPCF7 registers, we&#8217;re able to move the snippets away from the plugin itself &#8211; into either your site&#8217;s JavaScript files, or arguably even better &#8211; into Google Tag Manager. The below snippets can be bundled into your scripts files, but in this tutorial moving forwards, I&#8217;ll assume you&#8217;ll be using Google Tag Manager only.\u003C\u002Fp>\n\n\n\n\u003Ch3 class=\"wp-block-heading\" id=\"1-getting-started\">1. Getting started\u003C\u002Fh3>\n\n\n\n\u003Cp>Ensure you have Google Tag Manager installed. This may involve pestering your developers to add the tracking code to your website&#8217;s code. Or, it might involve simply adding a plugin (depending on your permissions). As of the time of writing this post, I recommend&nbsp;\u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fen-gb.wordpress.org\u002Fplugins\u002Fduracelltomi-google-tag-manager\u002F\">DuracellTomi&#8217;s Google Tag Manager for WordPress\u003C\u002Fa>&nbsp;as it achieves a few extra cool features (authorship tracking, etc) too all bundled into the plugin code!\u003C\u002Fp>\n\n\n\n\u003Cp>Ensure you&#8217;ve got a GTM account set up, and get your Container ID added into the plugin.\u003C\u002Fp>\n\n\n\n\u003Cp>Also, for debugging, it&#8217;s nice to use a Chrome plugin called Tag Assistant by Google (but you can just type &#8220;dataLayer&#8221; into your browser&#8217;s console to view the stacked there, too). Download that for later.\u003C\u002Fp>\n\n\n\n\u003Ch3 class=\"wp-block-heading\" id=\"2-register-your-event-listener-in-gtm\">2. Register your event listener in GTM\u003C\u002Fh3>\n\n\n\n\u003Cp>We&#8217;ll need one tag to register our &#8220;listener&#8221; and then we have a choice;\u003C\u002Fp>\n\n\n\n\u003Col class=\"wp-block-list\">\u003Cli>Track all contact form 7 form fills as one custom event in Tag Manager\u003C\u002Fli>\u003Cli>Track each form as an individual custom event in Tag Manager &#8211; \u003Cstrong>this tracks individual form IDs!\u003C\u002Fstrong>\u003C\u002Fli>\u003C\u002Fol>\n\n\n\n\u003Cp>Register a new tag and set its trigger to &#8220;All Pages&#8221;. The type should be HTML and the snippets can be found below;\u003C\u002Fp>\n\n\n\n\u003Cp>Option 1) For listening to all form completions and triggering only one event;\u003C\u002Fp>\n\n\n\n\u003Cp>\u003Cscript src=\"https:\u002F\u002Fgist.github.com\u002Faarondicks\u002F9d451508e5535b0f0309c4d3d8aa2b69.js\">\u003C\u002Fscript>\u003C\u002Fp>\n\n\n\n\u003Cp>Option 2) For listening to each form completion and triggering an individual event per form;\u003C\u002Fp>\n\n\n\n\u003Cp>\u003Cscript src=\"https:\u002F\u002Fgist.github.com\u002Faarondicks\u002F439cf7afc62a405ce2d86c10d5bca4a0.js\">\u003C\u002Fscript>\u003C\u002Fp>\n\n\n\n\u003Cp>This code snippet essentially registers an event listener on &#8220;all pages&#8221; (it&#8217;s simpler that way &#8211; room for optimisation if you have time!) for the custom event &#8220;wpcf7mailsent&#8221; and triggers a dataLayer custom event.\u003C\u002Fp>\n\n\n\n\u003Cfigure class=\"wp-block-image size-full is-style-default\">\u003Cimg loading=\"lazy\" decoding=\"async\" width=\"1578\" height=\"1530\" src=\"https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Fregistered_event_listener.png?auto=compress%2Cformat&q=90\" alt=\"Text: Tag configuration, tag type: Custom HTML. HTML code: \u003Cscript&gt; document.addEventListener ( ‘wpcf7mailsent’, function ( event ) { dataLayer.push ( { ‘event’:  ‘form_submitted_’+event.detail.contactFormId});},false); \u003C\u002Fscript\" class=\"wp-image-19552\"\u002F>\u003Cfigcaption>Our custom DOM listener tag, being triggered on &#8220;All Pages&#8221;\u003C\u002Ffigcaption>\u003C\u002Ffigure>\n\n\n\n\u003Ch3 class=\"wp-block-heading\" id=\"3-register-your-custom-triggers\">3. Register your custom triggers\u003C\u002Fh3>\n\n\n\n\u003Cp>If you&#8217;ve taken option 1 above, your event will be called &#8216;form_submitted&#8217;. For option 2 &#8211; our preferred route &#8211; then your custom events will be &#8216;form_submitted_{Form_ID}&#8217; where Form_ID is replaced inline with your WordPress form ID. If you&#8217;re struggling to find this &#8211; just check in the image below;\u003C\u002Fp>\n\n\n\n\u003Cfigure class=\"wp-block-image size-full is-style-default\">\u003Cimg loading=\"lazy\" decoding=\"async\" width=\"1440\" height=\"72\" src=\"https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Fwpcf7_form_id_example.png?auto=compress%2Cformat&q=90\" alt=\"Url of an example website with post ID highlighted '1000'\" class=\"wp-image-19553\"\u002F>\u003Cfigcaption>WordPress Contact form 7 edit screen URL &#8211; including the WordPress Form ID\u003C\u002Ffigcaption>\u003C\u002Ffigure>\n\n\n\n\u003Cp>Using this second option gives more granularity in reporting and importantly through Google Tag Manager allows different tags to be fired on different form completions.\u003C\u002Fp>\n\n\n\n\u003Cp>To register a new trigger, select &#8220;Triggers&#8221; from the left hand menu, then &#8220;New&#8221;. Configure your new &#8220;Custom Event&#8221; trigger similar to the settings below;\u003C\u002Fp>\n\n\n\n\u003Cfigure class=\"wp-block-image alignnone size-full wp-image-3412 is-style-default\">\u003Cimg loading=\"lazy\" decoding=\"async\" width=\"684\" height=\"746\" src=\"https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Fwpcf7_example_custom_event_id.png?auto=compress%2Cformat&q=90\" alt=\"Text: WPCF7 Event - Form 1000\nTrigger configuration\nTrigger type: Custom event\nEvent name: form_submitted_1000\nThis trigger fires on all custom events.\" class=\"wp-image-19555\"\u002F>\u003Cfigcaption>This will now trigger when custom events on the form ID 1000 is successfully submitted\u003C\u002Ffigcaption>\u003C\u002Ffigure>\n\n\n\n\u003Ch3 class=\"wp-block-heading\" id=\"4-register-your-google-analytics-or-other-custom-event-tags\">4. Register your Google Analytics (or other) custom event tags\u003C\u002Fh3>\n\n\n\n\u003Cp>If you&#8217;re familiar with creating Google Analytics event tags, then you may want to skip ahead. Here&#8217;s how it&#8217;s done;\u003C\u002Fp>\n\n\n\n\u003Cul class=\"wp-block-list\">\u003Cli>Click through to &#8220;Tags&#8221; from the main Tag Manager Workspace menu\u003C\u002Fli>\u003Cli>Click &#8220;New&#8221;\u003C\u002Fli>\u003Cli>Name your tag (something like):&nbsp;GA &#8211; Form 1000 submitted\u003C\u002Fli>\u003Cli>Select type: Universal Analytics\u003C\u002Fli>\u003Cli>Track type: Event\u003C\u002Fli>\u003Cli>Category, Action, Label (something like): forms, submitted, 1000 (or even something more useful &#8211; &#8220;Business form&#8221; for example)\u003C\u002Fli>\u003Cli>Select triggers: The one you made earlier\u003C\u002Fli>\u003C\u002Ful>\n\n\n\n\u003Cfigure class=\"wp-block-image alignnone size-full wp-image-3413 size-large is-style-default\">\u003Cimg loading=\"lazy\" decoding=\"async\" width=\"1058\" height=\"1442\" src=\"https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Funiversal-analytics-event-and-trigger.png?auto=compress%2Cformat&q=90\" alt=\"Text: GA - Form 1000 Submitted\nTag configuration,\nTag type: Universal Analaytics\nTrack type: Event\nCategory: forms\nAction: submitted\nLabel: 1000\nGoogle analytics settings: {{Impression analytics}}\nTriggering,\nFiring triggers: WPCF7 Event - Form 1000\" class=\"wp-image-19557\"\u002F>\u003Cfigcaption>A completed custom Tag setup including a Google Universal Analytics custom event\u003C\u002Ffigcaption>\u003C\u002Ffigure>\n\n\n\n\u003Ch3 class=\"wp-block-heading\" id=\"5-test-your-form\">5. Test your form!\u003C\u002Fh3>\n\n\n\n\u003Cp>You should be able to see your events in Google Analytics real time. Don&#8217;t forget to put your Google Tag Manager container into &#8220;Preview&#8221; mode like the below, and ensure you &#8220;Refresh&#8221; if any changes have been made.\u003C\u002Fp>\n\n\n\n\u003Cfigure class=\"wp-block-image alignnone size-full wp-image-3414 size-large is-style-default\">\u003Cimg loading=\"lazy\" decoding=\"async\" width=\"1976\" height=\"294\" src=\"https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Fgtm_preview_mode.png?auto=compress%2Cformat&q=90\" alt=\"Text: Now previewing workspace - Default workspace. You can preview and debug the workspace by visiting this site from your web browser.\" class=\"wp-image-19558\"\u002F>\u003Cfigcaption>Google Tag Manager in preview mode\u003C\u002Ffigcaption>\u003C\u002Ffigure>\n\n\n\n\u003Cp>In Google Tag Manager Preview Mode, you should see something like the below;\u003C\u002Fp>\n\n\n\n\u003Cfigure class=\"wp-block-image alignnone size-large size-full wp-image-3415 is-style-default\">\u003Cimg loading=\"lazy\" decoding=\"async\" width=\"1014\" height=\"494\" src=\"https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Fgtm_preview_mode_example.png?auto=compress%2Cformat&q=90\" alt=\"Text: Summary, form_submitted_1000. Tags fired on this event: GA Form 1000 submitted.\" class=\"wp-image-19559\"\u002F>\u003Cfigcaption>Example Tag Manager preview mode for debugging the event firing\u003C\u002Ffigcaption>\u003C\u002Ffigure>\n\n\n\n\u003Cp>And then this will translate into an event in \u003Ca rel=\"noreferrer noopener\" href=\"\u002Fanalytics\u002F\">Google Analytics\u003C\u002Fa>, like so;\u003C\u002Fp>\n\n\n\n\u003Cfigure class=\"wp-block-image alignnone size-full wp-image-3416 size-large is-style-default\">\u003Cimg loading=\"lazy\" decoding=\"async\" width=\"1966\" height=\"260\" src=\"https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Flive_events_google_analytics.png?auto=compress%2Cformat&q=90\" alt=\"Table featuring Event Category (forms) and Event Action (submitted)\" class=\"wp-image-19560\"\u002F>\u003Cfigcaption>View your events live in Analytics under &#8220;Real Time &gt; Events&#8221; for instant feedback when testing\u003C\u002Ffigcaption>\u003C\u002Ffigure>\n\n\n\n\u003Cp>From here, go ahead and set up custom Goals as you usually would. That&#8217;s it! You&#8217;ve now got a scalable WordPress Contact Form 7 &amp; Google Tag Manager solution implemented!\u003C\u002Fp>\n\n\n\n\u003Cp>If you want to learn how to set up tracking goal completions through WordPress Contact Form 7 &#8211; \u003Ca rel=\"noreferrer noopener\" href=\"\u002Fblog\u002Fevent-tracking-wpcf7-universal-analytics\u002F\">read more about it here\u003C\u002Fa>.\u003C\u002Fp>\n\n\n\n\u003Cp>Don&#8217;t forget to publish your Tag Container and leave preview modes. If you&#8217;ve got any questions, please feel free to \u003Ca rel=\"noreferrer noopener\" href=\"\u002Fget-in-touch\u002F\">get in touch\u003C\u002Fa>! For more blogs just like these, be sure to check out our analytics &amp; measurement \u003Ca rel=\"noreferrer noopener\" href=\"\u002Fblog\u002Fcategory\u002Fmeasurement\u002F\">blog\u003C\u002Fa>.\u003C\u002Fp>\n",{"rendered":158,"protected":230},19549,{"_yoast_wpseo_focuskw":5,"_yoast_wpseo_title":733,"_yoast_wpseo_metadesc":734,"inline_featured_image":230,"footnotes":5},"Tracking WP Contact Form 7 events in Analytics & Tag Manager | Impression","A lot has changed since WPCF7 was launched. Read this article to learn how to have event listeners in GTM fire your events into Google Analytics!",[736,240],41,[],[15],[740,135,245,246,247,248,249,741,250],"post-3409","category-measurement",[],[],[745,746,747,748],{"path":203,"name":204},{"path":256,"name":257},{"path":166,"name":167},{"path":212,"name":157},{"thumbnail":750,"medium":751,"medium_large":753,"large":755,"1536x1536":757,"2048x2048":759,"post-thumbnail":761,"12_col":763,"default_landscape":765,"default_portrait":767,"6_col_and_margin_short":769,"11_col_and_margin":771,"9_col_rectangle":773,"11_col":775,"staff_image_696_600":777,"rectangular_thumbnail":779},{"url":162,"width":262,"height":262},{"url":752,"width":92,"height":92},"https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Fmyriam-jessier-eveI7MOcSmw-unsplash.jpg?auto=compress%2Cformat&fit=scale&h=133&q=90&w=200",{"url":754,"width":95,"height":25},"https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Fmyriam-jessier-eveI7MOcSmw-unsplash.jpg?auto=compress%2Cformat&fit=scale&h=512&q=90&w=768",{"url":756,"width":269,"height":270},"https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Fmyriam-jessier-eveI7MOcSmw-unsplash.jpg?auto=compress%2Cformat&fit=crop&h=1000&q=90&w=1892",{"url":758,"width":101,"height":101},"https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Fmyriam-jessier-eveI7MOcSmw-unsplash.jpg?auto=compress%2Cformat&fit=scale&h=1024&q=90&w=1536",{"url":760,"width":104,"height":104},"https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Fmyriam-jessier-eveI7MOcSmw-unsplash.jpg?auto=compress%2Cformat&fit=scale&h=1365&q=90&w=2048",{"url":762,"width":107,"height":108},"https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Fmyriam-jessier-eveI7MOcSmw-unsplash.jpg?auto=compress%2Cformat&fit=crop&h=1180&q=90&w=1860",{"url":764,"width":110,"height":111},"https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Fmyriam-jessier-eveI7MOcSmw-unsplash.jpg?auto=compress%2Cformat&fit=crop&h=870&q=90&w=2880",{"url":766,"width":113,"height":87},"https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Fmyriam-jessier-eveI7MOcSmw-unsplash.jpg?auto=compress%2Cformat&fit=crop&h=600&q=90&w=800",{"url":768,"width":87,"height":113},"https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Fmyriam-jessier-eveI7MOcSmw-unsplash.jpg?auto=compress%2Cformat&fit=crop&h=800&q=90&w=600",{"url":770,"width":107,"height":111},"https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Fmyriam-jessier-eveI7MOcSmw-unsplash.jpg?auto=compress%2Cformat&fit=crop&h=870&q=90&w=1860",{"url":772,"width":117,"height":111},"https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Fmyriam-jessier-eveI7MOcSmw-unsplash.jpg?auto=compress%2Cformat&fit=crop&h=870&q=90&w=3080",{"url":774,"width":119,"height":120},"https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Fmyriam-jessier-eveI7MOcSmw-unsplash.jpg?auto=compress%2Cformat&fit=crop&h=1400&q=90&w=2150",{"url":776,"width":122,"height":111},"https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Fmyriam-jessier-eveI7MOcSmw-unsplash.jpg?auto=compress%2Cformat&fit=crop&h=870&q=90&w=2640",{"url":778,"width":86,"height":87},"https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Fmyriam-jessier-eveI7MOcSmw-unsplash.jpg?auto=compress%2Cformat&fit=crop&h=600&q=90&w=696",{"url":780,"width":125,"height":126},"https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Fmyriam-jessier-eveI7MOcSmw-unsplash.jpg?auto=compress%2Cformat&fit=crop&h=300&q=90&w=750",[782],{"id":232,"path":297,"display_name":4,"job_title":10,"description":6,"avatar_url":144,"acf":783},{"job_title":10,"full_bio":11,"specialist_service_links":784,"photo":795},[785,787,789,791,793],{"page":786,"link_text":18},{"ID":15,"post_author":16,"post_date":17,"post_date_gmt":17,"post_content":5,"post_title":18,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":21,"to_ping":5,"pinged":5,"post_modified":22,"post_modified_gmt":22,"post_content_filtered":5,"post_parent":23,"guid":24,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":29},{"page":788,"link_text":41},{"ID":32,"post_author":33,"post_date":34,"post_date_gmt":34,"post_content":5,"post_title":35,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":36,"to_ping":5,"pinged":5,"post_modified":37,"post_modified_gmt":37,"post_content_filtered":5,"post_parent":38,"guid":39,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":40},{"page":790,"link_text":46},{"ID":44,"post_author":16,"post_date":45,"post_date_gmt":45,"post_content":5,"post_title":46,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":47,"to_ping":5,"pinged":5,"post_modified":48,"post_modified_gmt":48,"post_content_filtered":5,"post_parent":49,"guid":50,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":51},{"page":792,"link_text":61},{"ID":54,"post_author":16,"post_date":55,"post_date_gmt":55,"post_content":5,"post_title":56,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":57,"to_ping":5,"pinged":5,"post_modified":58,"post_modified_gmt":58,"post_content_filtered":5,"post_parent":25,"guid":59,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":60},{"page":794,"link_text":66},{"ID":64,"post_author":16,"post_date":65,"post_date_gmt":65,"post_content":5,"post_title":66,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":67,"to_ping":5,"pinged":5,"post_modified":68,"post_modified_gmt":68,"post_content_filtered":5,"post_parent":25,"guid":69,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":70},{"ID":72,"id":72,"title":73,"filename":74,"filesize":75,"url":76,"link":77,"alt":5,"author":78,"description":5,"caption":5,"name":79,"status":80,"uploaded_to":25,"date":81,"modified":81,"menu_order":25,"mime_type":82,"type":83,"subtype":84,"icon":85,"width":86,"height":87,"sizes":796},{"thumbnail":89,"thumbnail-width":90,"thumbnail-height":90,"medium":91,"medium-width":92,"medium-height":93,"medium_large":94,"medium_large-width":95,"medium_large-height":96,"large":97,"large-width":98,"large-height":99,"1536x1536":100,"1536x1536-width":101,"1536x1536-height":102,"2048x2048":103,"2048x2048-width":104,"2048x2048-height":105,"post-thumbnail":106,"post-thumbnail-width":107,"post-thumbnail-height":108,"12_col":109,"12_col-width":110,"12_col-height":111,"default_landscape":112,"default_landscape-width":113,"default_landscape-height":87,"default_portrait":114,"default_portrait-width":87,"default_portrait-height":113,"6_col_and_margin_short":115,"6_col_and_margin_short-width":107,"6_col_and_margin_short-height":111,"11_col_and_margin":116,"11_col_and_margin-width":117,"11_col_and_margin-height":111,"9_col_rectangle":118,"9_col_rectangle-width":119,"9_col_rectangle-height":120,"11_col":121,"11_col-width":122,"11_col-height":111,"staff_image_696_600":123,"staff_image_696_600-width":86,"staff_image_696_600-height":87,"rectangular_thumbnail":124,"rectangular_thumbnail-width":125,"rectangular_thumbnail-height":126},[798,799],{"id":736,"name":167,"path":166},{"id":240,"name":147,"path":146},[801,802,803,804,806,807,808,809,810,811,812,813,815,817,819,821,823,824,825,826,827],{"property":317,"content":733},{"property":319,"content":734},{"name":321,"content":322},{"property":218,"content":805},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fwordpress-contact-form-7-event-listeners-gtm\u002F",{"name":326,"content":327},{"property":329,"content":330},{"property":332,"content":733},{"property":334,"content":734},{"property":336,"content":805},{"property":338,"content":339},{"property":341,"content":342},{"property":344,"content":814},"2017-10-23T14:38:43+00:00",{"property":347,"content":816},"2022-10-05T10:17:58+00:00",{"property":350,"content":818},"https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Fmyriam-jessier-eveI7MOcSmw-unsplash.jpg?auto=compress%2Cformat",{"property":353,"content":820},2400,{"property":356,"content":822},1600,{"property":359,"content":360},{"property":198,"content":4},{"property":363,"content":364},{"property":366,"content":367},{"property":369,"content":370},{"@context":372,"@graph":829},[830,845,851,852,859,863,881],{"@type":312,"@id":831,"isPartOf":832,"author":833,"headline":157,"datePublished":814,"dateModified":816,"mainEntityOfPage":834,"wordCount":835,"commentCount":25,"publisher":836,"image":837,"thumbnailUrl":839,"articleSection":840,"inLanguage":387,"potentialAction":841},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fwordpress-contact-form-7-event-listeners-gtm\u002F#article",{"@id":805},{"name":4,"@id":378},{"@id":805},1020,{"@id":382},{"@id":838},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fwordpress-contact-form-7-event-listeners-gtm\u002F#primaryimage","https:\u002F\u002Fimages.impression.co.uk\u002F2022\u002F10\u002Fmyriam-jessier-eveI7MOcSmw-unsplash.jpg?auto=compress%2Cformat&q=90",[167,147],[842],{"@type":390,"name":391,"target":843},[844],"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fwordpress-contact-form-7-event-listeners-gtm\u002F#respond",{"@type":395,"@id":805,"url":805,"name":733,"isPartOf":846,"primaryImageOfPage":847,"image":848,"thumbnailUrl":839,"datePublished":814,"dateModified":816,"description":734,"breadcrumb":849,"inLanguage":402},{"@id":397},{"@id":838},{"@id":838},{"@id":850},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fwordpress-contact-form-7-event-listeners-gtm\u002F#breadcrumb",{"@type":404,"inLanguage":387,"@id":838,"url":839,"contentUrl":839,"width":820,"height":822},{"@type":406,"@id":850,"itemListElement":853},[854,855,856,858],{"@type":409,"position":232,"name":204,"item":410},{"@type":409,"position":152,"name":257,"item":412},{"@type":409,"position":191,"name":167,"item":857},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fcategory\u002Fmeasurement\u002F",{"@type":409,"position":416,"name":157},{"@type":418,"@id":397,"url":410,"name":339,"description":5,"publisher":860,"inLanguage":387,"potentialAction":861},{"@id":420},{"@type":422,"target":862,"query-input":426},{"@type":424,"urlTemplate":425},{"@type":428,"@id":420,"name":339,"url":410,"logo":864,"image":434,"sameAs":865,"@context":439,"email":440,"foundingDate":441,"legalName":442,"vatID":443,"description":444,"telephone":445,"address":866,"location":867,"areaServed":877},{"@type":404,"inLanguage":387,"@id":430,"url":431,"contentUrl":431,"width":432,"height":433,"caption":339},[436,437,438],{"@type":447,"streetAddress":448,"addressLocality":449,"addressRegion":450,"postalCode":451,"addressCountry":452},[868,871,874],{"@type":455,"name":456,"geo":869,"address":870,"photo":434,"telephone":462},{"@type":458,"latitude":459,"longitude":460},{"@type":447,"streetAddress":448,"addressLocality":449,"addressRegion":450,"postalCode":451,"addressCountry":452},{"@type":455,"name":464,"geo":872,"address":873,"photo":473,"telephone":474},{"@type":458,"latitude":466,"longitude":467},{"@type":447,"streetAddress":469,"addressLocality":470,"addressRegion":471,"postalCode":472,"addressCountry":452},{"@type":455,"name":476,"geo":875,"address":876},{"@type":458,"latitude":478,"longitude":479},{"@type":447,"streetAddress":481,"addressLocality":482,"addressRegion":483,"postalCode":484,"addressCountry":485},[878,879,880],{"@type":488,"name":489},{"@type":488,"name":491},{"@type":488,"name":485},{"@type":494,"@id":495,"name":4,"image":882,"description":6,"sameAs":883,"url":219},{"@type":404,"inLanguage":387,"@id":497,"url":8,"contentUrl":8,"caption":4},[215,499],{"self":885,"collection":890,"about":892,"author":894,"replies":896,"version-history":899,"predecessor-version":902,"wp:featuredmedia":906,"wp:attachment":909,"wp:term":912,"curies":919},[886],{"href":887,"targetHints":888},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fposts\u002F3409",{"allow":889},[506,507,508,509,510],[891],{"href":513},[893],{"href":516},[895],{"embeddable":130,"href":519},[897],{"embeddable":130,"href":898},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fcomments?post=3409",[900],{"count":416,"href":901},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fposts\u002F3409\u002Frevisions",[903],{"id":904,"href":905},19561,"\u002Fwp-json\u002Fwp\u002Fv2\u002Fposts\u002F3409\u002Frevisions\u002F19561",[907],{"embeddable":130,"href":908},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fmedia\u002F19549",[910],{"href":911},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fmedia?parent=3409",[913,915,917],{"taxonomy":538,"embeddable":130,"href":914},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fcategories?post=3409",{"taxonomy":541,"embeddable":130,"href":916},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fcollections?post=3409",{"taxonomy":198,"embeddable":130,"href":918},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fcoauthors?post=3409",[920],{"name":547,"href":548,"templated":130},{"id":922,"date":923,"date_gmt":923,"guid":924,"modified":172,"modified_gmt":172,"slug":926,"status":19,"type":135,"link":171,"title":927,"content":928,"excerpt":930,"author":232,"featured_media":25,"comment_status":234,"ping_status":234,"sticky":230,"template":5,"format":235,"meta":931,"categories":934,"collections":936,"coauthors":937,"class_list":938,"acf":941,"head_links":942,"breadcrumbs":943,"url_path":171,"search_description":933,"featured_image_urls":948,"authors":965,"type_nicename":312,"reading_minutes":173,"category":981,"yoast_title":932,"yoast_meta":985,"yoast_json_ld":1011,"_links":1065},3396,"2017-10-22T17:03:32",{"rendered":925},"https:\u002F\u002Fimpression.test\u002Fblog\u002Fbuild-google-data-studio-community-connector\u002F","build-google-data-studio-community-connector",{"rendered":169},{"rendered":929,"protected":230},"\u003Cp>\u003Cdiv class=\"table-of-contents\">\u003Cul>\u003Cli class=\"heading-h2\">\u003Ca href=\"#what-is-google-data-studio\">What is Google Data Studio?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"heading-h2\">\u003Ca href=\"#google-data-studio-history\">Google Data Studio history\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"heading-h2\">\u003Ca href=\"#about-connectors-and-google-apps-scripts\">About Connectors and Google Apps Scripts\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"heading-h2\">\u003Ca href=\"#example-use-pulling-live-keyword-ranking-data-into-google-data-studio\">Example use: pulling live keyword ranking data into Google Data Studio\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"heading-h2\">\u003Ca href=\"#how-to-create-a-google-data-studio-community-connector\">How to create a Google Data Studio Community Connector\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"heading-h3\">\u003Ca href=\"#setting-up-a-new-google-apps-script-for-the-connector\">Setting up a new Google Apps Script for the Connector\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"heading-h3\">\u003Ca href=\"#default-file-layouts-and-function-calls\">Default file layouts and function calls\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"heading-h3\">\u003Ca href=\"#connector-application-design\">Connector application design\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"heading-h3\">\u003Ca href=\"#testing\">Testing\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"heading-h3\">\u003Ca href=\"#deploying-a-custom-data-studio-connector\">Deploying a custom Data Studio Connector\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"heading-h2\">\u003Ca href=\"#questions\">Questions?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"heading-h2\">\u003Ca href=\"#full-code-example\">Full code example\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Ful>\u003C\u002Fdiv>\u003C\u002Fp>\n\u003Ch2 id=\"what-is-google-data-studio\">What is Google Data Studio?\u003C\u002Fh2>\n\u003Cp>\u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fdatastudio.google.com\u002F\">Google Data Studio\u003C\u002Fa> is a data dashboard and reporting tool which provides easy-to-read, shareable and customisable reports from a variety of data sources.\u003C\u002Fp>\n\u003Cp>Data Studio is now free to use and can produce reports from almost any online data source; including digital marketing analytics, CRM pipelines, YouTube stats, etc.\u003C\u002Fp>\n\u003Cp>You can browse a \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fdatastudio.google.com\u002Foverview\">gallery on Google&#8217;s site here\u003C\u002Fa>, or read on to skip to the good stuff!\u003C\u002Fp>\n\u003Ch2 id=\"google-data-studio-history\">Google Data Studio history\u003C\u002Fh2>\n\u003Cp>In May 2016, \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fanalytics.googleblog.com\u002F2016\u002F05\u002Fannouncing-data-studio-our-free-new.html\">Google announced\u003C\u002Fa> Data Studio would be accessible for users who are not subscribed to the Google Analytics 360 Suite. The product initially launched with a limited number of reports per account and a limited number of data connectors. But, since February 2017&#8217;s \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fanalytics.googleblog.com\u002F2017\u002F02\u002Fmaking-google-data-studio-free-for.html\">announcement\u003C\u002Fa>, the tool has been unlimited and free for all users. \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fanalytics.googleblog.com\u002F2017\u002F03\u002Fdata-studio-now-globally-available.html\">In March\u003C\u002Fa>, Google finally launched it worldwide and the product has been improving ever since (\u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fsupport.google.com\u002Fdatastudio\u002Fanswer\u002F6311467\">see changelog\u003C\u002Fa>).\u003C\u002Fp>\n\u003Cp>Initially, Google Data Studio launched with connectors for Google-only services (including Google Cloud), as well as a few more general purpose Data Sources, such as File Upload and MySQL. Then, in September 2017, the \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fdevelopers.google.com\u002Fdatastudio\u002Fconnector\u002Fdeveloper-launch\u002F\">Data Studio &#8220;Community Connectors&#8221; developer programme\u003C\u002Fa> launched with around 200 community-driven connectors from around 10 providers.\u003C\u002Fp>\n\u003Cp>\u003Cfigure style=\"width: 2534px\" class=\"wp-caption aligncenter\">\u003Cimg loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-3397\" src=\"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F05\u002FTHcXbYCD-Supermetrics-community-data-studio.png?auto=compress%2Cformat&q=90\" alt=\"\" width=\"2534\" height=\"1028\" \u002F>\u003Cfigcaption class=\"wp-caption-text\">Popular providers like Supermetrics have launched Data Studio Community Connectors under the developer program\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003C\u002Fp>\n\u003Cp>Not only did this make the platform infinitely more useful for cross-channel marketers (popular providers like \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fsupermetrics.com\u002Fblog\u002Fdata-studio-connectors\u002F\">Supermetrics got in there\u003C\u002Fa>; below) but this has also opened up the opportunities for in-house and in-agency developers to build and deploy their own connectors. And that&#8217;s exactly what we did here at Impression:\u003C\u002Fp>\n\u003Cblockquote class=\"twitter-tweet\" data-width=\"550\" data-dnt=\"true\">\n\u003Cp lang=\"en\" dir=\"ltr\">Has anyone seen live \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Ftwitter.com\u002FgetSTAT?ref_src=twsrc%5Etfw\">@getSTAT\u003C\u002Fa> data in Google \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Ftwitter.com\u002Fhashtag\u002FDataStudio?src=hash&amp;ref_src=twsrc%5Etfw\">#DataStudio\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>We have ? \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Ftwitter.com\u002Fimpressiontalk?ref_src=twsrc%5Etfw\">@impressiontalk\u003C\u002Fa> \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Ft.co\u002FCVtV41RN6T\">pic.twitter.com\u002FCVtV41RN6T\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>&mdash; Aaron Dicks (@aarondicks) \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Ftwitter.com\u002Faarondicks\u002Fstatus\u002F922921754820976641?ref_src=twsrc%5Etfw\">October 24, 2017\u003C\u002Fa>\u003C\u002Fp>\u003C\u002Fblockquote>\n\u003Cp>\u003Cscript async src=\"https:\u002F\u002Fplatform.twitter.com\u002Fwidgets.js\" charset=\"utf-8\">\u003C\u002Fscript>\u003C\u002Fp>\n\u003Ch2 id=\"about-connectors-and-google-apps-scripts\">About Connectors and Google Apps Scripts\u003C\u002Fh2>\n\u003Cp>Community Connectors can be built by almost anyone with experience in JavaScript and using Google Apps Script. The documentation is reasonably thorough despite the program being in its early days; you can certainly get up and running with the existing docs.\u003C\u002Fp>\n\u003Cp>To become a Google Data Studio Community Connector developer, you need to request to be whitelisted to see extra features in your Google Scripts account. You can send this request \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fgoo.gl\u002Fforms\u002FMfxSU71PqP3P0RoM2\">here\u003C\u002Fa>. You&#8217;ll know you have access as you also get an invite into a Google Group for developers and your Scripts &#8216;Publish&#8217; menu will now have this option:\u003C\u002Fp>\n\u003Cp>\u003Cfigure style=\"width: 699px\" class=\"wp-caption aligncenter\">\u003Cimg loading=\"lazy\" decoding=\"async\" class=\" wp-image-3398\" src=\"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F05\u002FnrSDDa4r-Deploy-from-manifest.png?auto=compress%2Cformat&q=90\" alt=\"\" width=\"699\" height=\"252\" \u002F>\u003Cfigcaption class=\"wp-caption-text\">Google Apps Script: Deploy from manifest\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003C\u002Fp>\n\u003Cp>For those familiar with the Google Apps Script IDE, you&#8217;re in luck as all the usual Apps Scripts are available for use here.\u003C\u002Fp>\n\u003Cp>Beware that whitelisting your account can take &#8220;2-4&#8221; working days. In reality, I was whitelisted in a little over a day.\u003C\u002Fp>\n\u003Ch2 id=\"example-use-pulling-live-keyword-ranking-data-into-google-data-studio\">Example use: pulling live keyword ranking data into Google Data Studio\u003C\u002Fh2>\n\u003Cp>Our demo below is far from complete, but it&#8217;s enough to give a good demonstration of what&#8217;s possible with Data Studio connectors. It actually only took a few hours to set up and it&#8217;s safe to say we&#8217;ll be working on this a lot more in the coming weeks.\u003C\u002Fp>\n\u003Cp>There are a number of elements that this tutorial will not cover, including date ranges, OAuth authentication\u002Fconnectivity and data caching. These topics will be covered in a future follow up post, or in the comments below.\u003C\u002Fp>\n\u003Cp>Our enterprise search engine rank tracking data provider, \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fgetstat.com\u002Ftake-the-tour\u002F\">STAT\u003C\u002Fa>, provides a really open API that allows us to pull all keywords that we&#8217;re tracking for a specific site. Currently, among all Community Connectors, there are only a few entry-level packages that do the same, so we were keen to plug in the enterprise level data for our clients.\u003C\u002Fp>\n\u003Cp>It doesn&#8217;t allow for date-specific searching, hence this tutorial not covering that requirement, but we know of a couple other agencies circumventing this by caching the data in SQL databases and then using the SQL connector to get the data that way.\u003C\u002Fp>\n\u003Ch2 id=\"how-to-create-a-google-data-studio-community-connector\">How to create a Google Data Studio Community Connector\u003C\u002Fh2>\n\u003Cp>As Google&#8217;s documentation simply puts it, there are three steps to creating a community connector;\u003C\u002Fp>\n\u003Col>\n\u003Cli>Create a new Apps Script project.\u003C\u002Fli>\n\u003Cli>Write the connector code.\u003C\u002Fli>\n\u003Cli>Complete the project manifest.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>I don&#8217;t disagree with this sentiment, but it&#8217;s not entirely that simple&#8230;\u003C\u002Fp>\n\u003Ch3 id=\"setting-up-a-new-google-apps-script-for-the-connector\">Setting up a new Google Apps Script for the Connector\u003C\u002Fh3>\n\u003Cp>No special settings are required in order to start scripting. However, you will need a whitelisted developer account to test deploy your work. In the interim, you can use the standard debugging tools and spoof requests to your getData() function to check that the data is properly formed. I&#8217;ve covered how we tackled this in the Testing and Deployment section below.\u003C\u002Fp>\n\u003Cp>If you can already create a manifest document, do so now, otherwise refer back to this once you&#8217;re whitelisted. This is required to deploy the Script later on. You can view your Scripts manifest by clicking:\u003C\u002Fp>\n\u003Cp>\u003Cfigure style=\"width: 474px\" class=\"wp-caption aligncenter\">\u003Cimg loading=\"lazy\" decoding=\"async\" class=\" wp-image-3399\" src=\"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F05\u002F35IfA4YJ-view-manifest-file.png?auto=compress%2Cformat&q=90\" alt=\"\" width=\"474\" height=\"400\" \u002F>\u003Cfigcaption class=\"wp-caption-text\">To edit your manifest file to include the required content, click View &gt; Show manifest file, once whitelisted.\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003C\u002Fp>\n\u003Cp>The full manifest file specification can \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fdevelopers.google.com\u002Fdatastudio\u002Fconnector\u002Fmanifest\">be found here\u003C\u002Fa>; otherwise please feel free to repurpose the example in my code below.\u003C\u002Fp>\n\u003Ch3 id=\"default-file-layouts-and-function-calls\">Default file layouts and function calls\u003C\u002Fh3>\n\u003Cp>The Community Connector developer program documentation gives a good amount of information on this. From \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fdevelopers.google.com\u002Fdatastudio\u002Fconnector\u002Fbuild\">this page\u003C\u002Fa>, copy across the shell functions and the schema variable that I&#8217;ve listed below or dive straight into the sample project we&#8217;ve developed at the bottom of this post.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Functions\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>getConfig (request) {}\u003C\u002Fli>\n\u003Cli>getSchema (request)  {}\u003C\u002Fli>\n\u003Cli>getData (request) {}\u003C\u002Fli>\n\u003Cli>getAuthType () {}\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Variables\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Schema or &#8220;fixedSchema&#8221; in the documentation\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Assuming that you aren&#8217;t yet using OAuth and you&#8217;re comfortable reading code samples (Google&#8217;s or mine below) then I will focus on the getData() function here.\u003C\u002Fp>\n\u003Cp>This function, if not implemented properly, can result in errors for a number of reasons. I was tripped up by the header field order not matching my rows and the varying row length (different queries can result in a different number of metrics being required).\u003C\u002Fp>\n\u003Cp>The most important part of this function is to return a properly formed object:\u003C\u002Fp>\n\u003Cp>\u003Ccode>var return_data = {\u003Cbr \u002F>\nschema: headers,\u003Cbr \u002F>\nrows: rows,\u003Cbr \u002F>\n};\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>The schema argument expects an array of \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fdevelopers.google.com\u002Fdatastudio\u002Fconnector\u002Freference#field\">Field\u003C\u002Fa> objects. If in the request, the fields array appears in a different order to your defined schema (for example metrics can be reordered), then you must refer to this array and reorder it. If any metric is not requested in the request.fields array, then it should be excluded from the reordered return array.\u003C\u002Fp>\n\u003Cp>Similarly, the rows must be formatted correctly to prevent errors. The required format is an array of objects; one per row. Within this object, the values parameter is an array of the requested field values. A properly formatted example of this is below, along with an error page example.\u003C\u002Fp>\n\u003Cp>\u003Ccode>rows=[{values=[ab split testing, 50, 101.0]}, {values=[ab testing, 1900, 101.0]}, {values=[bing ads management, 30, 8]}];\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cfigure style=\"width: 1020px\" class=\"wp-caption aligncenter\">\u003Cimg loading=\"lazy\" decoding=\"async\" class=\" wp-image-3400\" src=\"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F05\u002FHe6yjE56-data-studio-connector-error.png?auto=compress%2Cformat&q=90\" alt=\"\" width=\"1020\" height=\"598\" \u002F>\u003Cfigcaption class=\"wp-caption-text\">This is what a Data Studio Connector error looks like. Often it will be due to a poorly formatted response to getData().\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003C\u002Fp>\n\u003Ch3 id=\"connector-application-design\">Connector application design\u003C\u002Fh3>\n\u003Cp>When you&#8217;re designing your own Community Connector you&#8217;ll need to be mindful of the dimensions and metrics you&#8217;re looking to present. This will fit into your schema and will then be presented like so on the controls sidebar.\u003C\u002Fp>\n\u003Cp>\u003Cfigure style=\"width: 466px\" class=\"wp-caption aligncenter\">\u003Cimg loading=\"lazy\" decoding=\"async\" class=\" wp-image-3401\" src=\"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F05\u002FdghHUXlK-dimensions-metrics-data-studio.png?auto=compress%2Cformat&q=90\" alt=\"\" width=\"466\" height=\"425\" \u002F>\u003Cfigcaption class=\"wp-caption-text\">This is how Dimensions and Metrics are presented in Data Studio\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003C\u002Fp>\n\u003Cp>I always like to think of dimensions not as metrics, but ways to segment your data (location, city name, keyword, colour, etc). Metrics are the facts which you are tying to your dimensions and these can usually be filtered. This principle of metrics and dimensions is exactly the same as within Google Analytics.\u003C\u002Fp>\n\u003Cp>If your connector allows multiple dimensions and multiple metrics, for use across a number of the graph and chart types on offer in Data Studio, then you should be more wary of error handling within your application. Google provides more information on error handling \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fdevelopers.google.com\u002Fdatastudio\u002Fconnector\u002Ferror-handling\">here\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3 id=\"testing\">Testing\u003C\u002Fh3>\n\u003Cp>To test our getData(request) function in advance, we constructed a sample request object from the documentation and later refined this when we had access. If you consider this is based on your configuration, you can take the below to represent a sample query for yourself. The configParams object contains the data your user enters when they install the Data Connector. The fields array includes a named reference to your Schema object &#8212; the fields here (dimensions and metrics) are \u003Cspan style=\"text-decoration: underline;\">in order\u003C\u002Fspan> as per your user&#8217;s selection.\u003C\u002Fp>\n\u003Cp>\u003Ccode>var request = {\u003Cbr \u002F>\nconfigParams:{\u003Cbr \u002F>\napiKey:'12345',\u003Cbr \u002F>\nsiteName:'impression',\u003Cbr \u002F>\nsiteId:'666'\u003Cbr \u002F>\n},\u003Cbr \u002F>\nfields:[\u003Cbr \u002F>\n{name:'keyword'},\u003Cbr \u002F>\n{name:'regionalSearchVolume'},\u003Cbr \u002F>\n{name:'googleRank'}\u003Cbr \u002F>\n]\u003Cbr \u002F>\n};\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>Once you&#8217;ve got access to deploying your connector to Data Studio, I found the StackDriver logging invaluable. In the place of the \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fdevelopers.google.com\u002Fapps-script\u002Freference\u002Fbase\u002Flogger\">Logger\u003C\u002Fa> class, you&#8217;ll want to use the \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fdevelopers.google.com\u002Fapps-script\u002Freference\u002Fbase\u002Fconsole\">Console\u003C\u002Fa> class so that the debug content is passed to StackDriver.\u003C\u002Fp>\n\u003Cp>\u003Cfigure style=\"width: 2444px\" class=\"wp-caption aligncenter\">\u003Cimg loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-3402\" src=\"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F05\u002Fr9JIAKHA-stackdriver-logs.png?auto=compress%2Cformat&q=90\" alt=\"\" width=\"2444\" height=\"790\" \u002F>\u003Cfigcaption class=\"wp-caption-text\">With Google Cloud&#8217;s StackDriver logging you can debug your connector whilst it&#8217;s in use\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003C\u002Fp>\n\u003Cp>You can actually expand out each line item here, to view the JSON payload and dig a little deeper. Errors are also shown in here, too, and they look like so;\u003C\u002Fp>\n\u003Cp>\u003Cimg loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3403\" src=\"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F05\u002Fhgvpo0LP-stackdriver-error-line-item.png?auto=compress%2Cformat&q=90\" alt=\"\" width=\"703\" height=\"31\" \u002F>\u003C\u002Fp>\n\u003Ch3 id=\"deploying-a-custom-data-studio-connector\">Deploying a custom Data Studio Connector\u003C\u002Fh3>\n\u003Cp>The process of deploying the connector is straightforward. Click Publish &gt; Deploy and then find and click on the Data Studio URL.\u003C\u002Fp>\n\u003Cp>\u003Cfigure style=\"width: 948px\" class=\"wp-caption aligncenter\">\u003Cimg loading=\"lazy\" decoding=\"async\" class=\"wp-image-3404\" src=\"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F05\u002FbTNTJqiX-scripts-data-connector-deployments.png?auto=compress%2Cformat&q=90\" alt=\"\" width=\"948\" height=\"516\" \u002F>\u003Cfigcaption class=\"wp-caption-text\">When you can deploy from Apps Scripts, click on Publish &gt; Deploy from manifest to get this option. Expand the top option and select the Data Studio URL to start adding your Data Source to a report\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003C\u002Fp>\n\u003Cp>This will open a new window and add the data source to your Data Studio account. Here, you can enter any required information and add it to a report. You can also take this opportunity to share the Data Source with colleagues.\u003C\u002Fp>\n\u003Cp>\u003Cfigure style=\"width: 1065px\" class=\"wp-caption aligncenter\">\u003Cimg loading=\"lazy\" decoding=\"async\" class=\"wp-image-3405\" src=\"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F05\u002F3rrRZUfF-new-data-studio-connector.png?auto=compress%2Cformat&q=90\" alt=\"\" width=\"1065\" height=\"628\" \u002F>\u003Cfigcaption class=\"wp-caption-text\">Much like other connectors &#8211; all settings will be visible on the Data Source setup screen. After entering these details, you add the configured Data Source to your report.\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003C\u002Fp>\n\u003Cp>Once you&#8217;ve added the data source, you have an opportunity to confirm you&#8217;re happy with the settings for your fields. You can use this to trial the impact of any schema changes, such as the aggregation settings.\u003C\u002Fp>\n\u003Cp>\u003Cfigure style=\"width: 1106px\" class=\"wp-caption aligncenter\">\u003Cimg loading=\"lazy\" decoding=\"async\" class=\" wp-image-3406\" src=\"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F05\u002Fm5FP1xOO-alter-fields-data-studio-connector.png?auto=compress%2Cformat&q=90\" alt=\"\" width=\"1106\" height=\"417\" \u002F>\u003Cfigcaption class=\"wp-caption-text\">Although you define your fields in your Apps Script code, you can also make amends to the data on this screen.\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003C\u002Fp>\n\u003Cp>Finally, once on your report canvas, you&#8217;ll be asked one final time to confirm that you&#8217;re happy to add the new Data Source to your report. Following this, you&#8217;re free to select a graph\u002Fchart and begin using the data.\u003C\u002Fp>\n\u003Cp>\u003Cfigure style=\"width: 749px\" class=\"wp-caption aligncenter\">\u003Cimg loading=\"lazy\" decoding=\"async\" class=\" wp-image-3407\" src=\"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F05\u002FBzKPrveI-add-connector-to-report.png?auto=compress%2Cformat&q=90\" alt=\"\" width=\"749\" height=\"376\" \u002F>\u003Cfigcaption class=\"wp-caption-text\">When adding a newly installed Data Source, you&#8217;ll be presented with this modal window\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003C\u002Fp>\n\u003Cp>A table is the most appropriate display of the data my example is showing. You can see here that I&#8217;ve selected two metrics, Google Rank and Regional Search Volume, and that they&#8217;re being shown in this order in the table. As the data is now read into Data Studio, the Sort and Filter settings work as expected without additional API calls.\u003C\u002Fp>\n\u003Cp>\u003Cfigure style=\"width: 1024px\" class=\"wp-caption aligncenter\">\u003Cimg loading=\"lazy\" decoding=\"async\" class=\"wp-image-3408 size-large\" src=\"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F05\u002FLJtGVraY-configuration-metrics-dimensions.png?auto=compress%2Cformat&fit=crop&h=1000&q=90&w=1892\" alt=\"\" width=\"1024\" height=\"630\" \u002F>\u003Cfigcaption class=\"wp-caption-text\">A successful deployment and test of a new Data Source in Data Studio\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003C\u002Fp>\n\u003Ch2 id=\"questions\">Questions?\u003C\u002Fh2>\n\u003Cp>I&#8217;d be more than happy to take a look at them in the comments below! Please feel free to post code snippets or links to hosted code gists or similar. We&#8217;re interested to see what you&#8217;re achieving with Data Studio Connectors. Good luck!\u003C\u002Fp>\n\u003Ch2 id=\"full-code-example\">Full code example\u003C\u002Fh2>\n\u003Cp>\u003Cscript src=\"https:\u002F\u002Fgist.github.com\u002Faarondicks\u002Fcba3dfefca68139a2ce38676109dc2fb.js\">\u003C\u002Fscript>\u003C\u002Fp>\n",{"rendered":170,"protected":230},{"_yoast_wpseo_focuskw":5,"_yoast_wpseo_title":932,"_yoast_wpseo_metadesc":933,"inline_featured_image":230,"footnotes":5},"How to Build a Google Data Studio Community Connector","A comprehensive tutorial walking you through the process of setting up a Community Connector to expose and report on custom data.",[935,736,240],39,[],[15],[939,135,245,246,247,249,940,741,250],"post-3396","category-digital-marketing",[],[],[944,945,946,947],{"path":203,"name":204},{"path":256,"name":257},{"path":177,"name":178},{"path":212,"name":169},{"thumbnail":949,"medium":950,"medium_large":951,"large":952,"1536x1536":953,"2048x2048":954,"post-thumbnail":955,"12_col":956,"default_landscape":957,"default_portrait":958,"6_col_and_margin_short":959,"11_col_and_margin":960,"9_col_rectangle":961,"11_col":962,"staff_image_696_600":963,"rectangular_thumbnail":964},{"url":230,"width":262,"height":262},{"url":230,"width":92,"height":92},{"url":230,"width":95,"height":25},{"url":230,"width":269,"height":270},{"url":230,"width":101,"height":101},{"url":230,"width":104,"height":104},{"url":230,"width":107,"height":108},{"url":230,"width":110,"height":111},{"url":230,"width":113,"height":87},{"url":230,"width":87,"height":113},{"url":230,"width":107,"height":111},{"url":230,"width":117,"height":111},{"url":230,"width":119,"height":120},{"url":230,"width":122,"height":111},{"url":230,"width":86,"height":87},{"url":230,"width":125,"height":126},[966],{"id":232,"path":297,"display_name":4,"job_title":10,"description":6,"avatar_url":144,"acf":967},{"job_title":10,"full_bio":11,"specialist_service_links":968,"photo":979},[969,971,973,975,977],{"page":970,"link_text":18},{"ID":15,"post_author":16,"post_date":17,"post_date_gmt":17,"post_content":5,"post_title":18,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":21,"to_ping":5,"pinged":5,"post_modified":22,"post_modified_gmt":22,"post_content_filtered":5,"post_parent":23,"guid":24,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":29},{"page":972,"link_text":41},{"ID":32,"post_author":33,"post_date":34,"post_date_gmt":34,"post_content":5,"post_title":35,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":36,"to_ping":5,"pinged":5,"post_modified":37,"post_modified_gmt":37,"post_content_filtered":5,"post_parent":38,"guid":39,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":40},{"page":974,"link_text":46},{"ID":44,"post_author":16,"post_date":45,"post_date_gmt":45,"post_content":5,"post_title":46,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":47,"to_ping":5,"pinged":5,"post_modified":48,"post_modified_gmt":48,"post_content_filtered":5,"post_parent":49,"guid":50,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":51},{"page":976,"link_text":61},{"ID":54,"post_author":16,"post_date":55,"post_date_gmt":55,"post_content":5,"post_title":56,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":57,"to_ping":5,"pinged":5,"post_modified":58,"post_modified_gmt":58,"post_content_filtered":5,"post_parent":25,"guid":59,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":60},{"page":978,"link_text":66},{"ID":64,"post_author":16,"post_date":65,"post_date_gmt":65,"post_content":5,"post_title":66,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":67,"to_ping":5,"pinged":5,"post_modified":68,"post_modified_gmt":68,"post_content_filtered":5,"post_parent":25,"guid":69,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":70},{"ID":72,"id":72,"title":73,"filename":74,"filesize":75,"url":76,"link":77,"alt":5,"author":78,"description":5,"caption":5,"name":79,"status":80,"uploaded_to":25,"date":81,"modified":81,"menu_order":25,"mime_type":82,"type":83,"subtype":84,"icon":85,"width":86,"height":87,"sizes":980},{"thumbnail":89,"thumbnail-width":90,"thumbnail-height":90,"medium":91,"medium-width":92,"medium-height":93,"medium_large":94,"medium_large-width":95,"medium_large-height":96,"large":97,"large-width":98,"large-height":99,"1536x1536":100,"1536x1536-width":101,"1536x1536-height":102,"2048x2048":103,"2048x2048-width":104,"2048x2048-height":105,"post-thumbnail":106,"post-thumbnail-width":107,"post-thumbnail-height":108,"12_col":109,"12_col-width":110,"12_col-height":111,"default_landscape":112,"default_landscape-width":113,"default_landscape-height":87,"default_portrait":114,"default_portrait-width":87,"default_portrait-height":113,"6_col_and_margin_short":115,"6_col_and_margin_short-width":107,"6_col_and_margin_short-height":111,"11_col_and_margin":116,"11_col_and_margin-width":117,"11_col_and_margin-height":111,"9_col_rectangle":118,"9_col_rectangle-width":119,"9_col_rectangle-height":120,"11_col":121,"11_col-width":122,"11_col-height":111,"staff_image_696_600":123,"staff_image_696_600-width":86,"staff_image_696_600-height":87,"rectangular_thumbnail":124,"rectangular_thumbnail-width":125,"rectangular_thumbnail-height":126},[982,983,984],{"id":935,"name":178,"path":177},{"id":736,"name":167,"path":166},{"id":240,"name":147,"path":146},[986,987,988,989,991,992,993,994,995,996,997,998,1000,1002,1004,1005,1006,1007,1008,1009,1010],{"property":317,"content":932},{"property":319,"content":933},{"name":321,"content":322},{"property":218,"content":990},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fbuild-google-data-studio-community-connector\u002F",{"name":326,"content":327},{"property":329,"content":330},{"property":332,"content":932},{"property":334,"content":933},{"property":336,"content":990},{"property":338,"content":339},{"property":341,"content":342},{"property":344,"content":999},"2017-10-22T17:03:32+00:00",{"property":347,"content":1001},"2022-02-07T16:48:34+00:00",{"property":350,"content":1003},"https:\u002F\u002Fcdn.impression.co.uk\u002F2021\u002F05\u002FSupermetrics-community-data-studio.png",{"property":359,"content":5},{"property":353,"content":5},{"property":356,"content":5},{"property":198,"content":4},{"property":363,"content":364},{"property":366,"content":367},{"property":369,"content":370},{"@context":372,"@graph":1012},[1013,1026,1032,1033,1040,1044,1062],{"@type":312,"@id":1014,"isPartOf":1015,"author":1016,"headline":169,"datePublished":999,"dateModified":1001,"mainEntityOfPage":1017,"wordCount":269,"commentCount":25,"publisher":1018,"image":1019,"thumbnailUrl":1003,"articleSection":1021,"inLanguage":387,"potentialAction":1022},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fbuild-google-data-studio-community-connector\u002F#article",{"@id":990},{"name":4,"@id":378},{"@id":990},{"@id":382},{"@id":1020},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fbuild-google-data-studio-community-connector\u002F#primaryimage",[178,167,147],[1023],{"@type":390,"name":391,"target":1024},[1025],"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fbuild-google-data-studio-community-connector\u002F#respond",{"@type":395,"@id":990,"url":990,"name":932,"isPartOf":1027,"primaryImageOfPage":1028,"image":1029,"thumbnailUrl":1003,"datePublished":999,"dateModified":1001,"description":933,"breadcrumb":1030,"inLanguage":402},{"@id":397},{"@id":1020},{"@id":1020},{"@id":1031},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fbuild-google-data-studio-community-connector\u002F#breadcrumb",{"@type":404,"inLanguage":387,"@id":1020,"url":1003,"contentUrl":1003},{"@type":406,"@id":1031,"itemListElement":1034},[1035,1036,1037,1039],{"@type":409,"position":232,"name":204,"item":410},{"@type":409,"position":152,"name":257,"item":412},{"@type":409,"position":191,"name":178,"item":1038},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fcategory\u002Fdigital-marketing\u002F",{"@type":409,"position":416,"name":169},{"@type":418,"@id":397,"url":410,"name":339,"description":5,"publisher":1041,"inLanguage":387,"potentialAction":1042},{"@id":420},{"@type":422,"target":1043,"query-input":426},{"@type":424,"urlTemplate":425},{"@type":428,"@id":420,"name":339,"url":410,"logo":1045,"image":434,"sameAs":1046,"@context":439,"email":440,"foundingDate":441,"legalName":442,"vatID":443,"description":444,"telephone":445,"address":1047,"location":1048,"areaServed":1058},{"@type":404,"inLanguage":387,"@id":430,"url":431,"contentUrl":431,"width":432,"height":433,"caption":339},[436,437,438],{"@type":447,"streetAddress":448,"addressLocality":449,"addressRegion":450,"postalCode":451,"addressCountry":452},[1049,1052,1055],{"@type":455,"name":456,"geo":1050,"address":1051,"photo":434,"telephone":462},{"@type":458,"latitude":459,"longitude":460},{"@type":447,"streetAddress":448,"addressLocality":449,"addressRegion":450,"postalCode":451,"addressCountry":452},{"@type":455,"name":464,"geo":1053,"address":1054,"photo":473,"telephone":474},{"@type":458,"latitude":466,"longitude":467},{"@type":447,"streetAddress":469,"addressLocality":470,"addressRegion":471,"postalCode":472,"addressCountry":452},{"@type":455,"name":476,"geo":1056,"address":1057},{"@type":458,"latitude":478,"longitude":479},{"@type":447,"streetAddress":481,"addressLocality":482,"addressRegion":483,"postalCode":484,"addressCountry":485},[1059,1060,1061],{"@type":488,"name":489},{"@type":488,"name":491},{"@type":488,"name":485},{"@type":494,"@id":495,"name":4,"image":1063,"description":6,"sameAs":1064,"url":219},{"@type":404,"inLanguage":387,"@id":497,"url":8,"contentUrl":8,"caption":4},[215,499],{"self":1066,"collection":1071,"about":1073,"author":1075,"replies":1077,"version-history":1080,"predecessor-version":1083,"wp:attachment":1087,"wp:term":1090,"curies":1097},[1067],{"href":1068,"targetHints":1069},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fposts\u002F3396",{"allow":1070},[506,507,508,509,510],[1072],{"href":513},[1074],{"href":516},[1076],{"embeddable":130,"href":519},[1078],{"embeddable":130,"href":1079},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fcomments?post=3396",[1081],{"count":232,"href":1082},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fposts\u002F3396\u002Frevisions",[1084],{"id":1085,"href":1086},14913,"\u002Fwp-json\u002Fwp\u002Fv2\u002Fposts\u002F3396\u002Frevisions\u002F14913",[1088],{"href":1089},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fmedia?parent=3396",[1091,1093,1095],{"taxonomy":538,"embeddable":130,"href":1092},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fcategories?post=3396",{"taxonomy":541,"embeddable":130,"href":1094},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fcollections?post=3396",{"taxonomy":198,"embeddable":130,"href":1096},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fcoauthors?post=3396",[1098],{"name":547,"href":548,"templated":130},{"id":1100,"date":1101,"date_gmt":1101,"guid":1102,"modified":172,"modified_gmt":172,"slug":1104,"status":19,"type":135,"link":182,"title":1105,"content":1106,"excerpt":1108,"author":232,"featured_media":25,"comment_status":234,"ping_status":234,"sticky":230,"template":5,"format":235,"meta":1109,"categories":1110,"collections":1111,"coauthors":1112,"class_list":1113,"acf":1115,"head_links":1116,"breadcrumbs":1117,"url_path":182,"search_description":1122,"featured_image_urls":1123,"authors":1140,"type_nicename":312,"reading_minutes":152,"category":1156,"yoast_title":1158,"yoast_meta":1159,"yoast_json_ld":1183,"_links":1237},3394,"2017-10-22T10:39:24",{"rendered":1103},"https:\u002F\u002Fimpression.test\u002Fblog\u002Fadwords-parallel-tracking\u002F","adwords-parallel-tracking",{"rendered":180},{"rendered":1107,"protected":230},"\u003Cp>AdWords now allows advertisers to deliver an up-to-20% faster click through experience from search results with new technology which removes the link tracking service to run in parallel to the advertiser&#8217;s page load.\u003C\u002Fp>\n\u003Cp>Most link tracking software works by redirecting users via a server which quickly forwards users on to the destination, only leaving behind a slight footprint of the visit. The data included in this footprint is enough to determine where the user came from and where they were going, plus any other data that was encoded in the URL.\u003C\u002Fp>\n\u003Cp>Google&#8217;s new technology and process means that this intermediate redirection step is no longer required and as such the time the process takes is saved. The actual time saved may amount to near a hundred milliseconds in some cases, but you&#8217;ll see how important this is below.\u003C\u002Fp>\n\u003Cp>\u003Cfigure style=\"width: 446px\" class=\"wp-caption aligncenter\">\u003Cimg loading=\"lazy\" decoding=\"async\" class=\"wp-image-3395 size-full\" src=\"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F05\u002FW5svaLsS-AdWords-Parallel-Tracking.gif\" alt=\"\" width=\"446\" height=\"282\" \u002F>\u003Cfigcaption class=\"wp-caption-text\">Google&#8217;s new parallel loading technology in action. Source: https:\u002F\u002Fadwords.googleblog.com\u002F2017\u002F10\u002Fget-visitors-to-your-landing-page.html\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003C\u002Fp>\n\u003Ch2 id=\"the-importance-of-speed\">The importance of speed\u003C\u002Fh2>\n\u003Cp>It&#8217;s a well known fact that users expect near-instant page loads when browsing &#8211; and even more so when they&#8217;re using a mobile phone to do this.\u003C\u002Fp>\n\u003Cp>A decade ago, in 2009 (before the rise of the mobile shopper, etc), \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fwww.akamai.com\u002Fus\u002Fen\u002Fabout\u002Fnews\u002Fpress\u002F2009-press\u002Fakamai-reveals-2-seconds-as-the-new-threshold-of-acceptability-for-ecommerce-web-page-response-times.jsp\">Akamai ran a report\u003C\u002Fa> that surfaced some ever-important results;\u003C\u002Fp>\n\u003Cul>\n\u003Cli>47% of people expect a web page to load in two seconds or less.\u003C\u002Fli>\n\u003Cli>40% will abandon a web page if it takes more than three seconds to load.\u003C\u002Fli>\n\u003Cli>52% of online shoppers claim that quick page loads are important for their loyalty to a site.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Needless to say with 3G and 4G connection speeds, the rise of iPhone\u002FAndroid and all-round improvements in home and office broadband, consumer expectations have shifted even further. That&#8217;s why shaving off those 100 milliseconds is important.\u003C\u002Fp>\n\u003Ch2 id=\"get-started-with-parallel-tracking-today\">Get started with parallel tracking today\u003C\u002Fh2>\n\u003Cp>If you are a current AdWords advertiser, you may not be able to access this feature immediately, as there are a few prerequisite steps;\u003C\u002Fp>\n\u003Cul>\n\u003Cli>If you aggregate your ad management into a platform, then be sure that parallel tracking is supported at this time,\u003C\u002Fli>\n\u003Cli>Ensure that in AdWords you include a final URL tag, like {lpurl}, to ensure visitors are not double counted,\u003C\u002Fli>\n\u003Cli>Ensure you are using a secure landing page operating under the \u003Ca rel=\"noreferrer noopener\" href=\"\u002Fblog\u002Fgoogle-introduce-https-ssl-ranking-factor\u002F\">HTTPS protocol (there are other benefits to this too)\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>If you&#8217;re ready to get started, then you can find these settings in AdWords under Settings &gt; Account Settings &gt; Tracking.\u003C\u002Fp>\n\u003Cp>Read more about this on the \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fadwords.googleblog.com\u002F2017\u002F10\u002Fget-visitors-to-your-landing-page.html\">Google Blog\u003C\u002Fa> and \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fsupport.google.com\u002Fadwords\u002Fanswer\u002F7544674\">Help pages\u003C\u002Fa>.\u003C\u002Fp>\n",{"rendered":181,"protected":230},{"_yoast_wpseo_focuskw":5,"_yoast_wpseo_title":5,"_yoast_wpseo_metadesc":5,"inline_featured_image":230,"footnotes":5},[736],[],[15],[1114,135,245,246,247,249,741],"post-3394",[],[],[1118,1119,1120,1121],{"path":203,"name":204},{"path":256,"name":257},{"path":166,"name":167},{"path":212,"name":180},"AdWords now allows advertisers to deliver an up-to-20% faster click through experience from search results with new technology which removes the link tracking service to run in parallel to the advertiser&#8217;s page load. Most link tracking software works by redirecting users via a server which quickly forwards users on to the destination, only leaving behind [&hellip;]",{"thumbnail":1124,"medium":1125,"medium_large":1126,"large":1127,"1536x1536":1128,"2048x2048":1129,"post-thumbnail":1130,"12_col":1131,"default_landscape":1132,"default_portrait":1133,"6_col_and_margin_short":1134,"11_col_and_margin":1135,"9_col_rectangle":1136,"11_col":1137,"staff_image_696_600":1138,"rectangular_thumbnail":1139},{"url":230,"width":262,"height":262},{"url":230,"width":92,"height":92},{"url":230,"width":95,"height":25},{"url":230,"width":269,"height":270},{"url":230,"width":101,"height":101},{"url":230,"width":104,"height":104},{"url":230,"width":107,"height":108},{"url":230,"width":110,"height":111},{"url":230,"width":113,"height":87},{"url":230,"width":87,"height":113},{"url":230,"width":107,"height":111},{"url":230,"width":117,"height":111},{"url":230,"width":119,"height":120},{"url":230,"width":122,"height":111},{"url":230,"width":86,"height":87},{"url":230,"width":125,"height":126},[1141],{"id":232,"path":297,"display_name":4,"job_title":10,"description":6,"avatar_url":144,"acf":1142},{"job_title":10,"full_bio":11,"specialist_service_links":1143,"photo":1154},[1144,1146,1148,1150,1152],{"page":1145,"link_text":18},{"ID":15,"post_author":16,"post_date":17,"post_date_gmt":17,"post_content":5,"post_title":18,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":21,"to_ping":5,"pinged":5,"post_modified":22,"post_modified_gmt":22,"post_content_filtered":5,"post_parent":23,"guid":24,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":29},{"page":1147,"link_text":41},{"ID":32,"post_author":33,"post_date":34,"post_date_gmt":34,"post_content":5,"post_title":35,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":36,"to_ping":5,"pinged":5,"post_modified":37,"post_modified_gmt":37,"post_content_filtered":5,"post_parent":38,"guid":39,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":40},{"page":1149,"link_text":46},{"ID":44,"post_author":16,"post_date":45,"post_date_gmt":45,"post_content":5,"post_title":46,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":47,"to_ping":5,"pinged":5,"post_modified":48,"post_modified_gmt":48,"post_content_filtered":5,"post_parent":49,"guid":50,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":51},{"page":1151,"link_text":61},{"ID":54,"post_author":16,"post_date":55,"post_date_gmt":55,"post_content":5,"post_title":56,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":57,"to_ping":5,"pinged":5,"post_modified":58,"post_modified_gmt":58,"post_content_filtered":5,"post_parent":25,"guid":59,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":60},{"page":1153,"link_text":66},{"ID":64,"post_author":16,"post_date":65,"post_date_gmt":65,"post_content":5,"post_title":66,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":67,"to_ping":5,"pinged":5,"post_modified":68,"post_modified_gmt":68,"post_content_filtered":5,"post_parent":25,"guid":69,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":70},{"ID":72,"id":72,"title":73,"filename":74,"filesize":75,"url":76,"link":77,"alt":5,"author":78,"description":5,"caption":5,"name":79,"status":80,"uploaded_to":25,"date":81,"modified":81,"menu_order":25,"mime_type":82,"type":83,"subtype":84,"icon":85,"width":86,"height":87,"sizes":1155},{"thumbnail":89,"thumbnail-width":90,"thumbnail-height":90,"medium":91,"medium-width":92,"medium-height":93,"medium_large":94,"medium_large-width":95,"medium_large-height":96,"large":97,"large-width":98,"large-height":99,"1536x1536":100,"1536x1536-width":101,"1536x1536-height":102,"2048x2048":103,"2048x2048-width":104,"2048x2048-height":105,"post-thumbnail":106,"post-thumbnail-width":107,"post-thumbnail-height":108,"12_col":109,"12_col-width":110,"12_col-height":111,"default_landscape":112,"default_landscape-width":113,"default_landscape-height":87,"default_portrait":114,"default_portrait-width":87,"default_portrait-height":113,"6_col_and_margin_short":115,"6_col_and_margin_short-width":107,"6_col_and_margin_short-height":111,"11_col_and_margin":116,"11_col_and_margin-width":117,"11_col_and_margin-height":111,"9_col_rectangle":118,"9_col_rectangle-width":119,"9_col_rectangle-height":120,"11_col":121,"11_col-width":122,"11_col-height":111,"staff_image_696_600":123,"staff_image_696_600-width":86,"staff_image_696_600-height":87,"rectangular_thumbnail":124,"rectangular_thumbnail-width":125,"rectangular_thumbnail-height":126},[1157],{"id":736,"name":167,"path":166},"AdWords Parallel Tracking — another site speed triumph - Impression",[1160,1161,1162,1164,1165,1166,1167,1168,1169,1170,1171,1173,1174,1176,1177,1178,1179,1180,1181,1182],{"property":317,"content":1158},{"name":321,"content":322},{"property":218,"content":1163},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fadwords-parallel-tracking\u002F",{"name":326,"content":327},{"property":329,"content":330},{"property":332,"content":1158},{"property":334,"content":1122},{"property":336,"content":1163},{"property":338,"content":339},{"property":341,"content":342},{"property":344,"content":1172},"2017-10-22T10:39:24+00:00",{"property":347,"content":1001},{"property":350,"content":1175},"https:\u002F\u002Fcdn.impression.co.uk\u002F2021\u002F05\u002FAdWords-Parallel-Tracking.gif",{"property":359,"content":5},{"property":353,"content":5},{"property":356,"content":5},{"property":198,"content":4},{"property":363,"content":364},{"property":366,"content":367},{"property":369,"content":370},{"@context":372,"@graph":1184},[1185,1199,1205,1206,1212,1216,1234],{"@type":312,"@id":1186,"isPartOf":1187,"author":1188,"headline":180,"datePublished":1172,"dateModified":1001,"mainEntityOfPage":1189,"wordCount":1190,"commentCount":25,"publisher":1191,"image":1192,"thumbnailUrl":1175,"articleSection":1194,"inLanguage":387,"potentialAction":1195},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fadwords-parallel-tracking\u002F#article",{"@id":1163},{"name":4,"@id":378},{"@id":1163},424,{"@id":382},{"@id":1193},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fadwords-parallel-tracking\u002F#primaryimage",[167],[1196],{"@type":390,"name":391,"target":1197},[1198],"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fadwords-parallel-tracking\u002F#respond",{"@type":395,"@id":1163,"url":1163,"name":1158,"isPartOf":1200,"primaryImageOfPage":1201,"image":1202,"thumbnailUrl":1175,"datePublished":1172,"dateModified":1001,"breadcrumb":1203,"inLanguage":402},{"@id":397},{"@id":1193},{"@id":1193},{"@id":1204},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fadwords-parallel-tracking\u002F#breadcrumb",{"@type":404,"inLanguage":387,"@id":1193,"url":1175,"contentUrl":1175},{"@type":406,"@id":1204,"itemListElement":1207},[1208,1209,1210,1211],{"@type":409,"position":232,"name":204,"item":410},{"@type":409,"position":152,"name":257,"item":412},{"@type":409,"position":191,"name":167,"item":857},{"@type":409,"position":416,"name":180},{"@type":418,"@id":397,"url":410,"name":339,"description":5,"publisher":1213,"inLanguage":387,"potentialAction":1214},{"@id":420},{"@type":422,"target":1215,"query-input":426},{"@type":424,"urlTemplate":425},{"@type":428,"@id":420,"name":339,"url":410,"logo":1217,"image":434,"sameAs":1218,"@context":439,"email":440,"foundingDate":441,"legalName":442,"vatID":443,"description":444,"telephone":445,"address":1219,"location":1220,"areaServed":1230},{"@type":404,"inLanguage":387,"@id":430,"url":431,"contentUrl":431,"width":432,"height":433,"caption":339},[436,437,438],{"@type":447,"streetAddress":448,"addressLocality":449,"addressRegion":450,"postalCode":451,"addressCountry":452},[1221,1224,1227],{"@type":455,"name":456,"geo":1222,"address":1223,"photo":434,"telephone":462},{"@type":458,"latitude":459,"longitude":460},{"@type":447,"streetAddress":448,"addressLocality":449,"addressRegion":450,"postalCode":451,"addressCountry":452},{"@type":455,"name":464,"geo":1225,"address":1226,"photo":473,"telephone":474},{"@type":458,"latitude":466,"longitude":467},{"@type":447,"streetAddress":469,"addressLocality":470,"addressRegion":471,"postalCode":472,"addressCountry":452},{"@type":455,"name":476,"geo":1228,"address":1229},{"@type":458,"latitude":478,"longitude":479},{"@type":447,"streetAddress":481,"addressLocality":482,"addressRegion":483,"postalCode":484,"addressCountry":485},[1231,1232,1233],{"@type":488,"name":489},{"@type":488,"name":491},{"@type":488,"name":485},{"@type":494,"@id":495,"name":4,"image":1235,"description":6,"sameAs":1236,"url":219},{"@type":404,"inLanguage":387,"@id":497,"url":8,"contentUrl":8,"caption":4},[215,499],{"self":1238,"collection":1243,"about":1245,"author":1247,"replies":1249,"version-history":1252,"predecessor-version":1255,"wp:attachment":1259,"wp:term":1262,"curies":1269},[1239],{"href":1240,"targetHints":1241},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fposts\u002F3394",{"allow":1242},[506,507,508,509,510],[1244],{"href":513},[1246],{"href":516},[1248],{"embeddable":130,"href":519},[1250],{"embeddable":130,"href":1251},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fcomments?post=3394",[1253],{"count":152,"href":1254},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fposts\u002F3394\u002Frevisions",[1256],{"id":1257,"href":1258},15576,"\u002Fwp-json\u002Fwp\u002Fv2\u002Fposts\u002F3394\u002Frevisions\u002F15576",[1260],{"href":1261},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fmedia?parent=3394",[1263,1265,1267],{"taxonomy":538,"embeddable":130,"href":1264},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fcategories?post=3394",{"taxonomy":541,"embeddable":130,"href":1266},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fcollections?post=3394",{"taxonomy":198,"embeddable":130,"href":1268},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fcoauthors?post=3394",[1270],{"name":547,"href":548,"templated":130},{"id":1272,"date":1273,"date_gmt":1273,"guid":1274,"modified":190,"modified_gmt":190,"slug":1276,"status":19,"type":135,"link":189,"title":1277,"content":1278,"excerpt":1280,"author":232,"featured_media":1281,"comment_status":234,"ping_status":234,"sticky":230,"template":5,"format":235,"meta":1282,"categories":1284,"collections":1285,"coauthors":1286,"class_list":1287,"acf":1289,"head_links":1290,"breadcrumbs":1291,"url_path":189,"search_description":1296,"featured_image_urls":1297,"authors":1329,"type_nicename":312,"reading_minutes":191,"category":1345,"yoast_title":1283,"yoast_meta":1347,"yoast_json_ld":1373,"_links":1428},3266,"2017-08-29T09:00:09",{"rendered":1275},"https:\u002F\u002Fimpression.test\u002Fblog\u002Fgoogle-analytics-new-gtag-js\u002F","google-analytics-new-gtag-js",{"rendered":187},{"rendered":1279,"protected":230},"\n\u003Cp>Recently Google Analytics has quietly released into Beta a new unified site tracking tag called \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fdevelopers.google.com\u002Fanalytics\u002Fdevguides\u002Fcollection\u002Fgtagjs\u002F\">gtag.js\u003C\u002Fa>.\u003C\u002Fp>\n\n\n\n\u003Cp class=\"has-background\" style=\"background-color:#23b09b;color: white;font-family: 'Red Hat Display'; id=\" updated-post\"=\"\">\u003Cstrong>NOTE: If you&#8217;re currently using Google Optimize, or other additional Google tags, consider using Google Tag Manager instead of the new gtag implementation. As of October 2017, gtag is less powerful than analytics.js in terms of allowing for additional plugins to be used in Google Analytics.\u003C\u002Fstrong>\u003C\u002Fp>\n\n\n\n\u003Cp>This isn&#8217;t an upgrade like we&#8217;ve seen before &#8211; from Urchin to Classic Analytics and Classic Analytics to Universal Analytics. In fact, it&#8217;s clear from the \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fwww.googletagmanager.com\u002Ft\u002Fgtag.js\">tag code\u003C\u002Fa> that the script is interfacing with Universal Analytics anyway.\u003C\u002Fp>\n\n\n\n\u003Cp>What this new release is clearly hoping to achieve is a unified tagging method that can, in time, combine tag requirements for Analytics, Content Experiments (most will now be using Google Optimize) and also conversion.js.\u003C\u002Fp>\n\n\n\n\u003Cp>Its code footprint is a lot smaller than analytics.js &#8211; and many default settings are rolled in. For example, gtag.js \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fdevelopers.google.com\u002Fanalytics\u002Fdevguides\u002Fcollection\u002Fgtagjs\u002Fpages\">automatically sends pageviews to Google Analytics\u003C\u002Fa> unless you override this &#8211; something which required an additional line of code in previous tag versions.\u003C\u002Fp>\n\n\n\n\u003Ch2 class=\"wp-block-heading\" id=\"should-you-migrate-to-gtag-js\">Should you migrate to gtag.js?\u003C\u002Fh2>\n\n\n\n\u003Cp>The new Global Site Tag is currently in Beta and as such isn&#8217;t covered by an SLA. Also, being in Beta means that there&#8217;s a slight chance of future changes, too, so we&#8217;d recommend holding on this right now.\u003C\u002Fp>\n\n\n\n\u003Cp>If you are still using native analytics.js direct in your application then perhaps instead right now you might want to begin a Google Tag Manager implementation as the dataLayer principle is clearly being brought forward into gtag.js anyway. This would ensure that your tag migration planning is moving in the right direction to access new features as they&#8217;re being released, plus would no doubt lead to a much needed tagging cleanup project anyway.\u003C\u002Fp>\n\n\n\n\u003Ch2 class=\"wp-block-heading\" id=\"new-recommended-events-in-gtag-js\">New: Recommended events in gtag.js\u003C\u002Fh2>\n\n\n\n\u003Cp>I&#8217;ve found the new event tracking methods the most interesting change between analytics.js and gtag.js. For one, the new syntax more closely resembles a dataLayer push event, but also, there is now a list of \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fdevelopers.google.com\u002Fanalytics\u002Fdevguides\u002Fcollection\u002Fgtagjs\u002Fevents#recommended-event-parameters\">recommended events\u003C\u002Fa> which can be fired which coincide nicely with Analytics&#8217; Goal setup menu.\u003C\u002Fp>\n\n\n\n\u003Cdiv class=\"wp-block-image\">\u003Cfigure class=\"aligncenter is-resized\">\u003Cimg loading=\"lazy\" decoding=\"async\" src=\"https:\u002F\u002Fcdn.impression.co.uk\u002F2021\u002F05\u002Fgoogle-analytics-goal-types.png\" alt=\"\" class=\"wp-image-7590\" width=\"456\" height=\"401\"\u002F>\u003C\u002Ffigure>\u003C\u002Fdiv>\n\n\n\n\u003Cp>These recommended events now include transactions, lead generations, form fills, logins, shares, and a variety of \u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fdevelopers.google.com\u002Fanalytics\u002Fdevguides\u002Fcollection\u002Fgtagjs\u002Fenhanced-ecommerce\">enhanced ecommerce events\u003C\u002Fa> we&#8217;re already used to (add to cart, add to wishlist, add payment info, checkout process begin, etc).\u003C\u002Fp>\n\n\n\n\u003Ch2 class=\"wp-block-heading\" id=\"google-tag-manager-and-or-global-site-tag\">Google Tag Manager and\u002For Global Site Tag?\u003C\u002Fh2>\n\n\n\n\u003Cp>If you&#8217;re already using Google Tag Manager then a migration right now is not necessary. The new Global Site Tag will not replace Google Tag Manager (GTM), as the purposes here are very different. A Tag Manager suite, like GTM gives separation of concerns from site code and tag management &#8211; and adds in tag governance and the ability to trigger additional external tags outside of the Google ecosystem at the same time.\u003C\u002Fp>\n\n\n\n\u003Cp>As Global Site Tag interfaces with the dataLayer and, via proxy, the full Google Analytics suite anyway, no additional benefits will be gained by supporting a gtag.js installation alongside GTM \u003Cem>(correct as of August 2017)\u003C\u002Fem>.\u003C\u002Fp>\n\n\n\n\u003Cp>If you are currently not using GTM and have no requirement for tighter control over tag management, then now is a good time to begin planning your migration to the new gtag.js, as it will no doubt soon be out of Beta.\u003C\u002Fp>\n\n\n\n\u003Cp>If you&#8217;ve any questions about this new tag, let me know in the comments below!\u003C\u002Fp>\n",{"rendered":188,"protected":230},8230,{"_yoast_wpseo_focuskw":5,"_yoast_wpseo_title":1283,"_yoast_wpseo_metadesc":5,"inline_featured_image":230,"footnotes":5},"Google Analytics releases Global Site Tag - gtag.js | Impression",[736],[],[15],[1288,135,245,246,247,248,249,741],"post-3266",[],[],[1292,1293,1294,1295],{"path":203,"name":204},{"path":256,"name":257},{"path":166,"name":167},{"path":212,"name":187},"Recently Google Analytics has quietly released into Beta a new unified site tracking tag called gtag.js.",{"thumbnail":1298,"medium":1299,"medium_large":1301,"large":1303,"1536x1536":1305,"2048x2048":1307,"post-thumbnail":1309,"12_col":1311,"default_landscape":1313,"default_portrait":1315,"6_col_and_margin_short":1317,"11_col_and_margin":1319,"9_col_rectangle":1321,"11_col":1323,"staff_image_696_600":1325,"rectangular_thumbnail":1327},{"url":192,"width":262,"height":262},{"url":1300,"width":92,"height":92},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002F7GPumx1x-050720211625523465_google-analytics-gtagjs-scaled.jpg?auto=compress%2Cformat&fit=scale&h=133&q=90&w=200",{"url":1302,"width":95,"height":25},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002F7GPumx1x-050720211625523465_google-analytics-gtagjs-scaled.jpg?auto=compress%2Cformat&fit=scale&h=512&q=90&w=768",{"url":1304,"width":269,"height":270},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002F7GPumx1x-050720211625523465_google-analytics-gtagjs-scaled.jpg?auto=compress%2Cformat&fit=crop&h=1000&q=90&w=1892",{"url":1306,"width":101,"height":101},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002F7GPumx1x-050720211625523465_google-analytics-gtagjs-scaled.jpg?auto=compress%2Cformat&fit=scale&h=1024&q=90&w=1536",{"url":1308,"width":104,"height":104},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002F7GPumx1x-050720211625523465_google-analytics-gtagjs-scaled.jpg?auto=compress%2Cformat&fit=scale&h=1366&q=90&w=2048",{"url":1310,"width":107,"height":108},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002F7GPumx1x-050720211625523465_google-analytics-gtagjs-scaled.jpg?auto=compress%2Cformat&fit=crop&h=1180&q=90&w=1860",{"url":1312,"width":110,"height":111},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002F7GPumx1x-050720211625523465_google-analytics-gtagjs-scaled.jpg?auto=compress%2Cformat&fit=crop&h=870&q=90&w=2880",{"url":1314,"width":113,"height":87},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002F7GPumx1x-050720211625523465_google-analytics-gtagjs-scaled.jpg?auto=compress%2Cformat&fit=crop&h=600&q=90&w=800",{"url":1316,"width":87,"height":113},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002F7GPumx1x-050720211625523465_google-analytics-gtagjs-scaled.jpg?auto=compress%2Cformat&fit=crop&h=800&q=90&w=600",{"url":1318,"width":107,"height":111},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002F7GPumx1x-050720211625523465_google-analytics-gtagjs-scaled.jpg?auto=compress%2Cformat&fit=crop&h=870&q=90&w=1860",{"url":1320,"width":117,"height":111},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002F7GPumx1x-050720211625523465_google-analytics-gtagjs-scaled.jpg?auto=compress%2Cformat&fit=crop&h=870&q=90&w=3080",{"url":1322,"width":119,"height":120},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002F7GPumx1x-050720211625523465_google-analytics-gtagjs-scaled.jpg?auto=compress%2Cformat&fit=crop&h=1400&q=90&w=2150",{"url":1324,"width":122,"height":111},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002F7GPumx1x-050720211625523465_google-analytics-gtagjs-scaled.jpg?auto=compress%2Cformat&fit=crop&h=870&q=90&w=2640",{"url":1326,"width":86,"height":87},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002F7GPumx1x-050720211625523465_google-analytics-gtagjs-scaled.jpg?auto=compress%2Cformat&fit=crop&h=600&q=90&w=696",{"url":1328,"width":125,"height":126},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002F7GPumx1x-050720211625523465_google-analytics-gtagjs-scaled.jpg?auto=compress%2Cformat&fit=crop&h=300&q=90&w=750",[1330],{"id":232,"path":297,"display_name":4,"job_title":10,"description":6,"avatar_url":144,"acf":1331},{"job_title":10,"full_bio":11,"specialist_service_links":1332,"photo":1343},[1333,1335,1337,1339,1341],{"page":1334,"link_text":18},{"ID":15,"post_author":16,"post_date":17,"post_date_gmt":17,"post_content":5,"post_title":18,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":21,"to_ping":5,"pinged":5,"post_modified":22,"post_modified_gmt":22,"post_content_filtered":5,"post_parent":23,"guid":24,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":29},{"page":1336,"link_text":41},{"ID":32,"post_author":33,"post_date":34,"post_date_gmt":34,"post_content":5,"post_title":35,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":36,"to_ping":5,"pinged":5,"post_modified":37,"post_modified_gmt":37,"post_content_filtered":5,"post_parent":38,"guid":39,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":40},{"page":1338,"link_text":46},{"ID":44,"post_author":16,"post_date":45,"post_date_gmt":45,"post_content":5,"post_title":46,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":47,"to_ping":5,"pinged":5,"post_modified":48,"post_modified_gmt":48,"post_content_filtered":5,"post_parent":49,"guid":50,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":51},{"page":1340,"link_text":61},{"ID":54,"post_author":16,"post_date":55,"post_date_gmt":55,"post_content":5,"post_title":56,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":57,"to_ping":5,"pinged":5,"post_modified":58,"post_modified_gmt":58,"post_content_filtered":5,"post_parent":25,"guid":59,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":60},{"page":1342,"link_text":66},{"ID":64,"post_author":16,"post_date":65,"post_date_gmt":65,"post_content":5,"post_title":66,"post_excerpt":5,"post_status":19,"comment_status":20,"ping_status":20,"post_password":5,"post_name":67,"to_ping":5,"pinged":5,"post_modified":68,"post_modified_gmt":68,"post_content_filtered":5,"post_parent":25,"guid":69,"menu_order":25,"post_type":26,"post_mime_type":5,"comment_count":27,"filter":28,"url_path":70},{"ID":72,"id":72,"title":73,"filename":74,"filesize":75,"url":76,"link":77,"alt":5,"author":78,"description":5,"caption":5,"name":79,"status":80,"uploaded_to":25,"date":81,"modified":81,"menu_order":25,"mime_type":82,"type":83,"subtype":84,"icon":85,"width":86,"height":87,"sizes":1344},{"thumbnail":89,"thumbnail-width":90,"thumbnail-height":90,"medium":91,"medium-width":92,"medium-height":93,"medium_large":94,"medium_large-width":95,"medium_large-height":96,"large":97,"large-width":98,"large-height":99,"1536x1536":100,"1536x1536-width":101,"1536x1536-height":102,"2048x2048":103,"2048x2048-width":104,"2048x2048-height":105,"post-thumbnail":106,"post-thumbnail-width":107,"post-thumbnail-height":108,"12_col":109,"12_col-width":110,"12_col-height":111,"default_landscape":112,"default_landscape-width":113,"default_landscape-height":87,"default_portrait":114,"default_portrait-width":87,"default_portrait-height":113,"6_col_and_margin_short":115,"6_col_and_margin_short-width":107,"6_col_and_margin_short-height":111,"11_col_and_margin":116,"11_col_and_margin-width":117,"11_col_and_margin-height":111,"9_col_rectangle":118,"9_col_rectangle-width":119,"9_col_rectangle-height":120,"11_col":121,"11_col-width":122,"11_col-height":111,"staff_image_696_600":123,"staff_image_696_600-width":86,"staff_image_696_600-height":87,"rectangular_thumbnail":124,"rectangular_thumbnail-width":125,"rectangular_thumbnail-height":126},[1346],{"id":736,"name":167,"path":166},[1348,1349,1350,1352,1353,1354,1355,1356,1357,1358,1359,1361,1363,1365,1366,1368,1369,1370,1371,1372],{"property":317,"content":1283},{"name":321,"content":322},{"property":218,"content":1351},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fgoogle-analytics-new-gtag-js\u002F",{"name":326,"content":327},{"property":329,"content":330},{"property":332,"content":1283},{"property":334,"content":1296},{"property":336,"content":1351},{"property":338,"content":339},{"property":341,"content":342},{"property":344,"content":1360},"2017-08-29T09:00:09+00:00",{"property":347,"content":1362},"2022-02-07T16:48:36+00:00",{"property":350,"content":1364},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002F7GPumx1x-050720211625523465_google-analytics-gtagjs-scaled.jpg?auto=compress%2Cformat",{"property":353,"content":354},{"property":356,"content":1367},1707,{"property":359,"content":360},{"property":198,"content":4},{"property":363,"content":364},{"property":366,"content":367},{"property":369,"content":370},{"@context":372,"@graph":1374},[1375,1390,1396,1397,1403,1407,1425],{"@type":312,"@id":1376,"isPartOf":1377,"author":1378,"headline":187,"datePublished":1360,"dateModified":1362,"mainEntityOfPage":1379,"wordCount":1380,"commentCount":25,"publisher":1381,"image":1382,"thumbnailUrl":1384,"articleSection":1385,"inLanguage":387,"potentialAction":1386},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fgoogle-analytics-new-gtag-js\u002F#article",{"@id":1351},{"name":4,"@id":378},{"@id":1351},28,{"@id":382},{"@id":1383},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fgoogle-analytics-new-gtag-js\u002F#primaryimage","https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F07\u002F7GPumx1x-050720211625523465_google-analytics-gtagjs-scaled.jpg?auto=compress%2Cformat&q=90",[167],[1387],{"@type":390,"name":391,"target":1388},[1389],"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fgoogle-analytics-new-gtag-js\u002F#respond",{"@type":395,"@id":1351,"url":1351,"name":1283,"isPartOf":1391,"primaryImageOfPage":1392,"image":1393,"thumbnailUrl":1384,"datePublished":1360,"dateModified":1362,"breadcrumb":1394,"inLanguage":402},{"@id":397},{"@id":1383},{"@id":1383},{"@id":1395},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fgoogle-analytics-new-gtag-js\u002F#breadcrumb",{"@type":404,"inLanguage":387,"@id":1383,"url":1384,"contentUrl":1384,"width":354,"height":1367},{"@type":406,"@id":1395,"itemListElement":1398},[1399,1400,1401,1402],{"@type":409,"position":232,"name":204,"item":410},{"@type":409,"position":152,"name":257,"item":412},{"@type":409,"position":191,"name":167,"item":857},{"@type":409,"position":416,"name":187},{"@type":418,"@id":397,"url":410,"name":339,"description":5,"publisher":1404,"inLanguage":387,"potentialAction":1405},{"@id":420},{"@type":422,"target":1406,"query-input":426},{"@type":424,"urlTemplate":425},{"@type":428,"@id":420,"name":339,"url":410,"logo":1408,"image":434,"sameAs":1409,"@context":439,"email":440,"foundingDate":441,"legalName":442,"vatID":443,"description":444,"telephone":445,"address":1410,"location":1411,"areaServed":1421},{"@type":404,"inLanguage":387,"@id":430,"url":431,"contentUrl":431,"width":432,"height":433,"caption":339},[436,437,438],{"@type":447,"streetAddress":448,"addressLocality":449,"addressRegion":450,"postalCode":451,"addressCountry":452},[1412,1415,1418],{"@type":455,"name":456,"geo":1413,"address":1414,"photo":434,"telephone":462},{"@type":458,"latitude":459,"longitude":460},{"@type":447,"streetAddress":448,"addressLocality":449,"addressRegion":450,"postalCode":451,"addressCountry":452},{"@type":455,"name":464,"geo":1416,"address":1417,"photo":473,"telephone":474},{"@type":458,"latitude":466,"longitude":467},{"@type":447,"streetAddress":469,"addressLocality":470,"addressRegion":471,"postalCode":472,"addressCountry":452},{"@type":455,"name":476,"geo":1419,"address":1420},{"@type":458,"latitude":478,"longitude":479},{"@type":447,"streetAddress":481,"addressLocality":482,"addressRegion":483,"postalCode":484,"addressCountry":485},[1422,1423,1424],{"@type":488,"name":489},{"@type":488,"name":491},{"@type":488,"name":485},{"@type":494,"@id":495,"name":4,"image":1426,"description":6,"sameAs":1427,"url":219},{"@type":404,"inLanguage":387,"@id":497,"url":8,"contentUrl":8,"caption":4},[215,499],{"self":1429,"collection":1434,"about":1436,"author":1438,"replies":1440,"version-history":1443,"predecessor-version":1446,"wp:featuredmedia":1450,"wp:attachment":1453,"wp:term":1456,"curies":1463},[1430],{"href":1431,"targetHints":1432},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fposts\u002F3266",{"allow":1433},[506,507,508,509,510],[1435],{"href":513},[1437],{"href":516},[1439],{"embeddable":130,"href":519},[1441],{"embeddable":130,"href":1442},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fcomments?post=3266",[1444],{"count":152,"href":1445},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fposts\u002F3266\u002Frevisions",[1447],{"id":1448,"href":1449},13611,"\u002Fwp-json\u002Fwp\u002Fv2\u002Fposts\u002F3266\u002Frevisions\u002F13611",[1451],{"embeddable":130,"href":1452},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fmedia\u002F8230",[1454],{"href":1455},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fmedia?parent=3266",[1457,1459,1461],{"taxonomy":538,"embeddable":130,"href":1458},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fcategories?post=3266",{"taxonomy":541,"embeddable":130,"href":1460},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fcollections?post=3266",{"taxonomy":198,"embeddable":130,"href":1462},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fcoauthors?post=3266",[1464],{"name":547,"href":548,"templated":130},{"title":1466,"script":1467,"meta":1481,"link":1494},"Aaron Dicks | Chief Technology Officer | Impression",[1468],{"type":1469,"key":1470,"innerHTML":1471},"application\u002Fld+json","yoast-json-ld",{"@context":372,"@graph":1472},[1473,1478],{"@id":495,"@type":494,"name":4,"url":-1,"sameAs":1474,"image":1475,"description":6,"jobTitle":10,"knowsAbout":1476,"hasCredential":5,"gender":5,"worksFor":1477},[215,499],{"@type":404,"inLanguage":387,"@id":497,"url":8,"contentUrl":8,"caption":4},"Digital Marketing Strategy, Media Effectiveness & MMM, CRO, Enterprise Analytics, CRM",{"@id":420},{"@type":428,"@id":420,"name":339,"url":410,"logo":1479,"image":434,"sameAs":1480,"@context":439,"email":440,"foundingDate":441,"legalName":442,"vatID":443,"description":444,"telephone":445},{"@type":404,"inLanguage":387,"@id":430,"url":431,"contentUrl":431,"width":432,"height":433,"caption":339},[436,437,438],[1482,1483,1484,1486,1487,1489,1490,1492,1493],{"name":321,"content":322},{"property":326,"content":387},{"property":329,"content":1485},"profile",{"property":332,"content":1466},{"property":336,"content":1488},"https:\u002F\u002Fadmin.impressiondigital.com\u002Fabout\u002Four-team\u002Faaron-dicks\u002F",{"property":338,"content":339},{"property":350,"content":1491},"https:\u002F\u002Fimages.impression.co.uk\u002F2023\u002F10\u002FAaron-Dicks2.png?auto=compress&fit=fit&fm=jpg&h=500&q=90&w=500",{"name":363,"content":364},{"name":369,"content":370},[]]