2013年11月30日,星期六

使用AdWords脚本的AdWords帐户审核清单

我正在浏览一些旧的 WordStream博客文章 并从Phil Kowalski注意到了 AdWords帐户审核清单。大部分工作似乎可以使用AdWords脚本自动完成,因此我想尝试一下。

以下脚本运行尽可能多的检查,并尝试报告要首先检出的区域。这对于确保您接管的帐户至少具有适用的基本知识很有用。

要查看结果,请在您的帐户中运行脚本,然后单击“查看详细信息”链接,然后单击“日志”按钮。您应该看到该脚本找到的所有警告。尝试一下,让我知道您可能会添加哪些其他检查。

谢谢,
拉斯

/************************************
* AdWords帐户审核清单
* Version 1.1
* ChangeLog v1.1 - Fixed issue with extension selector.
* Based on the blog post by Phil Kowalski
* http://www.wordstream.com/blog/ws/2013/07/02/adwords-account-audit-checklist
* Created By:  拉斯  Savage
* FreeAdWordsScripts.com
************************************/
function main() {
  //1. Campaigns
  //  a. Target the right locations
  var includedLocList = ['United States','Canada']; // <-- the list of places your 运动s should be targeting
  verifyTargetedLocations(includedLocList);
  
  var excludedLocList = ['Europe']; // <-- the list of places your 运动s should be excluding
  verifyExcludedLocations(excludedLocList);
  
  //  b. Language - Can't be done using 剧本 yet :(
  //  c. 搜索 vs Display
  verifySearchAndDisplay();
  
  //  d. Check Mobile Strategy
  verifyMobileModifiers();
  
  //2. AdGroups
  //  a. Check for AdGroups with more than 20-30 关键字
  var ADGROUP_SIZE = 25; // <-- this is the max number of 关键字 you want in an AdGroup
  verifyAdGroupSize(ADGROUP_SIZE);
  
  //  b. Check for topic. Difficult to do with 剧本
  //  c. Check for  广告 
  var NUMBER_OF_ADS = 3; // <-- this is the minimum number of  广告  in an AdGroup
  verifyAdGroupNumberOfAds(NUMBER_OF_ADS);
  
  //3. Keywords
  //  a. Check for MatchTypes
  printMatchTypes();
  
  //4. 搜索 Queries
  //  This analysis is probably worth it's own script
  
  //5. Other
  //  a. Conversion Tracking
  verifyConversionTracking();
  
  //  b. AdExtensions
  verifyAdExtensions();
}

function verifyConversionTracking() {
  //Assume that if the account has not had a conversion in 7 days, something is wrong.
  var campsWithConversions = AdWordsApp.campaigns()
    .withCondition('Status = ENABLED')
    .forDateRange('LAST_7_DAYS')
    .withCondition('Conversions > 0')
    .get().totalNumEntities();
  if(campsWithConversions == 0) {
    warn('Account is probably missing conversion tracking.');
  }
}

function verifyAdExtensions() {
  var campIter = AdWordsApp.campaigns().withCondition('Status = ENABLED').get();
  while(campIter.hasNext()) {
    var camp = campIter.next();
    var  电话 NumExtCount = camp.extensions().phoneNumbers().get().totalNumEntities();
    if(phoneNumExtCount == 0) {
      warn('Campaign: "'+camp.getName()+'" is missing  电话  number extensions.');
    }
    var siteLinksExtCount = camp.extensions().sitelinks().get().totalNumEntities();
    if(siteLinksExtCount < 6) {
      warn('Campaign: "'+camp.getName()+'" could use more site links. Currently has: '+siteLinksExtCount);
    }
    var mobileAppsExtCount = camp.extensions().mobileApps().get().totalNumEntities();
    if(mobileAppsExtCount == 0) {
      warn('Campaign: "'+camp.getName()+'" is missing mobile apps extension.');
    }
  }
}

