• Ryan Garrow


  • http://www.seoagencysydney.com.au/ virginia

    great article, but have you ever tried to get a good quality score for an SEO company using Ad Words?! It aint gona happen…. Quality score always starts off well for perhaps a month and then down it goes. I understand their philosophy but it really is a bit mean.

  • Bret

    When I follow these instructions:

    “You can simply copy and paste this code into a new script, authorize it and then preview it. The only thing you should modify is to replace “Insert Your Campaign Name Here” with the part of your campaign names that indicates it’s a search network campaign.”

    I get the following error:

    “Parsing error. Please check your selector. (line 7)”

    I’m supposed to just replace “Insert Your Campaign Name” with the name of an active ad campaign; no?!??!

    … I’d really like to get this script going. It’s a GREAT idea.

  • http://www.edgarmirambel.com/ Edgar M.

    Ten Scores have a good presentation on how to improve QS, you might also check out at http://www.tenscores.com/quality-score/#.USaehx3LqSr

  • Ava Naves

    Great article, but I’m getting the same error on line 7 as Bret: “Parsing error. Please check your selector”.

    In my case, I’d like to check the QS for a campaign that is currently paused. If I change the following lines to:

    .withCondition(“Status = PAUSED”)

    .withCondition(“CampaignStatus = ENABLED”)

    .withCondition(“AdGroupStatus = ENABLED”)

    … will the script work? I have already changed the campaign name to match my client’s.

    Thank you so much for such a comprehensive and generous post!

  • http://www.julianthomasdmd.com/ Greenville Dentist

    FIX FOR ERRORS: I got the same errors everyone else was getting. I tried on a different campaign that contained no spaces or special characters and it worked. So I renamed my other campaign to a single word, no spaces and now it works with no errors.

    Thanks for the script – never used one before.

  • Tom Holder

    Brilliant article.

    I’ve read around the subject area with some interest in the past, but didn’t know how to go about writing the script.

    The main script worked perfectly for me, however I’m having trouble when trying to incorporate the ‘Add it to a spreadsheet’ script. I get the following error…

    ReferenceError: “accountQualityScore” is not defined. (line 51)

    Can anyone help me with a fix for this?

    Thanks in advance.

  • http://www.julianthomasdmd.com/ Greenville Dentist

    Tom – had the same problem. The extra code has to go before the last (or next to last) close bracket }. Move it up and try that.

  • Tom Holder

    Ideal, looks to have worked fine.

    Thanks for the reply.

  • Justin Lugbill

    When I paste the code in, I am getting a parsing error on line 7. Any tips? Also, if you want to get the weighted QS segmented by campaign, can you do that, or do you just have to do multiple scripts?

  • http://www.julianthomasdmd.com/ Greenville Dentist

    See other comments below. Basically, try a campaign name with no spaces or special characters.

  • http://www.toptiertools.com/ Frederick Vallaeys

    Thanks to Greenville Dentist for helping with all the troubleshooting!

    You can indeed remove that entire line and then it will analyze EVERY campaign in your account. That runs the risk of including Display campaigns though so I prefer to keep this line. If you add single quotes around the campaign name or you include just a single word, it should work.

  • Justin Lugbill

    Is there any way to get the data into a specific spreadsheet tab? When I use the tab specific URL, it still is input into the first tab of the spreadsheet.

  • http://tenscores.com/ Chris

    Great article Fred. Tracking QS was a problem I desperately needed a solution to a few years ago.

    That’s why I created http://tenscores.com

    Within 30 seconds of signing up, it will track for you:

    – Account QS
    – Campaigns QS
    – Ad Groups QS
    – Keywords QS

    Weighed by impressions. No hassle with scripts or anything.

    You can then plot the QS evolution against every other other metrics such as CPC, CTR, Costs, First Page Bids, etc…

    It even evaluates how much in terms of $$$ you’re being penalized with low QS and how much of a discount you’re getting with high QS.

    It also shows you were to start optimizing, and we’re bringing in recommendations for advertisers who need guidance in optimizing QS.

    Our users love it!

    Anyways, that’s enough for the pitch…

    It’s not perfect yet imo, but woud love your feedback on how we can improve it, ping me at chris(at)tenscores.com if interested. Anybody reading this can send me a quick email if they want to take it for a spin.

    Or just sign up at: http://tenscores.com

    Did I mention it only take about 30 seconds to set up?

  • sheila219

    up to I saw the check for $8910, I didn’t believe …that…my friends brother woz like truly receiving money part-time on-line.. there friends cousin started doing this for less than 14 months and as of now cleard the debts on their place and purchased a new Acura. I went here, jump15.comCHECK IT OUT

  • Justin Lugbill

    I was able to install this for one client. However, when I copy and paste (changing the campaign name), I now get a NaN response. I have tried this for multiple campaigns, and still get the same result. What I can’t figure out is, why did it work the first time, and not now. Is anyone else having problems?

  • David Kinney

    great article and code! However, I’m having trouble running this script for multiple (but not ALL) campaigns at once. How do I add more than one campaign name into the “Insert Your Campaign Name” field?

  • Joyce

    Great post! I can’t code but got this working, i wonder, how ever, how i could track several campaigns in 1 spreadsheet? Like have: date, campaign 1, campaign 2, campaign3 in the first line. Making a seperate spreadsheet for my all my campaigns is a bit much and i’d like to see it by campaign, not by account. Ive tried to add more campaign names with + but its not having it, neither do i know how to get the data for the next campaign in line into column C instead of dumping it on the first empty line in column A and B. Could anyone explain this? Again, great post! i finally dared to touch the script function :)

  • Russell Savage

    One thing to keep in mind that according to the AdWords Scripts API Limits ( https://developers.google.com/adwords/scripts/docs/limits ), a single iterator can return at most 50000 elements. That means that the line .withLimit(100000) doesn’t really do too much. This script will only process the top 50000 keywords in an account ordered by impressions.

  • http://deepfootprints.co.uk/ Joel Chudleigh

    Another incredible article Frederick – thanks

    Got the script working fine but struggling with the spreadsheet bit. i added in the code

    var date = new Date(); var spreadsheetUrl = “spreadsheet name here”; var qualityScoreSheet = SpreadsheetApp.openByUrl(spreadsheetUrl).getActiveSheet(); qualityScoreSheet.appendRow([date, accountQualityScore]);

    before the closing } but I get an error message.

    “Invalid argument: url (line 46)”

    Line 46 contains the above code that has the spreadsheet detail in it.

    Any help that you can offer would be greatly appreciated as unless I can get this into a spreadsheet then it will not be so actionable.

    Finally – is this script for just one campaign or for the whole account?

    The post talks about account level QS but then in the code for the script you instructed us to enter a specific campaign name. Is it the QS for that campaign or the whole account?

    If it is just for that campaign then how do we get it for the whole account? Ideally I would like to see the data in a spreadsheet by campaign with a total account level at the bottom.

    Don’t ask for much do I…

  • Robert Chapman

    I can get the script working….but now I’m wondering what do I need to do to actually improve the QS across the account. Any tips appreciated!

  • Mark Churchill

    First a big thankyou to Frederick, this is a metric I really want to track

    Just one Q: Am I right in thinking the effect of setting this up as described above is that you’d get a *daily* email showing a calculation based on the *last 30 days* each time?

  • Trevor Fox

    Thanks of the script Frederick,
    Single quotes inside the quotes, eg: “‘My Campaign Name'” solved my parsing error.
    I like spreadsheets, but I LOVE automation.

  • http://twitter.com/deepfootprints Joel Chudleigh

    In case anyone is interested we found a way to build a script that does the same as above for the account level but also tracks campaign and ad group level quality score. it adds it all to a spreadsheet and emails you a daily report: http://deepfootprints.co.uk/online-marketing/ppc/adwords-script-to-track-quality-score-on-account-campaign-ad-group-level/

  • Ade

    Did you solve the NaN response? I’m getting the same too! Please let me know if you managed to solve it!