Landing Page Watch Dog


Automatically check your AdWords account for landing pages that are broken, either because they don't load, contain 404 server errors or contain text that indicates a problem of another sort. This script generates a spreadsheet with a list of all the potentially broken landing page URLs used by ads or keywords in your account and allows you to optionally delete or pause any of these items.

Get a spreadsheet that shows all your landing pages that have potential  problems.
Get a spreadsheet that shows all your landing pages that have potential

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

Settings and Customizations


This setting tells the script if you want to check only keyword destination URLs, only ad destination URLs or all destination URLs. Valid options are:

  • all
  • kw
  • ad


This setting lets you tell the script to only evaluate a portion of your account. It uses the AdWords Script syntax for the .withCondition clause. If you don't know what that means, don't worry, these examples should make it clear:

  • To select everything in the account, you can use the line "CampaignName CONTAINS ''" and that's what the script is already set to use if you don't change it.
  • To select all the destination URLs for campaigns that include the word 'search', you could use the line "CampaignName CONTAINS_IGNORE_CASE 'search'"


This tells the script what text to search for on your landing page. For example, you could tell it to look for the phrase "out of stock". If you want to search for multiple phrases, put a comma between them but do NOT add a space after the comma, for example "out of stock,low inventory" tells the script to look for the phrase "out of stock" or "low inventory". When at least 1 of these phrases is matched, the script wil report this and delete or pause the item as per your request. The search is case insensitive so use lower case for this setting.


Set this setting to 1 so that the script will just report about problems. If set to 1, the script will NOT try to delete or pause anything in the account. We recommend you set this to 1 the first few times to make sure the script is finding only the items you want before you start to delete or pause these items automatically.


This setting tells the script to disable any item it finds that has a destination URL that is broken or that contains one of the phrases you are looking for on the page. When set to 1, it disables what it finds.


This setting does the opposite of the setting 'disable'. It enables any items that have a destination URL where the phrases you are searching for are found. This can be useful to automatically re-enable ads when a product comes back into stock. Set this to 1 to enable items. Note that you should never set both 'disable' and 'enable' to 1.


This setting tells the script the URL of the Google Spreadsheet where it should store its findings. You can either enter the URL or put in the text "NEW" to have the script automatically create a new spreadsheet every time it runs.


This setting is where you tell the script what you call the account. It's just used for notifications and for naming the spreadsheet so that you can more easily find what you're looking for. So go ahead and name it something that makes sense to you but avoid special characters like slashes, dollar signs and anything else you wouldn't normally use for file names.

Under The Hood

This script goes through every item that has a destination URL in the specified portion of your account and 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 also loads the content of the landing page and checks whether it contains the specified phrases of text. If the text is found, it enables or disables the item or notifies you based on your settings.

This script will only pause or unpause items, it cannot delete anything.

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 instructions.

Download Script


Mcc Version of Landing Page Watch Dog:

The MCC (My client center accounts) version of this AdWords script checks broken landing pages runs for all or specific child accounts. It has the same functionality as mentioned above.

Additional Settings and Customization:

In addition to the above settings, you can customise it to choose the child accounts you want to run it for under your MCC account.


This setting tells the script the number of accounts you want to run this script for. When set to default i.e. blank, the script checks the broken landing pages for all the child accounts under the AdWords MCC account. To run for specific child accounts, you can add the AdWords account id of those child accounts separated by a comma.

Download Mcc Script

Tip: AdWords places a limit of 30 minutes on MCC scripts as well. If you have too many child accounts in the MCC then create multiple versions of this script in the MCC account and pick a different set of child accounts for each.

12 thoughts on “Landing Page Watch Dog

  1. I'd like to use this on a MCC level, now the script gives an error, what should be changed to use this for MCC scripts?

  2. Hi Roy, we'll follow up on email with you to discuss the feasibility of converting this into an MCC script.

  3. Is there anyway we can get the campaign and ad group data for the bad urls? Also, it seems to be returing some urls that are functioning correctly. Any idea why?

  4. Hi there, script seems to to his job quite great. What can I ad to the script, to get it send by email?

    1. Hi Jacqueline,

      We'll need to add a few lines of code to make this send an email with the list of issues. I'll put this on our todo list and we'll let you know when it's done, hopefully in a week or two...

      Frederick and the Optmyzr team

      1. Hi Jacqueline,

        I added the email capability in the Enhanced Script version. Now it sends an email that lists how many URLs were checked and how many passed/failed the checks. Hope that helps! Drop us a line through the support system if you need anything else. We usually get to those questions more quickly :)


  5. Hey guys, I'm trying to get the MCC version script to work but only on selected accounts and I'm getting this error "One of the conditions in the query is invalid. (line 109)" any ideas?

  6. Hi,
    Using the MCC script version, I'm getting one error as follows:

    ReferenceError: "MccApp" is not defined. (line 77)

    Should I be dropping the MCC Account number in there, or is there some other problem?


    1. Hi Andy,

      So this error is caused when an MCC script is used in a client account directly. MCC scripts need to be put in a special MCC script section that can be accessed in your MCC account in AdWords. In case you have you still face any issues, please do write to us on support at optmyzr dot com.


Comments are closed.