function printMatchTypes() {
  var numBroad = AdWordsApp.keywords()
    .withCondition('Status = ENABLED')
    .withCondition('AdGroupStatus = ENABLED')
    .withCondition('CampaignStatus = ENABLED')
    .withCondition('KeywordMatchType = BROAD')
    .get().totalNumEntities();
  var numPhrase = AdWordsApp.keywords()
    .withCondition('Status = ENABLED')
    .withCondition('AdGroupStatus = ENABLED')
    .withCondition('CampaignStatus = ENABLED')
    .withCondition('KeywordMatchType = PHRASE')
    .get().totalNumEntities();
  var numExact = AdWordsApp.keywords()
    .withCondition('Status = ENABLED')
    .withCondition('AdGroupStatus = ENABLED')
    .withCondition('CampaignStatus = ENABLED')
    .withCondition('KeywordMatchType = EXACT')
    .get().totalNumEntities();
  var total = numBroad+numPhrase+numExact;
  var percBroad = Math.round(numBroad/total*100);
  var percPhrase = Math.round(numPhrase/total*100);
  var percExact = Math.round(numExact/total*100);
  info('Out of a total of: '+total+' active 关键字 in your account:');
  info('\tBroad: '+numBroad+' or '+percBroad+'%');
  info('\tPhrase: '+numPhrase+' or '+percPhrase+'%');
  info('\tExact: '+numExact+' or '+percExact+'%');
}

function verifyAdGroupNumberOfAds(requiredNumberOfAds) {
  var agIter = AdWordsApp.adGroups()
    .withCondition('Status = ENABLED')
    .withCondition('CampaignStatus = ENABLED')
    .get();
  while(agIter.hasNext()) {
    var ag = agIter.next();
    var  广告 Count = ag.ads().withCondition('Status = ENABLED').get().totalNumEntities();
    if(adCount < requiredNumberOfAds) {
      warn('Campaign: "'+ag.getCampaign().getName()+'" AdGroup: "'+ag.getName()+'" does not have enough  广告 : '+adCount);
    }
    if(adCount > (requiredNumberOfAds+2)) {
      warn('Campaign: "'+ag.getCampaign().getName()+'" AdGroup: "'+ag.getName()+'" has too many  广告 : '+adCount);
    }
  }
}

function verifyAdGroupSize(size) {
  var agIter = AdWordsApp.adGroups()
    .withCondition('Status = ENABLED')
    .withCondition('CampaignStatus = ENABLED')
    .get();
  while(agIter.hasNext()) {
    var ag = agIter.next();
    var kwSize = ag.keywords().withCondition('Status = ENABLED').get().totalNumEntities();
    if(kwSize >= size) {
      warn('Campaign: "'+ag.getCampaign().getName()+'" AdGroup: "'+ag.getName()+'" has too many 关键字: '+kwSize);
    }
  }
}

function verifyMobileModifiers() {
  var campIter = AdWordsApp.campaigns().withCondition('Status = ENABLED').get();
  while(campIter.hasNext()) {
    var camp = campIter.next();
    var desktop = camp.targeting().platforms().desktop().get().next();
    //var tablet = camp.targeting().platforms().tablet().get().next();
    var mobile = camp.targeting().platforms().mobile().get().next();
    //check for mobile modifiers
    if(desktop.getBidModifier() == 1 && mobile.getBidModifier() == 1) {
      warn('Campaign: "'+camp.getName()+'" has no mobile modifier set.');
    }
  }
}

function verifyTargetedLocations(locList) {
  var campIter = AdWordsApp.campaigns().withCondition('Status = ENABLED').get();
  while(campIter.hasNext()) {
    var camp = campIter.next();
    var locIter = camp.targeting().targetedLocations().get();
    reportOnLocations(camp,locIter,locList);
  } 
}

function verifyExcludedLocations(locList) {
  var campIter = AdWordsApp.campaigns().withCondition('Status = ENABLED').get();
  while(campIter.hasNext()) {
    var camp = campIter.next();
    var locIter = camp.targeting().excludedLocations().get();
    reportOnLocations(camp,locIter,locList);
  } 
}

