Saturday, 29 December 2012

Google Adwords Optimization Strategies 1. - Ad text Variations

A very basic optimization strategy is adding more Ads to an Ad Group.

Sooner or later one of the ads will perform better than the other(s) so that if you run only the better performing ad you get more visitors/conversions. Also after maybe you can create an even better performing ad... and so on.

My first (basic & slow) script is checking your whole account for Ad Groups without more Text Ads (Adwords usually highlight the Ad Group without an Ad Text, and also this script will list those Ad Groups too).

The problematic Ad Groups will be listed on the Logger Output and you'll get an email about the number of problematic Ad Groups... and you can start adding shinny new text ads to make a very basic A/B testing.

Yeah, I know the script is slow and not optimized (if I not group the output by Campaigns it could run faster), however it could help you a lot especially if you have at least 100 Ad Groups or even more...


//----------------------------------------------
//÷÷÷ Created by Erno Horvath                +++
//÷÷÷ http://adwords-scripts.blogspot.co.uk  +++
//----------------------------------------------

// Comma-separated list of recipients.
var RECIPIENT_EMAIL = 'example@example.com';

//This scipt list all the Ad Groups with only one Ad Text.
//A/B testing for Ads is essential to improve CTR
function main() {
  var consoleText = "";
  var numOfAdGroups = 0;
  var justOneAdText = 0;

  //Get All Enabled Campaigns
  //It's just because to help list the AdGroups groupped by Campaign
  //The list will be ordered by Impressions to see the most important Ad Groups first
  var campaignIterator = AdWordsApp.campaigns()
      .forDateRange("LAST_30_DAYS")
      .orderBy("Impressions DESC")
      .withCondition("Status = ENABLED")
      .get();
  
  
  while (campaignIterator.hasNext()){
    var campaign = campaignIterator.next();
    
    //Get All Enabled AdGroups within the Campaign
    var adGroupIterator = AdWordsApp.adGroups()
      .withCondition("CampaignName CONTAINS_IGNORE_CASE '" + 
       campaign.getName() + "'")
      .withCondition("Status = ENABLED")
      .get();
  
    
    while (adGroupIterator.hasNext()){
       
      var adgroup = adGroupIterator.next();
      var adTextNum = 0;
      //Get All Enabled Ad Text within the Ad Group
      var adIterator = AdWordsApp.ads()
      .withCondition("AdGroupName CONTAINS_IGNORE_CASE '" + 
                  adgroup.getName() + "'")
      .withCondition("CampaignName CONTAINS_IGNORE_CASE '" + 
                  campaign.getName() + "'")
      .withCondition("Status = ENABLED")
      .withCondition("Type = TEXT_AD")
      .get()

        
       while (adIterator.hasNext()) {
          var ad = adIterator.next();
          //Increase the adTextNum if a Text Ad found.
          adTextNum++; 
       
       }
       
      if (adTextNum < 2) {
      
         Logger.log( 
           adgroup.getCampaign().getName() + 
           " " + 
           adgroup.getName() + 
           " has one or less active Ad Text."
         );
         justOneAdText++;
        
         };
      }
       
       
     }
  //
  Logger.log('Ad Text report finished.');
  MailApp.sendEmail(RECIPIENT_EMAIL, 
           'New Ad Text Report', 
           'We have found' + 
           ' ' + 
           justOneAdText + 
           'problem(s). Please check the log for more details.' );
}


Please don't hesitate to share at the comment section how many Ad groups you have found without two or more Ad texts :)

Intro

I'm working with Google Adwords more than five years now and this the second time when I'm getting as exited as the first time I started to use Adwords. You can guess it's in the name of the blog: Google Adwords Scripts. You can find more information here on the link, so I don't want to teach you the very basics of Adwords Scripts, but I'd like to create interesting/new scripts for you, share ideas and make  your life happier. :)


Why Adwords Scripts? Because it's been 4 months than it's released, but only a little group of people get involved in it, however it's a really great tool (or at least I think so). When I started to search for examples I found none. However there were many-many PPC softwares on the market you can buy like MarineSoftware.co.uk I know these softwares are much more than a single script, but honestly none of them has a functionality I'd love to have. I have many-many problems according to my current campaigns that none of the softwares in the market will solve.... will it ever solve? I don't know. But with Adwords Scripts I can do for my own. Also I realised there are many softwares in the market and I should use two or three of them to have almost all the functions that I need... and obviously it would cost a fortune.

So I decided to start a shinny new blog about this topic, the main reason is my previous blog was in hungarian. If you like to have a look at it you can reach my blog here: E-commerce.blog.hu but beside the 15 million hungarian speaking population in the world the rest of the people couldn't understand what's in it. So here I must apologies about my English, but English is my second language and I promise to you it's just getting better.

Welcome to the World of Interesting and Useful Google Adwords Scripts.

Erno Horvath