Tag Archives: Reporting

Account Dashboard By Label

Purpose

Generate a Google Sheet with time-segmented data and charts for all the elements that you've labeled.
The script can aggregate the data or report on every individual element that has the label. It can do calculations with any of the data (e.g. create new metrics like Conversion Per Impression) and it can compare data for 2 time periods so you can see both seasonality and whether you're doing better or worse than last period.
Download Script

This is an example of the types of charts you can generate for your AdWords account using this script.
This is an example of the types of charts you can generate for your AdWords account using this script.

Example Use Cases

  • Create a dashboard with year-over-year performance graphs for any set of ad groups, campaigns or keywords.
  • Create a dashboard that shows charts for all keywords with the label "My Top Keywords"
  • Create graphs using calculated metrics not directly available in AdWords, for example you could build a chart showing the trend in "Conversions per Impression" for your top ad groups
  • Create charts that group the data for multiple campaigns that have the same label, for example, if you have 2 campaigns to sell widgets, you can graph the aggregate performance of these campaigns by giving them the same label. This is particularly useful if your account management strategy requires you to split up campaigns for different target audiences, e.g. by time zone.

Settings and Customizations

The settings below let you customize how the script works. Simply change the values as needed at the top of the script to fit your needs.

  • SPREADSHEET: The URL of the Google spreadsheet that will receive the data. Make sure this spreadsheet has added your AdWords login email address as an editor. Otherwise the script will fail because it can't access the spreadsheet.
  • LABELS = new Array("Label 1", "Label 2"); Replace "Label 1" and "Label 2" with the label names you want to build a report for. You can add additional labels as needed, just be sure to enclose the name in quotes and separate each label with a comma
  • LEVEL: The script can only report on one type of item so choose campaigns, keywords, or ad groups
  • STARTDAYSAGO: This tells the script how many days back to start your report
  • TIMESEGMENT: This tells the script how to segment the report by time, valid choices are Week, Date, Month, Quarter (capitalization matters!)