function reportOnLocations(camp,locIter,locList) {
  var campLocList = [];
  while(locIter.hasNext()) {
    var loc = locIter.next();
    campLocList.push(loc.getName());
    if(!locList) {
      warn('Campaign: "'+camp.getName()+'" targeting: "'+loc.getName()+'"');
    }
  }
  if(locList && campLocList.sort() != locList.sort()) {
    for(var i in campLocList) {
      if(locList.indexOf(campLocList[i]) == -1) {
        warn('Campaign: "'+camp.getName()+'" incorrectly targeting: "'+campLocList[i]+'"');
      }
    }
    for(var i in locList) {
      if(campLocList.indexOf(locList[i]) == -1) {
        warn('Campaign: "'+camp.getName()+'" not targeting: "'+locList[i]+'"');
      }
    }
  }
}

function verifySearchAndDisplay() {
  var API_VERSION = { includeZeroImpressions : false };
  var cols = ['CampaignId','CampaignName','AdNetworkType1','Impressions'];
  var report = 'CAMPAIGN_PERFORMANCE_REPORT';
  var query = ['select',cols.join(','),'from',report,'during','LAST_30_DAYS'].join(' ');
  var results = {}; // { campId : { agId : [ row, ... ], ... }, ... }
  var reportIter = AdWordsApp.report(query, API_VERSION).rows();
  while(reportIter.hasNext()) {
    var row = reportIter.next();
    if(results[row.CampaignId]) {
      warn('Campaign: "'+row.CampaignName+'" is targeting the Display and 搜索 networks.');
    } else {
      results[row.CampaignId] = row;
    }
  }
  return results;
}

function warn(msg) {
  Logger.log('WARNING: '+msg);
}

function info(msg) {
  Logger.log(msg);
}

