2013年1月16日,星期三

Update Ad Params 来自GoogleSpreadsheet

2013-07-11-注意:对于那些想要在广告组一级更新AdParam的用户,请查看 此脚本的更新版本.

今天,我们有了一个小脚本,可帮助您大规模调整关键字广告参数。 这是一个示例,说明如何使用与Google Spreadsheets的集成来更新关键字的param1和param2值。 我提供了一个示例电子表格,您可以对其进行复制。

只要Adwords帐户和Google Docs帐户使用相同的登录名,它就可以访问您拥有的任何电子表格。 建议您打开示例电子表格,然后将其复制到您的帐户中。 然后,您可以将以下脚本中的URL替换为电子表格副本的URL。

链接到我的示例电子表格: //docs.google.com/spreadsheet/ccc?key=0Aotb6eheEOpodC1yVjUwc2Y1NDIzUVFLLThJdTFPUnc#gid=0

谢谢,
拉斯
/************************************************
* Update Ad Params Using a Google Spreadsheet
* Version 1.1
* ChangeLog v1.1
*  - Added the ability 至 enable param1 or 2 individually
*  - Looks for Keywords on all sheets
*  - Runs much faster
* Created By: 拉斯 Savage
* FreeAdWordsScripts.com
************************************************/
var SPREADSHEET_URL = "THE URL FOR YOUR GOOGLE SPREADSHEET GOES HERE";
var SET_PARAM1 = true;
var SET_PARAM2 = false;
var DATA_RANGE = 'A:E'; // A - CampaignName, B - AdGroupName, 
                        // C - Keyword, D - Param1, E - Param2

function main() {
  var 电子表格 = SpreadsheetApp.openByUrl(SPREADSHEET_URL);
  var allSheets = 电子表格.getSheets();
  var allData = [];
  for(var i in allSheets) {
    var sheet = allSheets[i];
    var data = sheet.getRange(DATA_RANGE).getValues();
    data.shift(); //get rid of headers
    allData = allData.concat(data);
  }
  
  var allDataHash = {};
  for(var i in allData) {
    var row = allData[i];
    if(row[0] === '') { continue; }
    var rowKey = [row[0],row[1],row[2]].join('~~!~~');
    allDataHash[rowKey] = { param1 : row[3], param2: row[4] };
  }
  
  var kwIter = AdWordsApp.keywords()
    .withCondition('CampaignStatus = ENABLED')
    .withCondition('AdGroupStatus = ENABLED')
    .withCondition('Status = ENABLED')
    。得到();
  
  while(kwIter.hasNext()) { 
    var kw = kwIter.next();
    var campName = kw.getCampaign().getName();
    var 广告GroupName = kw.getAdGroup().getName();
    var rowKey = [campName,adGroupName,kw.getText()].join('~~!~~');
    if(allDataHash[rowKey]) {
      if(SET_PARAM1) { kw.setAdParam(1, allDataHash[rowKey].param1); }
      if(SET_PARAM2) { kw.setAdParam(2, allDataHash[rowKey].param2); }
    }
  }
}