Advanced Customizations

  • METRICS: This is a list of objects to tell the script which metrics to include in the tables. These metrics should NOT be ratios so not Ctr or ConversionRate. Instead include only metrics that are not calculated based on other metrics in AdWords. For name, you can include any metric that is included in a standard AdWords performance report (documentation: https://developers.google.com/adwords/api/docs/appendix/reports#ad-group). Some example values we find useful are Conversions, Clicks, Impressions, Cost, TotalConvValue. For each of these metrics, you can also include modifierForNewMetric and modifierForOldMetric. These let you calculate a value from the AdWords data. For example, if you want to increase last year's click values by 10%, you'd set modifierForOldMetric=1.1 for the metric Clicks. If you don't understand what this means, simply leave it at 1 so your reports will include the exact data that comes from AdWords.
  • CALCULATEDMETRICS: This is a list of objects for metrics to include in the report that are ratios, e.g. Ctr. You can also include a set of static values which is useful if you want your charts to include your target as a line. You can name these metrics anything you want. If the metric is a ratio, e.g. CTR, set type to 'ratio' and 'formula' to the division of metrics. These metrics have to be included in the METRICS section. For a static value, set 'type' to static and 'formula' to the static number. We've already included the metrics you'll most likely want in the sample script.
  • CHARTMETRICS: This tells the script which metrics and calculatedmetrics to show in charts. The name has to match one of your choices in METRICS or CALCULATEDMETRICS. If you set includeComparison to 1, then the chart will also include a line for the previous time period
  • AGGREGATESTATSBYLABEL: This tells the script to either total all the metrics by label or to report on every element individually. So for example, if you have 2 campaigns labeled 'Widgets' and you set AGGREGATESTATSBYLABEL to 1, then the output will combine the stats for these 2 campaigns. If on the other hand you set AGGREGATESTATSBYLABEL to 0, it will report stats for each of the two campaigns separately.
  • THOUSANDSSEPARATOR: This tells the script how you display currency in your AdWords account and whether you use a period or comma between thousands. For example, in the US we say $1,000.22 so the value should be "," whereas in Europe you say $1.000,22 so the value for this should be "."
  • INCLUDETOTALS: Tell the script if you want to aggregate all the data from all the labels and include it on its own tab in the Google Sheet. Set to 1 to include the aggregate totals or 0 to NOT include them
  • CHARTWIDTH: This tells the script the width in pixels of every chart
  • CHARTHEIGHT: This tells the script the height in pixels of every chart

Download Script

Ad-Template-Performance

Enhanced Script: Ad Template Report

Purpose

This AdWords Script produces a report of the various elements of your ad texts. It aggregates data for commonly used headlines, URLs and description lines, and also for entire ads that you use in multiple places in the account.

Ad-Template-Performance

Example Use Cases

  • Find the best performing ad text elements in your AdWords account
  • Find the best headline, description or display URL for new ad texts
  • Get enough data to make statistically valid decisions about ad text performance by aggregating data from similar ads across an entire account.

Settings and Customizations

Please refer to the script download page for the settings.

Get This Script

You can run this script from the Enhanced Scripts™ section in your Optmyzr account.

 

Enhanced Script: Collect Hourly Stats for AdWords

Purpose

Collect Hourly AdWords StatsHave you ever wanted a way to get more granular stats for AdWords than what's available from the AdWords website? Well then this AdWords automation script is for you... It saves stats for campaigns, ad groups and keywords you choose to a spreadsheet once per hour. It can even save the maximum CPC and the Quality Score, two elements whose historical values are not saved inside AdWords.

Example Use Cases

  • Keep track of attributes that the AdWords system does not provide historical data for. For example, use this script to record the Quality Score of your most important keywords every hour. AdWords does not store historical QS so the only way to get this data is to save it.
  • Understand the delivery curve for your ads so you can understand if most of your budget is spent at a particular time of the day. The next time your boss wants to know why the account spend seems low for the day, you can use this hourly data to make sure things are running as expected and show that spend always picks up later in the day.
  • Monitor your top 10 most important keywords more closely than the rest of your account by automatically putting their latest stats into a spreadsheet which you can then use to feed into a dashboard.
Automatically get stats for your most important campaigns, ad groups and keywords from AdWords every hour.
Automatically get stats for your most important campaigns, ad groups and keywords from AdWords every hour.

Under The Hood

This script runs once per hour and stores the daily stats for the selected items at that time. Because stats can be delayed and because the script may run at any time during the hour, you will see an hour-by-hour progression in the recorded stats but you will not see stats for specific hours. Usually scripts will run at the same time every hour so you might see stats for today through 8:23am on one line and then stats for today through 9:23am on the next line.

Because this script stores a lot of data in Google Spreadsheets, you should frequently create a new spreadsheet to make sure it doesn't reach its limits. For example, create a new spreadsheet weekly or biweekly depending on the amount of data you're collecting. This script can be adapted to automatically start a new spreadsheet on a predefined cycle but that requires storing the current spreadsheet URL somewhere (for example in a label or in another spreadsheet).

Get This Script

You can run this script from the Enhanced Scripts™ section in your Optmyzr account.

 

Enhanced Script: Date Range Comparison

Purpose

This script makes it easier to compare the performance of an account across two date ranges. It downloads reports including account data, campaign data, ad group data, keyword data and ad text data for the two time periods you specify and then combines them into a single Google Spreadsheet that shows the percent change for each item.

Compare AdWords performance for 2 date ranges
Compare AdWords performance for 2 date ranges

Example Use Cases

  • Get a report every Monday that shows last week's account performance compared to two weeks ago
  • Get a report on the first of the month that shows last month's account performance compared to two months ago
  • Get a report that compares the same number of days (and same days of the week) before and after an optimization was made

Settings and Customizations

Replace the following variables with your own values: campaignNameSelectorStatement, time, daysInReport, spreadsheetUrl, includeAccountLevel, includeCampaignLevel, includeAdGroupLevel, includeKeywordLevel, includeAdLevel

campaignNameSelectorStatement (optional)

The campaignSelectorStatement tells the script on which campaigns to operate. It uses the syntax from AdWords Scripts for .withCondition(condition)

  • For example, to operate on all campaigns in an account use: CampaignName CONTAINS_IGNORE_CASE ”
  • To work only on the campaign named "Campaign #1", use: CampaignName = 'Campaign #1'

It is optional when you want to include only account level data. Otherwise this is a required value.

time, daysInReport, optimizationDate, preStartDate, preEndDate, postStartDate, postEndDate (required)

These variable tells the script what type of dates to compare. The allowed values are:

  • Around Opt
  • Specific
  • Last Months
  • Previous Days

"Around Opt" tells the script to look before and after the date of an optimization. A value for daysInReport and optimizationDate is required when you use this.

"Specific" tells the scripts that you will tell it the exact start and end dates for the two periods to compare. A value for preStartDate, preEndDate, postStartDate, postEndDate is required when you use this

"Last Months" tells the script to compare last month's data to two months ago.

"Previous Days" tells the script to compare the last x days with the x days before that. The value of x can be specified in daysInReport which is required when you use this.

spreadsheetUrl

This variable tells the script the URL of the Google Spreadsheet where it should store the results. Allowed values are either the full URL to a Google Spreadsheet or "NEW". In the case of "NEW", the script will create a new spreadsheet to store the results.

includeAccountLevel

This tells the script if it should include an account level comparison. Set to 1 for yes or 0 for no

includeCampaignLevel

This tells the script if it should include a campaign level comparison. Set to 1 for yes or 0 for no

includeAdGroupLevel

This tells the script if it should include an ad group level comparison. Set to 1 for yes or 0 for no

includeKeywordLevel

This tells the script if it should include a keyword comparison. Set to 1 for yes or 0 for no

includeAdLevel

This tells the script if it should include an ad text level comparison. Set to 1 for yes or 0 for no

 

Under The Hood

This script compares the values for any account items during two periods of time and reports the percent change. It can be modified to send alerts when there is a big change or it can be modified to try and correlate changes so that it can pinpoint the items that need your attention the most.

Get This Script

You can run this script from the Enhanced Scripts™ section in your Optmyzr account.

Enhanced Script: Account Quality Score Calculator

Purpose

This script provides insight into elements of the AdWords Quality Score that are not available elsewhere in AdWords. It calculates an account weighted average quality score as well as weighted averages for each campaign and ad group. This can help you select which elements of an account to target for optimization. The account level quality score can also be used to measure the impact of the work you do in an account. You can email the daily quality score calculation to yourself to have a historical record of how your performance has changed.

AdWords Account Quality Score in a Dashboard Widget
AdWords Account Quality Score in a Dashboard Widget

Example Use Cases

  • Find the top spending campaigns whose quality scores are lower than the account average and target these for a relevance optimization
  • Store the account level quality score in a spreadsheet for historical charting
  • Email a notification to someone when the quality score of an account passes a threshold set by you
  • If you'd rather not deal with a script, check out our hosted Quality Score Tracker tool

Under The Hood

This script is based on the methodology for calculating weighted quality scores explained by Brad Geddes.

Get This Script

You can run this script from the Enhanced Scripts™ section in your Optmyzr account.