Purpose

The purpose of this script is to provide insight into the key performance metrics for

  • different keyword match types (exact, phrase, exact)
  • keywords of differing word lengths (1-word, 2-words, ..., 10-words)
  • query match types (broad, broad (session-based), exact, exact (close variant), phrase, phrase (close variant))
  • query lengths (1-word, 2-words, ..., 10-words)

The script produces a Google spreadsheet with aggregated metrics for each of the keyword and query types.

This script can be enabled from the Enhanced Scripts™ section of your Optmyzr account.

Purpose

This Enhanced Script™ for AdWords helps find and pause destination URLs that are either broken, or lead to landing pages for out-of-stock products. By automatically pausing the keywords or ads associated with bad landing pages, you'll avoid wasting money on AdWords clicks that have no chance of converting.

The tool checks for 404 errors first. If the page loads fine, it scans the content for the presence of a phrase that indicates it may be a poor landing page, for example "out of stock" or "temporarily backordered". You can specify which phrases the tool monitors.

 

Example Use Cases

  • Retailers can pause ads when a product goes out of stock
  • Pause ads for products that have a low review score based on user comments
  • Delete ads that lead to broken landing pages

Under The Hood

  • This script goes through every item that has a destination URL in the specified portion of your account. You can specify whether you want to check ad URLs, keyword URLs, or both. You can also limit the tool to only evaluate campaigns whose name includes a phrase you specify. It first checks if the page loads correctly without a 404 error. If the page does not load correctly, it pauses the item or just notifies you depending on your settings. It then loads the content of the landing page and checks whether it contains at least one of the specified phrases of undesirable text. If that text is found, it can disable the item or notify you.
  • This script will only pause items, it cannot delete anything.
  • Optionally, you can assign a label in AdWords to any keyword or ad that gets paused, making it easier to find these back later, for example, when you've fixed the 404 error and are ready to resume your ads.
  • The script sends an email when it is finished checking landing pages.
  • The script puts all URLs it has checked in a Google Sheet, making it easy to see what was checked, and what URLs had 404 errors or issues with the content.
  • The script is able to follow redirects in your destination URLs but if you want to test whether your redirects are compatible, take a look at our FAQs for more details.

This script can be enabled from the Enhanced Scripts™ section of your Optmyzr account.

Purpose

This AdWords Enhanced Script™ is an adaptation of Google's Anomaly Detection script. We have adapted it to work in an MCC account, aggregate all settings and outputs in a single Google Sheet and adding a color coded dashboard to complement email notifications.

Install the Enhanced Script™

Settings and Customizations

  • Change the number of weeks used for the running average against which current performance is compared.
  • Change the sensitivity for when an alert should be sent
  • Add a Cyfe.com dashboard endpoint to send data to your dashboard

Get This Script

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

Purpose

This AdWords Script generates a Google Sheet with a list of all the active keywords in your account that have a Quality Score lower than a predefined Quality Score. It also provides the option to pause these keywords.

This script provides other metrics like cost, impressions etc. for a given period of time to help you gauge the performance of keywords in your account prominently.

 

Example Use Cases

  • Get a list of keywords that fall below a certain quality score and optimize them
  • Do a regular clean up of your AdWords account by pausing keywords with very low Quality Scores

Settings and Customization

  • EMAILADDRESS:  tells the script the email addresses that should get a notification when it finishes creating the spreadsheet. To send to multiple recipients, separate the email addresses with a comma. Do NOT include the name of the person... only include their email address.
  • QualityScore: defines the threshold Quality Score for the keywords to be identified.
  • Pause: To pause keywords with a lower quality score, change the value of the field Pause to true.
  • Date_Range:  tells the script the date range to include in the calculation. E.g. 'LAST_30_DAYS'. You can also use the format 'YYYYMMDD,YYYYMMDD'.

Get This Script

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

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

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

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.

 

Limit AdWords Budget

Purpose

This AdWords Script can automatically pause campaigns, ad groups, and keywords when they reach a predefined spend threshold and re-enable them the following day.Limit AdWords Budget

Example Use Cases

  • Limit the maximum cost for a new keyword or ad group you are testing
  • Set different daily spend limits for campaigns so that it can spend a different amount on weekdays vs weekends

Settings and Customizations

You have to create two copies of this script and place them both in your AdWords account. The first runs hourly and checks if spend today for any campaign, ad group, or keyword with the label 'Limit Daily Spend' is greater than 100, and if so, pause it.

The second copy of this script should be set to run every morning between midnight and 1am and enables any campaigns, ad groups, or keywords with the label 'Limit Daily Spend'. This is needed so your items that got paused by the hourly script are automatically unpaused every day.

The settings below let you customize whether the script works on campaigns, ad groups, keywords, or ads; the label name you are using to identify items that should be evaluated; the maximum cost; the time range to evaluate; and the email to notify:

  • scope - accepted values are "Campaigns", "Ad Groups", "Keywords", "Ad Text"
  • maxCost - set this to the maximum cost for each item.
  • dateRange - the amount of time in which the item is allowed to accrue no more than the maxCost - TODAY, LAST_7_DAYS, LAST_14_DAYS, LAST_30_DAYS
  • labelName - set this to the name of the label you are applying to the items to be included
  • email - set this to the email address to get a notification when the script makes changes

