2013年4月14日,星期日

合并多个广告系列中的标签

该脚本是我之前的脚本之一的后续内容: 合并多个广告系列以增强广告系列迁移。此操作旨在在您将广告系列合并在一起后运行,并将所有广告系列,广告组,广告和关键字的标签从ORIGIN_CAMAPIGN_NAMES复制到DESTINATION_CAMPAIGN_NAME。

谢谢,
拉斯

//-----------------------------------
// 合并多个广告系列中的标签
// Created By: 拉斯 Savage
// FreeAdWordsScripts.com
//-----------------------------------
var DESTINATION_CAMPAIGN_NAME = "Destination Campaign Name";
var ORIGIN_CAMPAIGN_NAMES = ["Origin Campaign Name 1","Origin Campaign Name 2"];

function main() {
  var 标签_iter = AdWordsApp.labels().get();
  while(label_iter.hasNext()) {
    var 标签 = 标签_iter.next();
    //Pre-build all the iterators
    var iters = [
      标签.campaigns().withCondition("Name IN ['"+ORIGIN_CAMPAIGN_NAMES.join("','")+"']").get(),
      标签.adGroups().withCondition("CampaignName IN ['"+ORIGIN_CAMPAIGN_NAMES.join("','")+"']").get(),
      标签.ads().withCondition("CampaignName IN ['"+ORIGIN_CAMPAIGN_NAMES.join("','")+"']").get(),
      标签.keywords().withCondition("CampaignName IN ['"+ORIGIN_CAMPAIGN_NAMES.join("','")+"']").get()
    ];
    for(var i in iters) {
      var iter = iters[i];
      while(iter.hasNext()) {
        _copyLabels(iter.next()); 
      }
    }
  }
}

//Copies the 标签 from 实体 in Origin 运动 
//to 实体 with the same name in dest 运动
function _copyLabels(entity) {
  var iter;
  if(_getEntityType(entity) == "Campaign") {
    // it's a 运动
    iter = AdWordsApp.campaigns()
             .withCondition("Name = '"+DESTINATION_CAMPAIGN_NAME+"'")
             .get();
  } else if(_getEntityType(entity) == "AdGroup") {
    // it's an 广告群组
    iter = AdWordsApp.adGroups()
             .withCondition("CampaignName = '"+DESTINATION_CAMPAIGN_NAME+"'")
             .withCondition("Name = '"+entity.getName()+"'")
             .get();
  } else if(_getEntityType(entity) == "Ad") {
    // it's an 广告 
    iter = AdWordsApp.ads()
             .withCondition("CampaignName = '"+DESTINATION_CAMPAIGN_NAME+"'")
             .withCondition("AdGroupName = '"+entity.getAdGroup().getName()+"'")
             .withCondition("Headline = '"+entity.getHeadline()+"'")
             .withCondition("Description1 = '"+entity.getDescription1()+"'")
             .withCondition("Description2 = '"+entity.getDescription2()+"'")
             .withCondition("DisplayUrl = '"+entity.getDisplayUrl()+"'")
             .get();
  } else if(_getEntityType(entity) == "Keyword") {
    // it's a 关键词
    iter = AdWordsApp.keywords()
             .withCondition("CampaignName = '"+DESTINATION_CAMPAIGN_NAME+"'")
             .withCondition("AdGroupName = '"+entity.getAdGroup().getName()+"'")
             .withCondition("Text = '"+entity.getText()+"'")
             .withCondition("KeywordMatchType = '"+entity.getMatchType()+"'")
             .get();
  }
  
  while(iter.hasNext()) {
    _copyLabelsHelper(entity,iter.next());
  }
  
}

//Copy the 标签 form orig 实体 to dest 实体
function _copyLabelsHelper(orig,dest) {
  var 标签_iter = orig.labels().get();
  while(label_iter.hasNext()) {
    dest.applyLabel(label_iter.next().getName());
  }
}

//Returns a text representation of an 实体
//For a better way, check: http://goo.gl/kZL3X
function _getEntityType(obj) {
  if(typeof(obj['getCampaign']) == "undefined") {
    return 'Campaign';
  }
  if(typeof(obj['getAdGroup']) == "undefined") {
    return 'AdGroup';
  }
  if(typeof(obj['getHeadline']) != "undefined") {
    return "Ad";
  }
  if(typeof(obj['getText']) != "undefined") {
    return "Keyword";
  }
  return null;
}

8条评论:

  1. 您在此处提供的信息非常好。我想在此感谢。感谢您提供此信息。然后寻找高端不干胶标签,您可以访问 热敏标签澳大利亚

    回复删除
  2. 将这个脚本用于我的 博客页面 如果你不介意的话。

    回复删除
  3. 有一些学术护理写作帮助公司,其最终目标是提供 护理写作服务帮助 因为他们知道大多数护理论文写作服务兼职学生都没有足够的时间来完成他们的大学定制护理任务。

    回复删除
  4. 一个人的特别清洁'商业空间对于一个人的成功至关重要'的生意。赢得客户’卖给看起来肮脏又肮脏的企业'是您有问题的业务的迹象。由于您可能忙于强调企业,因此您可能没有时间帮助保持区域清洁。一种补救措施是商务办公室清洁公司。 迪拜女仆服务

    回复删除
  5. 心理学课程写作服务是必不可少的,并且它们在寻求心理学研究写作帮助服务的人们中非常受欢迎,因为他们中大多数人寻求 心理学研究写作服务.

    回复删除
  6. 我们一直提供高品质 迪拜阿拉伯书法,我们有高分辨率的帆布印刷&迪拜的壁画艺术可以成为您墙中的明星。

    回复删除
  7. Electra已与著名的照明,通风,接线配件, 迪拜家庭自动化 和1965年以来的电气系统制造商。

    回复删除