20条评论:

  1. 投资传家宝,以珍惜永恒的钟表 假卡地亚手表 采集。融合了尖端技术和传统工艺, 卡地亚(Cartier)碳潜水表卡地亚’精美的手表带有 卡地亚(Cartier)碳潜水表 品牌声望’辉煌的历史和卓越的品质。

    回复 删除
  2. 我正在阅读您在本网站上的一些内容,并且我认为此互联网站点确实很有信息!继续忍受。 hotmail登录

    回复 删除
  3. 我已经阅读了所有访客对本文发表的评论和建议,非常好,我们将只等您的下一篇文章。谢谢! 迪拜审计事务所

    回复 删除
  4. 感谢您提供有关此问题的最新更新,我希望阅读更多。 用贝宝购买100个instagram喜欢

    回复 删除
  5. 我们也很乐意提供b2b电子邮件列表,以获取其他国家/地区的数据。该数据是通过不仅从美国而且从所有其他国家/地区(例如加拿大,英国,澳大利亚,中东,新加坡,新西兰,亚洲,欧洲,俄罗斯和更多国家。该列表从策略上分为行业,组织名称,联系人姓名,职务, 购买电子邮件清单 联系信息,工人数量以及他们的企业销售量(一对夫妇)。
    我们可搜索的电子邮件列表为您提供了更具体但相关的信息,并非所有电子邮件提供商都可以访问每个国家/地区'的数据库。使用全球电子邮件列表,您可以在全球范围内宣传您的业务,而无需花费很多钱从一个国家到另一个国家。有了真正的B2B销售线索,就可以建立您的全球关系,并可能意味着扩大一个's business .

    回复 删除
  6. Internet Download Manager 6.38内部版本9 IDM破解 带有序列密钥下载的修补程序是一种由美国公司Tonec Inc.拥有的共享软件下载管理器。IDM Patch Free Download可以在令人印象深刻的时限内捕获任何类型的下载,然后在很短的时间内以更快的速度完成下载。与目前其他任何下载管理器相比。

    回复 删除
  7. 我想向您推荐 最佳论文写作服务评论 撰写公司的最佳评论列表。在这里您可以阅读所有感兴趣的信息,选择合适的公司并下订单。

    回复 删除
  8. 医药保健 是一家全球性的生物技术和药品营销公司,致力于将目标产品带给全球受众。我们专注于利用创新策略将突破性的生物技术,药剂和医疗设备推向市场。我们的营销顾问和产品专家团队致力于为客户确定并在必要时为他们创造机会’产品投放并维持在目标市场。

    回复 删除
  9. 迪拜的短期出租 AE是一站式目的地,您可以在此找到设施齐全的服务公寓,并预订长期,中期和短期的公司和非公司住宿豪华服务式住宿。

    回复 删除
  10. 我们是南非最受信任的在线贷款搜索和贷款建议网站。 friendlyfinance.co.za 只需几分钟即可找到贷款人。立即申请!

    回复 删除
  11. "Archie 420药房欢迎21岁以上的人前来,并为我们提供一种大麻体验。
    如果没有参观420牌大麻大麻药房,到常绿州的旅行是不完整的。
    此外,您还可以查看周中特价: 从美国购买大麻 任意预卷周二可享受$ 2优惠,周三任何1克可享受$ 2优惠!我们接受多种付款方式。
    The 阿奇's会努力提供适合各种预算的各种优质大麻产品!
    阿奇's位置便利,位于我们的主要办公室:380 Quivas St,Denver CO,80223,美国和45 Lisbon st San Francisco California 94112 USA,以及.. 2300 Windy Ridge Pkwy SE-美国亚特兰大GA的分支机构
    阿奇 420 menu include all taxes, menu is subject to change and Items do sell very quickly.
    最后,不需要医疗卡。结果,来到了阿奇'的网上商店,并体验真正合法大麻的现代时代,我们提供各种菌株来满足最挑剔的消费者。我们全天候24/7开放,我们随时欢迎您。"

    回复 删除
  12. Crystal在线药房是一家值得信赖的在线药店,其产品种类繁多,可以满足客户的需求。 Crystal Pharmacy致力于在全球范围内提供最佳服务并运送产品。他们网站上列出的所有产品都有现货。 在线购买CLA 希望您在发送请求后立即处理您的订单。他们处理各种药品以使客户满意。他们还通过产品跨越障碍,并为满足人类满意度而努力奋斗。与他们一起购物时,请放心并放心,您会发现我们的服务对他们有多快。

    回复 删除
  13. Taskade的评价, Taskade评论 远程团队的多合一协作平台。通过任务列表,思维导图和视频聊天释放团队的生产力。

    回复 删除
  14. 近来,酮饮食因其健康益处例如减肥和预防疾病而变得非常流行。定制的Keto生活计划!造访这里: 定制酮饮食评论

    回复 删除
  15. 印第安纳波利斯路边和拖车公司为我们的客户提供优质的服务。访问: 轮胎更换

    回复 删除
  16. 杠杆式&股权投资合作伙伴从事公司,项目,基础设施, 基础设施融资 房地产和可再生能源的融资和投资要求。

    回复 删除
  17. 寻找完美的手工礼物, 香熏大豆蜡烛 复古的&流行服装,独特的珠宝等等… lots more.

    回复 删除
  18. 对于正在寻找与安装相关的指南的人来说,人造草实验室是最佳的资源, //artificialgrasslab.com/ 维护和合成草产品。

    回复 删除
  19. - Como Organizar sua Semana com o Taskade-Segunda Feira,总理。
    -科摩组织任务管理系统-Terça-Vlog de Produtividade
    -Como Organizar Suua Semana com o Taskade-Quarta
    -Como Organizar sua semana com o Taskade-Quinta-Vlog Produtividade。
    -Taskade-Sexta,Sábadoe Domingo。科莫足球大联盟

    回复 删除