{"id":4391,"date":"2017-04-20T00:07:36","date_gmt":"2017-04-19T18:37:36","guid":{"rendered":"http:\/\/www.karooya.com\/blog\/?p=4391"},"modified":"2019-05-31T17:10:34","modified_gmt":"2019-05-31T11:40:34","slug":"adwords-script-find-poor-performing-ads","status":"publish","type":"post","link":"https:\/\/www.karooya.com\/blog\/adwords-script-find-poor-performing-ads\/","title":{"rendered":"AdWords Script to Find Poor Performing Ads"},"content":{"rendered":"<p class=\"lead\">&nbsp;<\/p>\n<p><em><strong>Update on 19th July, 2018:<\/strong> This script now supports Responsive Search Ads as well.<\/em><\/p>\n<p><em><strong>Update on 29th Nov, 2018:<\/strong> This script now enables assigning a label to poor performing ads.<\/em><\/p>\n<p><strong>Update on 29th January, 2019:<\/strong> <em>This script now supports 3rd Headline and 2nd Description for Expanded Text Ads.<\/em><\/p>\n<p>&nbsp;<\/p>\n<p>All ads are not created equal. When you create multiple ads in an ad group, there are certain hypotheses you go with. You may wish to emphasize on call to action in one ad. You may highlight different USPs in different ads. You may want to talk about the offers on certain products and services. \u00a0You want to put those ads out there see which ones resonate with your audience the most. You may not know which ads will perform the best or how much better the best ad(s) can perform compared to other.<\/p>\n<p><!--more--><\/p>\n<p>&nbsp;<\/p>\n<a href=\"https:\/\/www.karooya.com\/blog\/wp-content\/uploads\/2017\/04\/ad-performance-adwords-script.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4400\" src=\"https:\/\/www.karooya.com\/blog\/wp-content\/uploads\/2017\/04\/ad-performance-adwords-script.jpg\" alt=\"ad performance adwords script\" width=\"598\" height=\"384\" \/><\/a>\n<p>&nbsp;<\/p>\n<p>In an AdWords account, running\u00a0poor performing ads can drag your performance in variety of ways.<\/p>\n<ul>\n<li>Your budget is being wasted on ads that are not bringing\u00a0enough customers.<\/li>\n<li>Winning ads are starved of impressions.\u00a0Better ad is right\u00a0there, but is not being enough chance.<\/li>\n<li>If your competitors are running their best ad, they can\u00a0raise their bids and in turn raise your CPCs as well.<\/li>\n<\/ul>\n<p>Having multiple ad copies for A\/B testing and rotating the ads delivery is a common practice to get better ads being shown frequently. But, making sure that a methodology is in place to pause the bad ads is another practice that you should\u00a0follow. While there is no benchmark set for the number of ad copies that must run\u00a0in an ad group, knowing which ones are eating away major chunk of your ad budget without delivering is worth knowing.<\/p>\n<p>&nbsp;<\/p>\n<p>We have come up with an AdWords script to help you analyze\u00a0your account for the\u00a0winning and poor performing ads.<\/p>\n<p>&nbsp;<\/p>\n<p>This script pulls ads performance data from your AdWords account and recommends one of the following &#8211; (a) You should pause the ads that are performing poorly. (b) You can pause all ads except the ones that are proven to be the winners. (c) You can reactivate some of your better performing ads. The ads will be highlighted as per following color code<\/p>\n<p>&nbsp;<\/p>\n<a href=\"https:\/\/www.karooya.com\/blog\/wp-content\/uploads\/2017\/03\/adwords-performance-script-params.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4244 size-full\" src=\"https:\/\/www.karooya.com\/blog\/wp-content\/uploads\/2017\/03\/adwords-performance-script-params.png\" alt=\"adwords performance script params\" width=\"633\" height=\"108\" \/><\/a>\n<p>&nbsp;<\/p>\n<p>When the script is complete, it will create a folder named &#8220;Ads Performance Reports&#8221; in your <a href=\"https:\/\/drive.google.com\/drive\/my-drive\">Google Drive<\/a>. \u00a0The drive will contain the result sheet which has same name as your\u00a0AdWords account&#8217;s name along with the Customer ID for that account.<\/p>\n<p>&nbsp;<\/p>\n<p>Right at the top, you will get the summary of the recommendations. The summary shows an extrapolation of\u00a0improvement you can achieve if you run only your best ads. (Click on the image to view bigger, easily readable image.)<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<a href=\"https:\/\/www.karooya.com\/blog\/wp-content\/uploads\/2017\/04\/campaign-and-account-performance-summary-2.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4392 size-full\" src=\"https:\/\/www.karooya.com\/blog\/wp-content\/uploads\/2017\/04\/campaign-and-account-performance-summary-2.png\" alt=\"\" width=\"1305\" height=\"362\" \/><\/a>\n<p>&nbsp;<\/p>\n<p>After the summary, you will see recommendations for each ad group. The\u00a0ad that delivers highest number of conversion for given impressions is chosen as the winner.\u00a0Statistical significance is also shown for the winning ad.<\/p>\n<p>&nbsp;<\/p>\n<a href=\"https:\/\/www.karooya.com\/blog\/wp-content\/uploads\/2017\/04\/winning-ad-performance-2.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4445 size-full\" src=\"https:\/\/www.karooya.com\/blog\/wp-content\/uploads\/2017\/04\/winning-ad-performance-2.png\" alt=\"AdWords script to find best ads\" width=\"1302\" height=\"284\" \/><\/a>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Taking Action on the Results<\/strong><\/p>\n<p><del>The script will not make any changes to your account. Once you\u00a0run the script, you will get a result sheet as shown above. Now,\u00a0you can use the AdWords web interface or the AdWords Editor to pause the ads that are not performing well.<\/del><\/p>\n<p>The aforementioned is no longer applicable. Make a note of the following update<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Update on 29th Nov, 2018.<\/em><\/span><\/p>\n<p>This script now has the option to assign a label to poor performing ads. Advertisers can filter the ads using this label, compare performance of the labeled ads with other ads and if the labeled ad is indeed performing poorly, pause it or take any other necessary action.<\/p>\n<p>Steps to review the recommendations.<\/p>\n<ul>\n<li>Go to the &#8220;Ads&#8221; tab in your account.<\/li>\n<li>Filter the Ads with the label created for poor performing ads.<\/li>\n<li>Sort the ads in descending order of conversions (or any other metric important for you, such as Ad Spend, Clicks, Impressions)<\/li>\n<li>For each ad, visit the ad group in which that ad exists.<\/li>\n<li>Check all the ads in that ad group.<\/li>\n<li>If the labeled ad is performing poorly to other ads in the ad group, you may pause the ads.<\/li>\n<li>You need to repeat this task.<\/li>\n<li>We strongly recommend you to verify that each ad identified as poor performing is indeed performing poorly and you want to pause it. Pausing ads in bulk, without verification, may result in delivery or performance issues.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h1><strong>How to use the Ad Performance <span class=\"nanospell-typo\" data-cke-bogus=\"true\">AdWords<\/span> Script?<\/strong><\/h1>\n<p><br data-cke-eol=\"1\" \/>Now that you know what the <span class=\"nanospell-typo-disabled\" data-cke-bogus=\"true\">AdWords<\/span>\u00a0script can do, let\u2019s talk about the script. <a href=\"https:\/\/www.karooya.com\/resources\/aw-script\/ads-performance-report.js\" target=\"_blank\" rel=\"noopener noreferrer\">You can get this script here<\/a>. If you are in a hurry, run this script and see the results in your Google Drive in the folder named &#8220;Ads Performance Reports.&#8221; You can schedule this script to run every week or every month so that it becomes part of your routine. If you are scheduling the script, you should change the SEND_EMAIL_ALERT variable.<\/p>\n<p>&nbsp;<\/p>\n<p>For those who want to understand more about this script, here we go. \u00a0Here are the variables that you can change to customize it to your requirement.<\/p>\n<ul>\n<li><strong>REPORTS_FOLDER_PATH:\u00a0<\/strong>This is the name of the folder that gets created in your Google drive. By default the name is &#8216;Ad Performance Report&#8217;. If you wish to change the name you can do so here.<\/li>\n<li><b>MAX_ADGROUPS :<\/b>This variable specifies number of top ad groups to be included in the report. \u00a0By default, this report is generated for <strong>top 100 ad groups in the account<\/strong>, by spend.That is, the report is generated for top 100 ad groups, by spend. You can increase this limit, if you are running a large account. From our experiments, we have see that it takes approximately one second to process one ad group. Increasing this limit will make the script run longer. A script can run for a maximum of 30 minutes, which means, about 2000 ad groups will be processed at a maximum.<\/li>\n<li><b>DATE_RANGE<\/b>: You can use some pre-defined ranges like LAST_30_DAYS or LAST_14_DAYS. By default, the script will get the data for last 30 days.<\/li>\n<li><b>USE_CUSTOM_DATE_RANGE<\/b>: If you want a particular date range to be used then, set this flag to \u201ctrue\u201d and modify the START_DATE and END_DATE to indicate the date range. The date format is \u201cyyyy-mm-dd\u201d aka \u201cYear-Month-Date.\u201d For example, if you want a report for 3 months from 1st January, 2017, the START_DATE would be \u201c2017-01-01\u201d and END_DATE would be \u201c2017-01-31.\u201d \u00a0This is useful if you want to use\u00a0historical data for better accuracy.<\/li>\n<li><strong>SEND_EMAIL_ALERT:\u00a0<\/strong>If you wish to receive an e-mail alert for any new recommendation then set the flag to true which is by default set as false. \u00a0This is useful if you have\u00a0running script at regular interval via a schedule.<\/li>\n<li><strong>EMAIL_RECIPIENT:\u00a0<\/strong>If the above variable\u00a0is set to true, then you need to add the e-mail id on which you wish to receive the alerts about new recommendations.<\/li>\n<li><strong>IGNORE_PAUSED_CAMPAIGNS, IGNORE_PAUSED_ADGROUPS, IGNORE_PAUSED_ADS<\/strong>:\u00a0These flags indicate to ignore paused campaigns, ad groups and ads. By default, campaigns and ad groups are set to true i.e. all the paused campaigns and ad groups are ignored, however, ads are set as false i.e., all the paused ads with impressions are looked into too.<\/li>\n<li><strong>MIN_CONFIDENCE_LEVEL_TO_DECLARE_WINNER_AD:\u00a0<\/strong>The default value is set as 0.9 or 90% to define a winning ad, if you wish to alter this value you can do so here. If you want a higher confidence of, say 95%, set the value to 0.95.<\/li>\n<li><b>IS_MCC_ACCOUNT<\/b> : This flag is to indicate whether you will be running this script at MCC-level. By default, it is set to false. Change it to \u201ctrue\u201d if you want to use for all the linked accounts in your MCC account. The results for each account will be stored in a separate sheet. Be careful, if you have many many accounts.<\/li>\n<li><strong>FILTER_ACCOUNTS_BY_LABEL<\/strong>\u00a0: If your MCC account has tons of linked accounts, you may not want to run this script for all the accounts. In that case, turn this flag to \u201ctrue\u201d and then specify the label with ACCOUNT_LABEL_TO_SELECT variable. Only the accounts with the specified label will be analyzed to generate this report.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><strong><em>Update on 19th July, 2018<\/em>:<\/strong> This script now supports Responsive Search Ads.\u00a0 Since Responsive Search Ads are still in Beta,\u00a0 we strongly advise you run them along with Expanded Text Ads in each ad group. BTW, check out our <a href=\"https:\/\/www.karooya.com\/responsive-search-ad-preview-tool\">Responsive Search Ads Preview Tool<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<p>Once again, here is the link to\u00a0<a href=\"https:\/\/www.karooya.com\/resources\/aw-script\/ads-performance-report.js\" target=\"_blank\" rel=\"noopener noreferrer\">Ads Performance AdWords script<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<p>Feel free to send us an email (support AT karooya.com) if you have any queries for this AdWords script.<\/p>\n<p>&nbsp;<\/p>\n<h4>If you are looking for more, here are the\u00a0<a href=\"https:\/\/www.karooya.com\/blog\/category\/karooya-adwords-script\/\">AdWords scripts published by Karooya<\/a>.<\/h4>\n<p>&nbsp;<\/p>\n<p><strong>Related Links:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/www.karooya.com\/blog\/raise-your-quality-score-with-our-adwords-script\/\" target=\"_blank\" rel=\"noopener\">Raise your quality score with our Adwords script<\/a><\/li>\n<li><a href=\"https:\/\/www.karooya.com\/blog\/3-ways-to-track-device-performance-in-adwords\/\" target=\"_blank\" rel=\"noopener\">3 ways to track device performance in Adwords<\/a><\/li>\n<li><a href=\"https:\/\/www.karooya.com\/blog\/important-adwords-scripts-released-year\/\" target=\"_blank\" rel=\"noopener\">Important Adwords scripts released in 2016<\/a><\/li>\n<li><a href=\"https:\/\/www.karooya.com\/services\" target=\"_blank\" rel=\"noopener\">API\/Script development services<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Update on 19th July, 2018: This script now supports Responsive Search Ads as well. Update on 29th Nov, 2018: This script now enables assigning a label to poor performing ads. Update on 29th January, 2019: This script now supports 3rd Headline and 2nd Description for Expanded Text Ads. &nbsp; All ads are not created&#8230;  <a href=\"https:\/\/www.karooya.com\/blog\/adwords-script-find-poor-performing-ads\/\" class=\"more-link\" title=\"Read AdWords Script to Find Poor Performing Ads\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ub_ctt_via":"","footnotes":""},"categories":[12,14,19],"tags":[],"class_list":["post-4391","post","type-post","status-publish","format-standard","hentry","category-expanded-text-ads","category-karooya-adwords-script","category-responsive-search-ads"],"featured_image_src":null,"author_info":{"display_name":"Shashikant","author_link":"https:\/\/www.karooya.com\/blog\/author\/shashi\/"},"_links":{"self":[{"href":"https:\/\/www.karooya.com\/blog\/wp-json\/wp\/v2\/posts\/4391","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.karooya.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.karooya.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.karooya.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.karooya.com\/blog\/wp-json\/wp\/v2\/comments?post=4391"}],"version-history":[{"count":27,"href":"https:\/\/www.karooya.com\/blog\/wp-json\/wp\/v2\/posts\/4391\/revisions"}],"predecessor-version":[{"id":8846,"href":"https:\/\/www.karooya.com\/blog\/wp-json\/wp\/v2\/posts\/4391\/revisions\/8846"}],"wp:attachment":[{"href":"https:\/\/www.karooya.com\/blog\/wp-json\/wp\/v2\/media?parent=4391"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.karooya.com\/blog\/wp-json\/wp\/v2\/categories?post=4391"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.karooya.com\/blog\/wp-json\/wp\/v2\/tags?post=4391"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}