[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"cms-page:\u002Fresources\u002Ftools\u002Fkeyword-performance-report":3},{"date":4,"date_gmt":4,"content":5,"categories":7,"coauthors":9,"class_list":11,"acf":19,"head_links":307,"breadcrumbs":308,"head":316},"2020-07-09T13:46:00",{"rendered":6},"\n\u003Cp>Just a small group of the keywords in your account are likely to be doing the lion’s share of the work in your account. Now, thanks to our handy keyword performance script, you can identify exactly which keywords are contributing the most to your success and which ones are costing the most.\u003C\u002Fp>\n\n\n\n\n\n\u003Ch2 class=\"wp-block-heading\" id=\"the-80-20-principle\">The 80\u002F20 principle\u003C\u002Fh2>\n\n\n\n\u003Cp>If you’ve ever read any book on time management or even personal development, you may have come across something called the 80\u002F20 principle.\u003C\u002Fp>\n\n\n\n\u003Cp>Sometimes called the Pareto principle, the concept is named after the Italian economist Vilfredo Pareto who noticed its effects in the early 19th century.\u003C\u002Fp>\n\n\n\n\u003Cp>The idea is simple: 80% of the outputs come from 20% of the inputs.\u003C\u002Fp>\n\n\n\n\u003Cp>For example:\u003C\u002Fp>\n\n\n\n\u003Cul class=\"wp-block-list\">\u003Cli>20% of the pods produce 80% of the peas\u003C\u002Fli>\u003Cli>20% of the criminals commit 80% of crimes\u003C\u002Fli>\u003Cli>20% of your customers make up 80% of your sales\u003C\u002Fli>\u003C\u002Ful>\n\n\n\n\u003Cp>It’s important to remember that this is an observation, not a natural law. The numbers aren’t always going to be an 80\u002F20 split, but they’re usually close enough.\u003C\u002Fp>\n\n\n\n\u003Cp>Despite this, many natural phenomena follow a similar pattern. Everything from word frequency (even in languages we can’t decipher yet) to&nbsp;\u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Farxiv.org\u002FPS_cache\u002Fcond-mat\u002Fpdf\u002F0412\u002F0412004v3.pdf\">the diameter of craters on the moon have be shown to fit a Pareto distribution\u003C\u002Fa>.\u003C\u002Fp>\n\n\n\n\u003Cp>The weirdest part is that no one knows why.\u003C\u002Fp>\n\n\n\n\u003Cp>Now, almost 200 years later, we are seeing these effects once again in the world of PPC advertising.\u003C\u002Fp>\n\n\n\n\u003Cp>If you look into your Google Ads account, you’ll likely find that around 20% of your keywords are leading to about 80% of your conversions.\u003C\u002Fp>\n\n\n\n\u003Cp>If you’d like to find out what that 20% is, we’ve got a script to help you do just that and more.\u003C\u002Fp>\n\n\n\n\n\n\u003Ch2 class=\"wp-block-heading\" id=\"our-pareto-principle-inspired-keyword-performance-script\">Our Pareto principle–inspired keyword performance script\u003C\u002Fh2>\n\n\n\n\u003Cp>All you have to do is install and run this Google Ads script and it will give you a spreadsheet report with all of the detail that you need to know.\u003C\u002Fp>\n\n\n\n\u003Cp>If you’ve never run a script before,&nbsp;\u003Ca rel=\"noreferrer noopener\" href=\"https:\u002F\u002Fdevelopers.google.com\u002Fgoogle-ads\u002Fscripts\u002Fdocs\u002Fyour-first-script\">Google has a quick guide\u003C\u002Fa>&nbsp;to show you how to set your first one up.\u003C\u002Fp>\n\n\n\n\u003Cp>The spreadsheet will break down exactly what percentage of your cost that each keyword represents, as well as what percentage of your conversions.\u003C\u002Fp>\n\n\n\n\u003Cp>If you are running an e-commerce account which pulls your conversion value into Google Ads, it’ll give you the keyword distributions for your revenue too.\u003C\u002Fp>\n\n\n\n\u003Cpre class=\"wp-block-code\">\u003Ccode>\u002F*******************************************************************************\n*\n* &#91;KPR] Keyword Performance Report\n* Author: Nathan Ifill (@nathanifill), Impression\n*\n* This script gives you the distribution of cost, conversions and revenue\n* (if you are pulling conversion value into your account) amongst your keywords.\n*\n* v1.1\n*\n* Any suggestions? Email nathan.ifill@impression.co.uk\n*\n* Change History:\n* v1.1\n* - NI added option to select or exclude campaigns by name\n*\n*******************************************************************************\u002F\n\n\u002F\u002F Want your report emailed to you every month? Enter your email address here.\n\u002F\u002F e.g. var yourEmailAddress = \"james.jameson@impression.co.uk\";\n\nvar yourEmailAddress = \"\";\n\nvar campaignNameContains = \"\";\n\u002F\u002F Use this if you only want to look at some campaigns such as campaigns with\n\u002F\u002F names containing 'Brand' or 'Remarketing'. Leave it as \"\" if you don't need\n\u002F\u002F it.\n\n\u002F\u002F e.g. var campaignNameContains = \"Brand\";\n\nvar campaignNameDoesNotContain = \"\";\n\u002F\u002F Use this if you want to exclude some campaigns such as campaigns with names\n\u002F\u002F containing 'Brand' or 'Remarketing'. Leave it as \"\" if you don't need it.\n\n\u002F\u002F e.g. var campaignNameDoesNotContain = \"Remarketing\";\n\n\u002F*******************************************************************************\n\u002F\u002F********* ONLY CERTIFIED NERDS SHOULD CHANGE THINGS BELOW THIS LINE **********\n\u002F\u002F*****************************************************************************\u002F\n\nvar fullCleanLog = \"\"; \u002F\u002F initialise fullCleanLog\n\nvar whereStatements = \"\";\n\nif (campaignNameDoesNotContain != \"\") {\n  whereStatements += \" AND CampaignName DOES_NOT_CONTAIN_IGNORE_CASE '\"\n  + campaignNameDoesNotContain + \"' \";\n}\n\nvar query = \"SELECT Criteria, AdGroupName, CampaignName, KeywordMatchType,\"\n+ \" Impressions, Clicks, Ctr, AverageCpc, Cost, Conversions, ConversionValue,\"\n+ \" ConversionRate FROM KEYWORDS_PERFORMANCE_REPORT WHERE Cost &gt; 0\"\n+ \" AND CampaignName CONTAINS_IGNORE_CASE '\" + campaignNameContains + \"'\"\n+ whereStatements\n+ \" DURING LAST_MONTH\"\n\nvar report = AdsApp.report(query);\n\nfunction main() {\n  var rows = report.rows();\n  var keywordSubtotal = 0;\n  var costSubtotal = 0;\n  var convSubtotal = 0;\n  var revSubtotal = 0;\n  var keywordArray = &#91;];\n  var costData = &#91;];\n  var convData = &#91;];\n  var revData = &#91;];\n  var skipRev = false; \u002F\u002F flag to say whether to add revenue data or not\n\n  Logger.log(\"Keyword Performance Report - www.impressiondigital.com\");\n  Logger.log(\"-------------------------------------------------\");\n  cleanLog(\"\");\n\n  while (rows.hasNext()) {\n\n    var row = rows.next();\n\n    var criteria = row&#91;\"Criteria\"];\n    var adGroupName = row&#91;\"AdGroupName\"];\n    var campaignName = row&#91;\"CampaignName\"];\n    var keywordMatchType = row&#91;\"KeywordMatchType\"];\n    var impressions = +row&#91;\"Impressions\"];\n    var clicks = +row&#91;\"Clicks\"];\n    var ctr = row&#91;\"Ctr\"];\n    var averageCpc = +row&#91;\"AverageCpc\"];\n    var cost = +row&#91;\"Cost\"];\n    var conversions = +row&#91;\"Conversions\"];\n    var conversionValue = +row&#91;\"ConversionValue\"];\n    var conversionRate = row&#91;\"ConversionRate\"];\n\n    \u002F\u002F Sets conversion value to 0 if NaN\n    if (isNaN(conversionValue)) {\n      conversionValue = 0;\n    }\n\n    \u002F\u002F Sets ROAS if cost &gt; 0\n    if (cost &gt; 0) {\n      var roas = conversionValue \u002F cost;\n    } else {\n      var roas = 0;\n    }\n\n    if (conversions &gt; 0) {\n      var costPerConversion = (cost \u002F conversions).toFixed(2);\n    } else {\n      var costPerConversion = 0;\n    }\n\n    keywordArray.push({\n      \"criteria\": criteria,\n      \"ad group name\": adGroupName,\n      \"campaign name\": campaignName,\n      \"keyword match type\": keywordMatchType,\n      \"impressions\": impressions,\n      \"clicks\": clicks,\n      \"ctr\": ctr,\n      \"average cpc\": averageCpc,\n      \"cost\": cost,\n      \"conversions\": conversions,\n      \"cost per conversion\": costPerConversion,\n      \"conversion value\": conversionValue,\n      \"conversion rate\": conversionRate,\n      \"roas\": roas\n    });\n\n    keywordSubtotal++;\n    costSubtotal += cost;\n    convSubtotal += conversions;\n    revSubtotal += conversionValue;\n  }\n\n  if (revSubtotal == 0) {\n    skipRev = true;\n  }\n\n  var costArray = keywordArray.sort(function (a,b) {\n\n    if ((b&#91;\"cost\"] - a&#91;\"cost\"]) &lt; 0) {\n      return -1;\n    } else if ((b&#91;\"cost\"] - a&#91;\"cost\"]) &gt; 0) {\n      return 1;\n    } else {\n      return 0;\n    }\n  });\n\n  var cumulativeCost = 0;\n  var maxCostDiff = 0;\n  var keywordPercentage = 0;\n  var costPercentage = 0;\n  var convPercentage = 0;\n  var revPercentage = 0;\n\n  costArray.forEach(function(item, index) {\n    cumulativeCost += item.cost;\n\n    item&#91;\"keyword percentage\"] = (100 * ((index + 1) \u002F keywordSubtotal)).toFixed(2);\n    item&#91;\"cost percentage\"] = (100 * (item&#91;\"cost\"] \u002F costSubtotal)).toFixed(2);\n    item&#91;\"cum cost percentage\"] = (100 * (cumulativeCost \u002F costSubtotal)).toFixed(2);\n    item&#91;\"cost diff\"] = (item&#91;\"cum cost percentage\"] - item&#91;\"keyword percentage\"]).toFixed(2);\n    \u002F\u002F sets maxCostDiff to item&#91;\"cost diff\"] if it's greater\n\n    if (+item&#91;\"cost diff\"] &gt; +maxCostDiff) {\n      maxCostDiff = item&#91;\"cost diff\"];\n      keywordPercentage = item&#91;\"keyword percentage\"];\n      costPercentage = item&#91;\"cum cost percentage\"];\n    };\n\n    costData.push(&#91;item&#91;\"criteria\"],\n    item&#91;\"ad group name\"],\n    item&#91;\"campaign name\"],\n    item&#91;\"keyword match type\"],\n    item&#91;\"cost percentage\"] \u002F 100,\n    item&#91;\"cum cost percentage\"] \u002F 100,\n    item&#91;\"impressions\"],\n    item&#91;\"clicks\"],\n    item&#91;\"ctr\"],\n    item&#91;\"average cpc\"],\n    item&#91;\"cost\"],\n    item&#91;\"conversions\"],\n    item&#91;\"cost per conversion\"],\n    item&#91;\"conversion value\"],\n    item&#91;\"conversion rate\"],\n    item&#91;\"roas\"]]);\n  });\n\n  cleanLog(keywordPercentage + \"% of your keywords are spending \" + costPercentage + \"% of your media spend.\");\n  var expensiveKeywords = costArray.filter(function(item) { return +item&#91;\"keyword percentage\"] &lt;= +keywordPercentage &amp;&amp; +item&#91;\"cost percentage\"] &lt;= +costPercentage});\n\n  var convArray = keywordArray.sort(function (a,b) {\n    if ((b&#91;\"conversions\"] - a&#91;\"conversions\"]) &lt; 0) {\n      return -1;\n    } else if ((b&#91;\"conversions\"] - a&#91;\"conversions\"]) &gt; 0) {\n      return 1;\n    }  else {\n      return 0;\n    }\n  });\n\n  var cumulativeConv = 0;\n  var maxConvDiff = 0;\n  keywordPercentage = 0;\n  convPercentage = 0;\n\n  convArray.forEach(function(item, index) {\n    cumulativeConv += item.conversions;\n\n    item&#91;\"keyword percentage\"] = (100 * ((index + 1) \u002F keywordSubtotal)).toFixed(2);\n    item&#91;\"conv percentage\"] = (100 * (item&#91;\"conversions\"] \u002F convSubtotal)).toFixed(2);\n    item&#91;\"cum conv percentage\"] = (100 * (cumulativeConv \u002F convSubtotal)).toFixed(2);\n    item&#91;\"conv diff\"] = (item&#91;\"cum conv percentage\"] - item&#91;\"keyword percentage\"]).toFixed(2);\n    \u002F\u002F sets maxCostDiff to item&#91;\"cost diff\"] if it's greater\n\n    if (+item&#91;\"conv diff\"] &gt; +maxConvDiff) {\n      maxConvDiff = item&#91;\"conv diff\"];\n      keywordPercentage = item&#91;\"keyword percentage\"];\n      convPercentage = item&#91;\"cum conv percentage\"];\n    };\n\n    convData.push(&#91;item&#91;\"criteria\"],\n    item&#91;\"ad group name\"],\n    item&#91;\"campaign name\"],\n    item&#91;\"keyword match type\"],\n    item&#91;\"conv percentage\"] \u002F 100,\n    item&#91;\"cum conv percentage\"] \u002F 100,\n    item&#91;\"impressions\"],\n    item&#91;\"clicks\"],\n    item&#91;\"ctr\"],\n    item&#91;\"average cpc\"],\n    item&#91;\"cost\"],\n    item&#91;\"conversions\"],\n    item&#91;\"cost per conversion\"],\n    item&#91;\"conversion value\"],\n    item&#91;\"conversion rate\"],\n    item&#91;\"roas\"]]);\n  });\n\n  cleanLog(keywordPercentage + \"% of your keywords are driving \" + convPercentage + \"% of your conversions.\");\n  var highConvertingKeywords = convArray.filter(\n    function(item) {\n      return +item&#91;\"keyword percentage\"] &lt;= +keywordPercentage &amp;&amp; +item&#91;\"conv percentage\"] &lt;= +convPercentage\n    });\n\n    if (!skipRev) {\n      var revArray = keywordArray.sort(function (a,b) {\n        if ((b&#91;\"conversion value\"] - a&#91;\"conversion value\"]) &lt; 0) {\n          return -1;\n        } else if ((b&#91;\"conversion value\"] - a&#91;\"conversion value\"]) &gt; 0) {\n          return 1;\n        }  else {\n          return 0;\n        }\n      });\n\n      \u002F\u002F REVENUE BITS\n\n      var cumulativeRev = 0;\n      var maxRevDiff = 0;\n      keywordPercentage = 0;\n      revPercentage = 0;\n\n      revArray.forEach(function(item, index) {\n        cumulativeRev += item&#91;\"conversion value\"];\n\n        item&#91;\"keyword percentage\"] = (100 * ((index + 1) \u002F keywordSubtotal)).toFixed(2);\n        item&#91;\"rev percentage\"] = (100 * (item&#91;\"conversion value\"] \u002F revSubtotal)).toFixed(2);\n        item&#91;\"cum rev percentage\"] = (100 * (cumulativeRev \u002F revSubtotal)).toFixed(2);\n        item&#91;\"rev diff\"] = (item&#91;\"cum rev percentage\"] - item&#91;\"keyword percentage\"]).toFixed(2);\n        \u002F\u002F sets maxCostDiff to item&#91;\"cost diff\"] if it's greater\n\n        if (+item&#91;\"rev diff\"] &gt; +maxRevDiff) {\n          maxRevDiff = item&#91;\"rev diff\"];\n          keywordPercentage = item&#91;\"keyword percentage\"];\n          revPercentage = item&#91;\"cum rev percentage\"];\n        };\n        \u002F\u002F If rev percentage isn't a num, set it to '--'\n        isNaN(item&#91;\"rev percentage\"])? item&#91;\"rev percentage\"] = '--' : false;\n        isNaN(item&#91;\"cum rev percentage\"])? item&#91;\"cum rev percentage\"] = '--' : false;\n\n        revData.push(&#91;item&#91;\"criteria\"],\n        item&#91;\"ad group name\"],\n        item&#91;\"campaign name\"],\n        item&#91;\"keyword match type\"],\n        item&#91;\"rev percentage\"] \u002F 100,\n        item&#91;\"cum rev percentage\"] \u002F 100,\n        item&#91;\"impressions\"],\n        item&#91;\"clicks\"],\n        item&#91;\"ctr\"],\n        item&#91;\"average cpc\"],\n        item&#91;\"cost\"],\n        item&#91;\"conversions\"],\n        item&#91;\"cost per conversion\"],\n        item&#91;\"conversion value\"],\n        item&#91;\"conversion rate\"],\n        item&#91;\"roas\"]]);\n      });\n\n      cleanLog(keywordPercentage + \"% of your keywords are driving \" + revPercentage + \"% of your revenue.\");\n      var highRevKeywords = revArray.filter(\n        function(item) {\n          return +item&#91;\"keyword percentage\"] &lt;= +keywordPercentage &amp;&amp; +item&#91;\"rev percentage\"] &lt;= +revPercentage\n        });\n      }\n      \u002F\u002F SPREADSHEET BITS\n\n      \u002F\u002F Headers for sheets\n      var costReportHeaders = &#91; \"Keyword\", \"Ad Group\", \"Campaign\",\n      \"Match type\", \"% of Cost\", \"Cum. % of Cost\", \"Impr.\", \"Clicks\", \"CTR\",\n      \"Avg. CPC\", \"Cost\", \"Conv.\", \"Cost \u002F Conv.\", \"Conv. value\", \"Conv. rate\",\n      \"Conv. value \u002F cost\"];\n\n      var convReportHeaders = &#91; \"Keyword\", \"Ad Group\", \"Campaign\",\n      \"Match type\", \"% of Conversions\", \"Cum. % of Conversions\", \"Impr.\", \"Clicks\",\n      \"CTR\",   \"Avg. CPC\", \"Cost\", \"Conv.\", \"Cost \u002F Conv.\", \"Conv. value\",\n      \"Conv. rate\", \"Conv. value \u002F cost\"];\n\n      if (!skipRev) {\n        var revReportHeaders = &#91; \"Keyword\", \"Ad Group\", \"Campaign\",\n        \"Match type\", \"% of Revenue\", \"Cum. % of Revenue\", \"Impr.\", \"Clicks\", \"CTR\",\n        \"Avg. CPC\", \"Cost\", \"Conv.\", \"Cost \u002F Conv.\", \"Conv. value\", \"Conv. rate\",\n        \"Conv. value \u002F cost\"];\n      }\n\n      var title = \"Keyword Performance Report: Cost, Conversions &amp; Revenue\";\n\n      if (skipRev) {\n        title = \"Keyword Performance Report: Cost &amp; Conversions\";\n      }\n\n      var timeZone = AdsApp.currentAccount().getTimeZone();\n      var today = new Date(); \u002F\u002F initialises a date object to today\n      var d = new Date(today.setMonth(today.getMonth()-1));\n      \u002F\u002F sets the date to a month ago\n      var lastMonth = Utilities.formatDate(d, timeZone, 'MMMM'); \u002F\u002F December\n      var shortMonth = Utilities.formatDate(d, timeZone, 'MMM'); \u002F\u002F Dec\n      var theYear = parseFloat(Utilities.formatDate(d, timeZone, 'yyyy'));\n\n      title += \" - \" + lastMonth + \" \" + theYear + \" (www.impressiondigital.com)\";\n      \u002F\u002F Appends the date to the title name\n\n      title = AdsApp.currentAccount().getName() + \" \" + title;\n\n      \u002F\u002F Make the spreadsheet\n      var ss = SpreadsheetApp.create(title);\n\n      \u002F\u002F Give URL for spreadsheet in logs\n      cleanLog(\"\");\n      cleanLog(\"The full report is available here: \" + ss.getUrl());\n      Logger.log(\"\");\n\n      if (yourEmailAddress != '') {\n        try {\n          var subject = \"&#91;KPR] \" + AdsApp.currentAccount().getName()\n          + \" Keyword Performance Report \"\n          + \" - \" + shortMonth + \" \" + theYear;\n          var body = title + fullCleanLog;\n          MailApp.sendEmail(yourEmailAddress, subject, body);\n          Logger.log(\"Email sent to \" + yourEmailAddress + \".\");\n        } catch (e) {\n\n          Logger.log(\"Unable to send keyword report email. Please check the email \"\n          + \"address provided is valid.\");\n        }\n      }\n\n      \u002F\u002F Name the sheets\n      var costSheet = ss.getSheets()&#91;0].setName(\"Cost Distribution\");\n      var convSheet = ss.insertSheet(\"Conversions Distribution\");\n\n      if (!skipRev) {var revSheet = ss.insertSheet(\"Revenue Distribution\");}\n\n      \u002F\u002F Cost sheet bits\n      costSheet.deleteColumns(2, costSheet.getMaxColumns() - 1);\n      costSheet.deleteRows(2, costSheet.getMaxRows() - 1);\n      costSheet.getRange(1,1,1,costReportHeaders.length).setValues(&#91;costReportHeaders]);\n\n      \u002F\u002F Conv sheet bits\n      convSheet.deleteColumns(2, convSheet.getMaxColumns() - 1);\n      convSheet.deleteRows(2, convSheet.getMaxRows() - 1);\n      convSheet.getRange(1,1,1,convReportHeaders.length).setValues(&#91;convReportHeaders]);\n\n      if (!skipRev) {\n        \u002F\u002F Rev sheet bits\n        revSheet.deleteColumns(2, revSheet.getMaxColumns() - 1);\n        revSheet.deleteRows(2, revSheet.getMaxRows() - 1);\n        revSheet.getRange(1,1,1,revReportHeaders.length).setValues(&#91;revReportHeaders]);\n      }\n\n      \u002F\u002F Freeze keyword column:\n      costSheet.setFrozenColumns(1);\n      convSheet.setFrozenColumns(1);\n      if (!skipRev) {\n        revSheet.setFrozenColumns(1);\n      }\n\n      \u002F\u002F Put the data in\n      costSheet.getRange(2,1,costData.length,costData&#91;0].length).setValues(costData);\n      convSheet.getRange(2,1,convData.length,convData&#91;0].length).setValues(convData);\n\n      if (!skipRev) {\n        revSheet.getRange(2,1,revData.length,revData&#91;0].length).setValues(revData);\n      }\n\n      \u002F\u002F Set formats for columns\n      var costRangeList = costSheet.getRangeList(&#91;'J2:P']);\n      var costPrcRangeList = costSheet.getRangeList(&#91;'E2:F', 'O2:O']);\n      costRangeList.setNumberFormat('0.00');\n      costPrcRangeList.setNumberFormat('0.00%');\n\n      var convRangeList = convSheet.getRangeList(&#91;'J2:P']);\n      var convPrcRangeList = convSheet.getRangeList(&#91;'E2:F', 'O2:O']);\n      convRangeList.setNumberFormat('0.00');\n      convPrcRangeList.setNumberFormat('0.00%');\n\n      if (!skipRev) {\n        var revRangeList = revSheet.getRangeList(&#91;'J2:P']);\n        var revPrcRangeList = revSheet.getRangeList(&#91;'E2:F', 'O2:O']);\n        revRangeList.setNumberFormat('0.00');\n        revPrcRangeList.setNumberFormat('0.00%');\n      }\n\n      \u002F\u002F Set column widths\n      costSheet.setColumnWidths(2, costReportHeaders.length - 1, 175);\n      convSheet.setColumnWidths(2, convReportHeaders.length - 1, 175);\n\n      if (!skipRev) {\n        revSheet.setColumnWidths(2, revReportHeaders.length - 1, 175);\n      }\n\n      \u002F\u002F Set first column to be auto sized\n      costSheet.autoResizeColumn(1);\n      convSheet.autoResizeColumn(1);\n\n      if (!skipRev) {\n        revSheet.autoResizeColumn(1);\n      }\n\n      \u002F\u002F Add filter\n      costSheet.getDataRange().createFilter();\n      convSheet.getDataRange().createFilter();\n      if (!skipRev) {\n        revSheet.getDataRange().createFilter();\n      }\n      Logger.log(\" \");\n      Logger.log(\"2 multiplied by 10 plus 1. Romeo done.\");\n      Logger.log(\"https:\u002F\u002Fyoutu.be\u002Fg7VhofoV3qs?t=236\");\n    }\n\n    function cleanLog(input) {\n      Logger.log(input);\n      fullCleanLog += \"\\n\" + input;\n    }\n\u003C\u002Fcode>\u003C\u002Fpre>\n\n\n\n\u003Cp>The script is set to give you statistics for last month &#8211; whichever month that was. Schedule it to run on the first of the month and it&#8217;ll automatically create a new report for you so that you can see how well you&#8217;re doing over time.\u003C\u002Fp>\n\n\n\n\u003Cp>Depending on the size of your account, it should run for up to a minute before giving you your data.\u003C\u002Fp>\n\n\n\n\u003Cp>If you add your email address to the script, it&#8217;ll email you a link to the spreadsheet once the script has run.\u003C\u002Fp>\n\n\n\n\u003Cp>You can also choose to only include campaigns with a certain word in their name (e.g. &#8220;Brand&#8221; or &#8220;UK&#8221;) in the report to see specific stats for a subset of your campaigns.\u003C\u002Fp>\n\n\n\n\u003Cp>Alternatively, if there are certain campaigns that you&#8217;d like to \u003Cem>exclude\u003C\u002Fem> from the figures, you can do that too.\u003C\u002Fp>\n\n\n\n\n\n\u003Ch3 class=\"wp-block-heading\" id=\"what-to-expect\">What to expect\u003C\u002Fh3>\n\n\n\n\u003Cp>You might be surprised to find out just how skewed your account is!\u003C\u002Fp>\n\n\n\n\u003Cp>The script logs will give you some of the stats as highlights, but you&#8217;ll also get these sent to you if you have entered your email address.\u003C\u002Fp>\n\n\n\n\u003Cfigure class=\"wp-block-image size-large\">\u003Cimg decoding=\"async\" src=\"https:\u002F\u002Fimpression.imgix.net\u002F2020\u002F07\u002Fimage-14.png?auto=compress%2Cformat&amp;fit=scale&amp;h=212&amp;ixlib=php-1.2.1&amp;q=82&amp;w=1024&amp;wpsize=large&amp;s=41d2a1f5739d32d7daf561601e08a167\" alt=\"An example of what the logs might look like on your account.\" class=\"wp-image-21815\"\u002F>\u003C\u002Ffigure>\n\n\n\n\u003Cp>\u003C\u002Fp>\n\n\n\n\u003Cp>The report itself is fairly straightforward with columns showing a variety of performance metrics for each keyword, including impressions, clicks, CTR, Avg. CPC, cost, cost per conversion and conversion rate.\u003C\u002Fp>\n\n\n\n\u003Cp>In addition to this, you&#8217;ll also get a breakdown of what percentage of cost, conversions and revenue each keyword is responsible for, as well as the cumulative percentage.\u003C\u002Fp>\n\n\n\n\u003Cfigure class=\"wp-block-image size-large\">\u003Cimg decoding=\"async\" src=\"https:\u002F\u002Fimpression.imgix.net\u002F2020\u002F07\u002FScreenshot-2020-07-09-at-15.43.33.png?auto=compress%2Cformat&amp;fit=scale&amp;h=289&amp;ixlib=php-1.2.1&amp;q=82&amp;w=1024&amp;wpsize=large&amp;s=2aea0a03d0273b7251fb88e39b4db1f2\" alt=\"\" class=\"wp-image-21816\"\u002F>\u003C\u002Ffigure>\n\n\n\n\u003Cp>\u003C\u002Fp>\n\n\n\n\u003Cp>The script only analyses keywords which spent money last month, so if you were expecting more, this may be the reason for the discrepancy.\u003C\u002Fp>\n\n\n\n\u003Cp>Each sheet is sorted by cost, conversions and revenue in descending order, depending on which metric is being analysed. That means that the keywords that are either contributing the most to your account or spending the most of your budget will always be at the top.\u003C\u002Fp>\n\n\n\n\u003Cp>Try it out on your account today to see how your keywords are performing.\u003C\u002Fp>\n\n\n\n\n\n\u003Ch2 class=\"wp-block-heading\" id=\"increase-your-spend-efficiency\">Increase your spend efficiency\u003C\u002Fh2>\n\n\n\n\u003Cp>So, a small handful of keywords are responsible for a large chunk of your conversions and your advertising cost. \u003C\u002Fp>\n\n\n\n\u003Cp>Now what do you do with this information? That&#8217;s where we come in.\u003C\u002Fp>\n\n\n\n\u003Cp>Even if things are ticking along nicely in your account at the moment, there&#8217;s always room for improvement. With a few quick tweaks off of the back of this data, you can increase the spend efficiency in your account and get even better results from your current budget.\u003C\u002Fp>\n\n\n\n\u003Cp>While disproportionate performance is to be expected, it could also be an indication that it&#8217;s time to restructure your account, adjust your bidding strategies and apply budget on a priority basis.\u003C\u002Fp>\n\n\n\n\u003Cp>If you&#8217;d like to find out more about how you can get the most out of your account, \u003Ca rel=\"noreferrer noopener\" href=\"\u002Fget-in-touch\u002F\">contact us today\u003C\u002Fa> and we can guide you through it.\u003C\u002Fp>\n",[8],40,[10],135,[12,13,14,15,16,17,18],"post-1754","tools","type-tools","status-publish","has-post-thumbnail","hentry","category-ppc",{"gated":20,"form_title":20,"form_button_text":20,"confirmation_title":20,"confirmation_body":20,"tool_link":20,"page_content_modules":21,"hero":118},null,[22,89],{"acf_fc_layout":23,"reduced":24,"top_overlap":-1,"bottom_underlap":-1,"disable_observer":24,"title":25,"content":6,"authors":26,"gated":20,"form_title":20,"form_button_text":20,"confirmation_title":20,"confirmation_body":20,"tool_link":20},"tool_content",true,"Keyword Performance Report",[27],{"id":28,"path":29,"display_name":30,"job_title":31,"description":32,"avatar_url":33,"acf":34},33,"\u002Fabout\u002Four-team\u002Fimpression-team\u002F","Team Impression","","This post may have been written by a past member of the Impression team, or be a collaboration of us all. We hope you like it!","https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F11\u002FImpression-Icon.jpg?auto=compress&fit=crop&fm=jpg&h=150&q=80&w=150&bg=CFE6F9",{"job_title":31,"full_bio":31,"specialist_service_links":35,"photo":36},false,{"ID":37,"id":37,"title":38,"filename":39,"filesize":40,"url":41,"link":42,"alt":31,"author":43,"description":31,"caption":31,"name":44,"status":45,"uploaded_to":40,"date":46,"modified":46,"menu_order":40,"mime_type":47,"type":48,"subtype":49,"icon":50,"width":51,"height":51,"sizes":52},12476,"Impression-Icon","Impression-Icon.jpg",0,"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F11\u002FImpression-Icon.jpg?auto=compress%2Cformat&q=90","\u002Fimpression-icon\u002F","12","impression-icon","inherit","2021-11-02 16:49:21","image\u002Fjpeg","image","jpeg","\u002Fwp\u002Fwp-includes\u002Fimages\u002Fmedia\u002Fdefault.png",500,{"thumbnail":53,"thumbnail-width":54,"thumbnail-height":54,"medium":55,"medium-width":56,"medium-height":56,"medium_large":57,"medium_large-width":58,"medium_large-height":58,"large":59,"large-width":60,"large-height":61,"1536x1536":62,"1536x1536-width":63,"1536x1536-height":63,"2048x2048":64,"2048x2048-width":65,"2048x2048-height":65,"post-thumbnail":66,"post-thumbnail-width":67,"post-thumbnail-height":68,"12_col":69,"12_col-width":70,"12_col-height":71,"default_landscape":72,"default_landscape-width":73,"default_landscape-height":74,"default_portrait":75,"default_portrait-width":74,"default_portrait-height":73,"6_col_and_margin_short":76,"6_col_and_margin_short-width":67,"6_col_and_margin_short-height":71,"11_col_and_margin":77,"11_col_and_margin-width":78,"11_col_and_margin-height":71,"9_col_rectangle":79,"9_col_rectangle-width":80,"9_col_rectangle-height":81,"11_col":82,"11_col-width":83,"11_col-height":71,"staff_image_696_600":84,"staff_image_696_600-width":85,"staff_image_696_600-height":74,"rectangular_thumbnail":86,"rectangular_thumbnail-width":87,"rectangular_thumbnail-height":88},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F11\u002FImpression-Icon.jpg?auto=compress%2Cformat&fit=crop&h=640&q=90&w=640","640","https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F11\u002FImpression-Icon.jpg?auto=compress%2Cformat&fit=scale&h=200&q=90&w=200",200,"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F11\u002FImpression-Icon.jpg?auto=compress%2Cformat&fit=scale&h=768&q=90&w=768",768,"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F11\u002FImpression-Icon.jpg?auto=compress%2Cformat&fit=crop&h=1000&q=90&w=1892","1892","1000","https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F11\u002FImpression-Icon.jpg?auto=compress%2Cformat&fit=scale&h=1536&q=90&w=1536",1536,"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F11\u002FImpression-Icon.jpg?auto=compress%2Cformat&fit=scale&h=2048&q=90&w=2048",2048,"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F11\u002FImpression-Icon.jpg?auto=compress%2Cformat&fit=crop&h=1180&q=90&w=1860",1860,1180,"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F11\u002FImpression-Icon.jpg?auto=compress%2Cformat&fit=crop&h=870&q=90&w=2880",2880,870,"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F11\u002FImpression-Icon.jpg?auto=compress%2Cformat&fit=crop&h=600&q=90&w=800",800,600,"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F11\u002FImpression-Icon.jpg?auto=compress%2Cformat&fit=crop&h=800&q=90&w=600","https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F11\u002FImpression-Icon.jpg?auto=compress%2Cformat&fit=crop&h=870&q=90&w=1860","https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F11\u002FImpression-Icon.jpg?auto=compress%2Cformat&fit=crop&h=870&q=90&w=3080",3080,"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F11\u002FImpression-Icon.jpg?auto=compress%2Cformat&fit=crop&h=1400&q=90&w=2150",2150,1400,"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F11\u002FImpression-Icon.jpg?auto=compress%2Cformat&fit=crop&h=870&q=90&w=2640",2640,"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F11\u002FImpression-Icon.jpg?auto=compress%2Cformat&fit=crop&h=600&q=90&w=696",696,"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F11\u002FImpression-Icon.jpg?auto=compress%2Cformat&fit=crop&h=300&q=90&w=750",750,300,{"acf_fc_layout":90,"reduced":24,"top_overlap":91,"bottom_underlap":91,"disable_observer":-1,"heading":92,"cta_text":93,"cta_link":94,"items":95},"related_module","small","See more tools","See all tools","\u002Fresources\u002Ftools\u002F",[96,104,111],{"type_key":13,"title":97,"excerpt":-1,"to":98,"postedAt":99,"readingTime":40,"image":100,"authors":101,"type":103},"High-Performing Query to Keyword: A Google Ads Automation Script","\u002Fresources\u002Ftools\u002Fgoogle-ads-campaign-optimisation\u002F","2021-06-14T16:00:00","https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F09\u002Ftest-script.jpg?auto=compress%2Cformat&fit=crop&h=300&q=90&w=750",[102],{"name":30,"image":33},"Tool",{"type_key":13,"title":105,"excerpt":-1,"to":106,"postedAt":107,"readingTime":40,"image":108,"authors":109,"type":103},"Eliminate wasted spend with this Google Ads script","\u002Fresources\u002Ftools\u002Feliminate-wasted-spend-with-this-google-ads-script\u002F","2020-08-24T09:56:00","https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F05\u002FpE4HDwaz-Script_KIWF.jpg?auto=compress%2Cformat&fit=crop&h=300&q=90&w=750",[110],{"name":30,"image":33},{"type_key":13,"title":112,"excerpt":-1,"to":113,"postedAt":114,"readingTime":40,"image":115,"authors":116,"type":103},"How To Create Local Google Ads Dynamically","\u002Fresources\u002Ftools\u002Flocal-google-ads\u002F","2020-05-12T06:55:00","https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F05\u002FgQt0MLS0-Script_Location-Data-Updater.jpg?auto=compress%2Cformat&fit=crop&h=300&q=90&w=750",[117],{"name":30,"image":33},{"type":119,"style":120,"heading":25,"title":121,"categories":122},"tool","dark","Tools",[123],{"id":8,"count":124,"description":125,"name":126,"slug":127,"taxonomy":128,"parent":40,"meta":129,"acf":130,"head_links":131,"resource_count":132,"yoast_title":133,"yoast_meta":134,"yoast_json_ld":178,"_links":277,"path":305,"link":306},271,"\u003Cp class=\"p1\">Keeping up to date with the latest digital trends, strategies, and announcements can be difficult. Our digital experts regularly blog about the PPC news that’s stirring up the industry, so check back regularly or sign up to our newsletter to stay informed!\u003C\u002Fp>\r\n\r\n\u003Cp class=\"p1\">Find out more about our \u003Ca href=\"\u002Fpaid-media\u002Fppc\u002F\">PPC services\u003C\u002Fa>, or browse our latest tips, advice and opinions below.\u003C\u002Fp>","PPC","ppc","category",[],[],[],16,"PPC Blog | PPC Tips, Advice & Guides | Impression",[135,137,140,143,146,149,152,154,156,158,161,164,167,170,172,175],{"property":136,"content":133},"title",{"property":138,"content":139},"description","Keeping up to date with the latest PPC trends, strategies, and announcements can be difficult. Browse our tips, advice and opinions in our latest PPC blogs!",{"name":141,"content":142},"robots","index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1",{"property":144,"content":145},"canonical","https:\u002F\u002Fadmin.impressiondigital.com\u002Fblog\u002Fcategory\u002Fppc\u002F",{"name":147,"content":148},"og:locale","en_GB",{"property":150,"content":151},"og:type","article",{"property":153,"content":133},"og:title",{"property":155,"content":139},"og:description",{"property":157,"content":145},"og:url",{"property":159,"content":160},"og:site_name","Impression",{"property":162,"content":163},"og:image","https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F06\u002FABFPXguH-Opengraph-BLUE.jpg?auto=compress%2Cformat&q=90",{"property":165,"content":166},"og:image:width",1200,{"property":168,"content":169},"og:image:height",630,{"property":171,"content":47},"og:image:type",{"property":173,"content":174},"twitter:card","summary_large_image",{"property":176,"content":177},"twitter:site","@impressiontalk",{"@context":179,"@graph":180},"https:\u002F\u002Fschema.org",[181,189,199,210],{"@type":182,"@id":183,"url":183,"name":133,"isPartOf":184,"description":139,"breadcrumb":186,"inLanguage":188},"CollectionPage","https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fcategory\u002Fppc\u002F",{"@id":185},"https:\u002F\u002Fwww.impressiondigital.com\u002F#website",{"@id":187},"https:\u002F\u002Fwww.impressiondigital.com\u002Fblog\u002Fcategory\u002Fppc\u002F#breadcrumb","en",{"@type":190,"@id":187,"itemListElement":191},"BreadcrumbList",[192,197],{"@type":193,"position":194,"name":195,"item":196},"ListItem",1,"Home","https:\u002F\u002Fwww.impressiondigital.com\u002F",{"@type":193,"position":198,"name":126},2,{"@type":200,"@id":185,"url":196,"name":160,"description":31,"publisher":201,"inLanguage":203,"potentialAction":204},"WebSite",{"@id":202},"https:\u002F\u002Fwww.impressiondigital.com\u002F#organization","en-GB",{"@type":205,"target":206,"query-input":209},"SearchAction",{"@type":207,"urlTemplate":208},"EntryPoint","https:\u002F\u002Fwww.impressiondigital.com\u002Fsearch?q={search_term_string}","required name=search_term_string",{"@type":211,"@id":202,"name":160,"url":196,"logo":212,"image":218,"sameAs":219,"@context":223,"email":224,"foundingDate":225,"legalName":226,"vatID":227,"description":228,"telephone":229,"address":230,"location":237,"areaServed":270},"Organization",{"@type":213,"inLanguage":203,"@id":214,"url":215,"contentUrl":215,"width":216,"height":217,"caption":160},"ImageObject","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",[220,221,222],"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":231,"streetAddress":232,"addressLocality":233,"addressRegion":234,"postalCode":235,"addressCountry":236},"PostalAddress","Fothergill House, 16 King Street","Nottingham","Nottinghamshire","NG1 2AS","United Kingdom",[238,247,259],{"@type":239,"name":240,"geo":241,"address":245,"photo":218,"telephone":246},"Place","Impression Digital - Nottingham",{"@type":242,"latitude":243,"longitude":244},"GeoCoordinates","52.95501401025914","-1.1494887460285232",{"@type":231,"streetAddress":232,"addressLocality":233,"addressRegion":234,"postalCode":235,"addressCountry":236},"+44 01158 242 212",{"@type":239,"name":248,"geo":249,"address":252,"photo":257,"telephone":258},"Impression Digital - London",{"@type":242,"latitude":250,"longitude":251},"51.50237208377361","-0.09229841534284115",{"@type":231,"streetAddress":253,"addressLocality":254,"addressRegion":255,"postalCode":256,"addressCountry":236},"201 Borough High St","Southwark","London","SE1 1JA","https:\u002F\u002Fcdn.impression.co.uk\u002F2021\u002F04\u002FwD0pPVWz-London.jpg","+44 020 7112 8148",{"@type":239,"name":260,"geo":261,"address":264},"Impression Digital - New York",{"@type":242,"latitude":262,"longitude":263},"40.726722746949","-74.00527778220652",{"@type":231,"streetAddress":265,"addressLocality":266,"addressRegion":267,"postalCode":268,"addressCountry":269},"160 Varick St","New York","NY","10013","USA",[271,274,276],{"@type":272,"name":273},"Country","Worldwide",{"@type":272,"name":275},"GBR",{"@type":272,"name":269},{"self":278,"collection":284,"about":287,"wp:post_type":290,"curies":301},[279],{"href":280,"targetHints":281},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fcategories\u002F40",{"allow":282},[283],"GET",[285],{"href":286},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fcategories",[288],{"href":289},"\u002Fwp-json\u002Fwp\u002Fv2\u002Ftaxonomies\u002Fcategory",[291,293,295,297,299],{"href":292},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fposts?categories=40",{"href":294},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fwhite_papers?categories=40",{"href":296},"\u002Fwp-json\u002Fwp\u002Fv2\u002Ftools?categories=40",{"href":298},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fwebinars?categories=40",{"href":300},"\u002Fwp-json\u002Fwp\u002Fv2\u002Fevents?categories=40",[302],{"name":303,"href":304,"templated":24},"wp","https:\u002F\u002Fapi.w.org\u002F{rel}","\u002Fblog\u002Fcategory\u002Fppc\u002F","\u002Fresources\u002Ftools\u002Fcategory\u002Fppc\u002F",[],[309,311,314,315],{"path":310,"name":195},"\u002F",{"path":312,"name":313},"\u002Fresources\u002F","Resources",{"path":94,"name":121},{"path":20,"name":25},{"title":317,"script":318,"meta":391,"link":412},"Keyword Performance Report - Impression",[319],{"type":320,"key":321,"innerHTML":322},"application\u002Fld+json","yoast-json-ld",{"@context":179,"@graph":323},[324,341,349,352,362,366,384],{"@type":325,"@id":326,"isPartOf":327,"author":329,"headline":25,"datePublished":331,"dateModified":332,"mainEntityOfPage":333,"wordCount":334,"publisher":335,"image":337,"thumbnailUrl":339,"articleSection":340,"inLanguage":203},"TechArticle","https:\u002F\u002Fwww.impressiondigital.com\u002Fresources\u002Ftools\u002Fkeyword-performance-report\u002F#article",{"@id":328},"https:\u002F\u002Fwww.impressiondigital.com\u002Fresources\u002Ftools\u002Fkeyword-performance-report\u002F",{"name":30,"@id":330},"https:\u002F\u002Fadmin.impressiondigital.com\u002F#\u002Fschema\u002Fperson\u002F401562873f414eb98c8fb548c6a15fb6","2020-07-09T13:46:00+00:00","2021-11-02T18:41:25+00:00",{"@id":328},871,{"@id":336},"https:\u002F\u002Fadmin.impressiondigital.com\u002F#organization",{"@id":338},"https:\u002F\u002Fwww.impressiondigital.com\u002Fresources\u002Ftools\u002Fkeyword-performance-report\u002F#primaryimage","https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F04\u002FBDlA6puR-Script_Keyword-Performance-Report.jpg?auto=compress%2Cformat&q=90",[126],{"@type":342,"@id":328,"url":328,"name":317,"isPartOf":343,"primaryImageOfPage":344,"image":345,"thumbnailUrl":339,"datePublished":331,"dateModified":332,"description":346,"breadcrumb":347,"inLanguage":188},"WebPage",{"@id":185},{"@id":338},{"@id":338},"Less than 20% of your Google Ads keywords could be leading to more than 80% of your results. Use our keyword performance report script to discover which...",{"@id":348},"https:\u002F\u002Fwww.impressiondigital.com\u002Fresources\u002Ftools\u002Fkeyword-performance-report\u002F#breadcrumb",{"@type":213,"inLanguage":203,"@id":338,"url":339,"contentUrl":339,"width":350,"height":351},906,360,{"@type":190,"@id":348,"itemListElement":353},[354,355,357,360],{"@type":193,"position":194,"name":195,"item":196},{"@type":193,"position":198,"name":313,"item":356},"https:\u002F\u002Fwww.impressiondigital.com\u002Fresources\u002F",{"@type":193,"position":358,"name":121,"item":359},3,"https:\u002F\u002Fwww.impressiondigital.com\u002Fresources\u002Ftools\u002F",{"@type":193,"position":361,"name":25},4,{"@type":200,"@id":185,"url":196,"name":160,"description":31,"publisher":363,"inLanguage":203,"potentialAction":364},{"@id":202},{"@type":205,"target":365,"query-input":209},{"@type":207,"urlTemplate":208},{"@type":211,"@id":202,"name":160,"url":196,"logo":367,"image":218,"sameAs":368,"@context":223,"email":224,"foundingDate":225,"legalName":226,"vatID":227,"description":228,"telephone":229,"address":369,"location":370,"areaServed":380},{"@type":213,"inLanguage":203,"@id":214,"url":215,"contentUrl":215,"width":216,"height":217,"caption":160},[220,221,222],{"@type":231,"streetAddress":232,"addressLocality":233,"addressRegion":234,"postalCode":235,"addressCountry":236},[371,374,377],{"@type":239,"name":240,"geo":372,"address":373,"photo":218,"telephone":246},{"@type":242,"latitude":243,"longitude":244},{"@type":231,"streetAddress":232,"addressLocality":233,"addressRegion":234,"postalCode":235,"addressCountry":236},{"@type":239,"name":248,"geo":375,"address":376,"photo":257,"telephone":258},{"@type":242,"latitude":250,"longitude":251},{"@type":231,"streetAddress":253,"addressLocality":254,"addressRegion":255,"postalCode":256,"addressCountry":236},{"@type":239,"name":260,"geo":378,"address":379},{"@type":242,"latitude":262,"longitude":263},{"@type":231,"streetAddress":265,"addressLocality":266,"addressRegion":267,"postalCode":268,"addressCountry":269},[381,382,383],{"@type":272,"name":273},{"@type":272,"name":275},{"@type":272,"name":269},{"@type":385,"@id":386,"name":30,"image":387,"description":32,"url":390},"Person","https:\u002F\u002Fwww.impressiondigital.com\u002F#\u002Fschema\u002Fperson\u002F401562873f414eb98c8fb548c6a15fb6",{"@type":213,"inLanguage":203,"@id":388,"url":389,"contentUrl":389,"caption":30},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F11\u002FImpression-Icon.jpg?auto=compress&fit=fit&fm=jpg&h=96&q=90&w=96124cc556989aa8a89f2f74da512d68e4","https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F11\u002FImpression-Icon.jpg?auto=compress&fit=fit&fm=jpg&h=96&q=90&w=96","https:\u002F\u002Fwww.impressiondigital.com\u002Fabout\u002Four-team\u002Fimpression-team\u002F",[392,393,394,395,396,397,398,399,400,403,405,407,408,409,410,411],{"name":138,"content":346},{"name":141,"content":142},{"property":147,"content":148},{"property":150,"content":151},{"property":153,"content":317},{"property":155,"content":346},{"property":157,"content":328},{"property":159,"content":160},{"property":401,"content":402},"article:publisher","https:\u002F\u002Fwww.facebook.com\u002Fimpression",{"property":404,"content":332},"article:modified_time",{"property":162,"content":406},"https:\u002F\u002Fimages.impression.co.uk\u002F2021\u002F04\u002FBDlA6puR-Script_Keyword-Performance-Report.jpg?auto=compress%2Cformat",{"property":165,"content":350},{"property":168,"content":351},{"property":171,"content":47},{"name":173,"content":174},{"name":176,"content":177},[]]