20条评论:

  1. 嗨,拉斯,

    这对您有很大帮助。

    我们可以在广告组一级设置这些广告参数,还是仅将其应用于关键字?

    再次感谢。
    内洛斯

    回复删除
  2. 修改上面的脚本以根据广告组名称更​​新广告参数应该非常容易。按着这些次序:

    1.首先,您需要更新电子表格。目前,我们有关键字text和matchtype,但是如果您想改用adgroup,只需将A列标题更新为"adgroup",并保持列相同。稍后我们将忽略它。

    2.现在,逻辑将拉出kw_text参数中的列A。您可以根据需要更改名称,但不要't have 至. Now we need 至 更新 the Keyword Selector 至 find all the 关键字 in a given 广告群组. So change the line:

    .withCondition("Text = '"+kw_text+"'")



    .withCondition("AdGroupName = '"+kw_text+"'")

    3. So now you are pulling all the 关键字 in a given 广告群组. The last 更新 would be 至 去掉 the check for matchtype. So 删除 the line:

    if(kw.getMatchType()== mt){

    然后也将}结束两行。

    您应该以如下形式结束:

    var kw_iter = AdWordsApp.keywords()
    .withCondition("AdGroupName = '"+kw_text+"'")
    .withCondition("Status = ENABLED")
    。得到();
    while(kw_iter.hasNext()){
    var kw = kw_iter.next();
    kw.setAdParam(1,param1);
    kw.setAdParam(2,param2);
    }


    如果您有任何问题,请告诉我。

    感谢您查看我的博客,
    拉斯

    回复删除
    回覆
    1. 非常感谢!
      It's awesome.

      删除
    2. 我已经编辑了脚本以在广告组一级进行编辑,如上所述,它似乎还在不断增加'脚本运行时错误'

      知道为什么吗?

      删除
    3. 嗨,阿什利,您能在这里发布您的脚本,以便我看一下吗?

      谢谢,
      拉斯

      删除
    4. 罗素,感谢您收集的大量AW脚本。

      我在上面尝试了您的建议,以更新广告组中所有关键字的价格,并且效果很好。

      但是,我注意到它仅在使用示例电子表格副本时才有效。创建自己的脚本后,脚本将产生以下错误:TypeError:无法调用方法"getRange" of null. (line 11)

      所有的'与Google云端硬盘URL不同。

      您在电子表格中使用任何特殊格式吗?

      干杯,
      斯特凡

      删除
    5. 确保在新的电子表格KeywordParams中命名工作表。默认情况下,它命名为Sheet1。让我知道是否可以解决您的问题。

      谢谢阅读,
      拉斯

      删除
    6. 就是这样!再次感谢您的帮助,Russ。

      删除
  3. 好东西。谢谢!

    您能否使用正则表达式来帮助修改脚本,以便它选择包含电子表格中一个或多个单词的广告组?

    BR

    狂人

    回复删除
  4. 嗨,Mads,我想您需要做的就是使用上面的注释修改脚本,而不是说:

    .withCondition("AdGroupName = '"+kw_text+"'")

    更改为

    .withCondition("AdGroupName CONTAINS_IGNORE_CASE'"+kw_text+"'")

    这将匹配包含电子表格中单词的所有广告组。让我知道这是否适合您。有关.withCondition函数可用的运算符的更多信息,请参见此处: //developers.google.com/adwords/scripts/docs/reference/adwordsapp_adgroupselector#withCondition_1.

    谢谢,
    拉斯

    回复删除
  5. 这会更新业务数据供稿还是存储在其他位置?

    当我尝试使用脚本时,我没有任何错误,但是我没有'看不到它正在更新提要,那么如何查看是否更新?

    我正在尝试每小时更新一次这些广告参数,但看来我无法通过csv或电子表格批量上传,并且只能在我从该特定数据Feed的时间表窗口手动进行时才能使用。

    有没有每小时更新Feed的方法?即使2个小时也没问题,但是6个小时对于我希望实现的目标来说太长了。

    回复删除
  6. 每个人都想成为'Google AdWord专业人士' and who wouldn'? Google广告团队已为所有鼓舞人心的互联网营销商提供了一个开放的门户,以利用AdWords广告赚钱。使用AdWords可以成功地促进营销。//www.flow20.com/blog/get-perfect-google-ads-quality-score/

    回复删除
  7. 这样可以确保杂志的广告收入,而且他们通常愿意大笔交易。然后,广告公司将出去并在他们从杂志购买的这些页面上出售广告空间。否定关键字提示

    回复删除
  8. 在这些信息中,最重要的数据片段之一就是引用的源泉。 免费的Google Ads审核

    回复删除
  9. 如果您偶然发现认识到的任何疑问都属于假冒,请给他们打上旗号。在Google上购买评论

    回复删除
  10. 但是,考虑到Google +的增长趋势,可以说人们很快就会适应它的趋势。 最佳数据搜刮工具

    回复删除