Download Script

Purpose

The purpose of this AdWords Script is to bring AdWords performance on mobile devices in line with performance on desktop + tablet. With the introduction of Enhanced Campaigns in Google AdWords, it is no longer possible to have a separate campaign for mobile; now mobile is part of a regular campaign and bids are controlled with a mobile bid multiplier that can be set from -100% to 300%. This script sets the mobile bid adjustment to bring mobile performance in line with the results of desktop+tablet.

Download Script

Example Use Cases

  • Calculate and set the campaign level mobile bid modifier for all your AdWords campaigns
  • Calculate the ad group level mobile bid modifiers and email a spreadsheet with recommended changes that can be applied through AdWords Editor

Acknowledgments

This script was written by Russell Savage of FreeAdWordsScripts.com. As such, this script is part of the free section of our AdWords Scripts Library.

This script uses the methodology explained by Kohki Yamaguchi on MarketingLand.com to automate setting the appropriate mobile bid modifier.

 

Settings and Customizations

Set the date range to use for calculating multipliers. You can also use the format YYYYMMDD,YYYYMMDD

  • DATE_RANGE: tells the script the date range to include in the calculation. E.g. 'LAST_30_DAYS'. You can also use the format 'YYYYMMDD,YYYYMMDD'.
  • LEVEL: Set to Campaign if you want to calculate at the Campaign level and have the changes made by the script or set to AdGroup if you want to calculate at the AdGroup level and make the changes manually in AdWords Editor. Making changes at the Ad Group level is not supported by AdWords Scripts as of the time of publication. When that becomes available, we'll update this script.
  • TO: set to the email addresses that should receive the file with recommended changes if running the script at the AdGroup level. E.g. ['example@example.com','example2@example.com'].
  • METRIC: Set to ROAS to use Return On Ad Spend for the calulcation or set to RPC to use Revenue Per Click for the calculation. To understand the difference refer to the explanation on MarketingLand.com.
  • MINIMUM_BID_ADJUSTMENT: The lowest allowed bid adjustment to set or suggest, e.g. 0.5 for a -50% bid modifier.
  • MAXIMUM_BID_ADJUSTMENT:  The highest allowed bid adjustment to set or suggest, e.g. 3 for a +300% bid modifier.
  • DECIMAL_PLACES: Use this to adjust the number of decimal places to keep for calculations, e.g. 3.

Under The Hood

This script looks for the difference in ROAS or RPC performance between mobile and desktop+tablet. It analyzes keyword level data and applies either a cost or click-based weighting to the suggested multiplier.

  • Keywords that have no conversions are excluded from any calculations.
  • For keywords that have mobile conversions but NO desktop+tablet conversions, a 300% bid increase is used while doing the weighted calculation.
  • If there are no mobile conversions, but there are desktop+tablet conversions, a 100% bid reduction is used in the weighted formula.
  • For keywords that have both mobile and desktop+tablet conversions, the ratio of these is used in the weighted calculation.

Download Script

Turn a spreadsheet into AdWords ads

Purpose

This AdWords Script automatically creates ad groups, ad texts, keywords and labels based on your template and a spreadsheet of your data. It can be used to turn a product database into an AdWords account or it can be used as an alternative to the AdWords interface or the AdWords Editor for creating new ads. Because the code can be easily modified, it is also more flexible than most solutions that involve the AdWords API.

Turn a spreadsheet into AdWords ads
Turn any Google Spreadsheet into AdWords ads using the template you define in our AdWords Script.

Download Script

Example Use Cases

This AdWords automation is useful for a wide range of use cases:

  • Advertisers who already have a spreadsheet of all their services and products can use this to build out an account with great structure that will benefit your quality score.
  • Agencies who work with a lot of clients in the same vertical and who have a well defined best practice for building out new accounts can use this to speed up new account creation.
  • Advertisers whose inventory changes frequently can use this to tie their ad creation directly to their backend.
  • Agencies who create Google Merchant Feeds can use this to add a value-add service where they use the feed to create AdWords ads for their clients.

Settings and Customizations

  • SOURCEDATA tells the script the location of the Google Spreadsheet that contains your data.
  • NAMEOFDATASHEET tells the script the name of the sheet in the spreadsheet that contains the data. A spreadsheet can contain multiple sheets and this lets the script know which one to use.
  • EMAILADDRESS tells the script the email addresses that should get a notification when it finishes creating ads. To send to multiple recipients, separate the email addresses with a comma. Do NOT include the name of the person... only include their email address.
  • ACCOUNTNAME is used by the script to create the subject line of the email it sends. When you're using this script on multiple accounts, it makes it easier to know which account each email notification is about.

Under The Hood

The script will automatically add a new column called "Added to Accounts" to your Google Spreadsheet. When it creates an ad using this row of the spreadsheet, it adds the account ID in this column. The next time the script runs, it will skip this row. This is useful to prevent adding duplicate ad texts and to make the script faster, for example by only making ads for rows you added to the sheet since you last ran it.

 How To Use The Script To Generate Ads Automatically



Get This Script

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

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.