显示带有标签的帖子 广告参数. 显示所有帖子
显示带有标签的帖子 广告参数. 显示所有帖子

2013年7月11日,星期四

在Google电子表格中的广告组一级设置AdParams

我有几个人问我如何更新以前的脚本 在关键字级别设置AdParams 以便可以在广告组一级进行设置。这是该脚本的更新,仅此即可。

要使用它,您需要 创建一个新的Google电子表格 并分别在A,B和C列(带有列标题)中分别加载广告组名称,参数1值和参数2值。然后将该URL复制到脚本中,您应该一切顺利。

谢谢,
拉斯

/************************************************
* Update Ad Params by Ad Groups
* Version 1.1
* ChangeLog v1.1
*  - Added the ability to enable param1 or 2 individually
*  - Looks for Keywords on all sheets
*  - Runs much faster
* Created By: 拉斯 Savage
* FreeAdWordsScripts.com
************************************************/
var SPREADSHEET_URL = "PUT YOUR SPREADSHEET URL HERE";
var SET_PARAM1 = true;
var SET_PARAM2 = false;
var DATA_RANGE = 'A:D'; // A - CampaignName, B - AdGroupName, 
                        // C - Param1, D - 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]].join('~~!~~');
    allDataHash[rowKey] = { param1 : row[2], param2: row[3] };
  }
  
  var kwIter = AdWordsApp.keywords()
    .withCondition('CampaignStatus = ENABLED')
    .withCondition('AdGroupStatus = ENABLED')
    .withCondition('Status = ENABLED')
    .get();
  
  while(kwIter.hasNext()) { 
    var kw = kwIter.next();
    var campName = kw.getCampaign().getName();
    var 广告 GroupName = kw.getAdGroup().getName();
    var rowKey = [campName,adGroupName].join('~~!~~');
    if(allDataHash[rowKey]) {
      if(SET_PARAM1) { kw.setAdParam(1, allDataHash[rowKey].param1); }
      if(SET_PARAM2) { kw.setAdParam(2, allDataHash[rowKey].param2); }
    }
  }
}

2013年4月27日,星期六

将当前的犯罪统计信息放入您的广告素材中

我住在芝加哥,这座城市闻名的一件事是它丰富多彩的历史 有组织犯罪。因此,我认为看看是否可以利用这段历史对我有利可能会很有趣。

芝加哥经营着一个收集和汇总城市统计数据的网站: 芝加哥市数据门户 。在这里您可以找到各种各样的数据集,但是我感兴趣的是犯罪统计。

经过一番探索,我发现数据以JSON(一种易于使用的软件格式)可用。因此,我整理了一个脚本来读取该数据,然后使用不同类型犯罪的总数自动更新关键字AdParams。

对于任何销售保险或安全系统的公司来说,这可能会派上用场,但是我敢肯定还有其他公司可以使用此信息。

美国其他主要城市也保存了类似的数据集:
您的企业还可以使用哪些其他公共记录数据来定位您的客户?在评论中让我知道,我会看一看。

谢谢,
拉斯

//-----------------------------------
// Put Chicago Crime Stats in Your Creatives
// Created By: 拉斯 Savage
// FreeAdWordsScripts.com
//-----------------------------------
function main() {
  // You can get this link by going here: http://goo.gl/tfNgM
  // Apply some filters and then click export > api
  // This end point is good for all of 2013
  var DATA_ENDPOINT = "http://data.cityofchicago.org/resource/pga9-zdiw.json";
  var CAMPAIGN_PREFIX = 'Crime_Data_Chicago_'; //All your 运动s start with this
  var AD_PARAM = 1; // 1 or 2
  
  try {
    var json = Utilities.jsonParse(UrlFetchApp.fetch(DATA_ENDPOINT).getContentText());
    var summary = summarizeCrimeStats(json);
    //logCrimeSummary(summary);
    
    for(var i in summary) {
      var total = totalPrimaryDescription(i,summary);
      var kw_iter = AdWordsApp.keywords()
                      .withCondition("CampaignName CONTAINS_IGNORE_CASE '"+CAMPAIGN_PREFIX+i+"'")
                      .get();
      while(kw_iter.hasNext()) {
        var kw = kw_iter.next();
        kw.setAdParam(AD_PARAM, total);
      }
    }
  }catch(e) {
  }
}

// A helper function to aggregate the data by primary description
function totalPrimaryDescription(key,summary) {
  var tot = 0;
  for(var i in summary[key]) {
    tot += summary[key][i];
  }
  return tot;
}

//This function takes in a json formatted object and stores the count of instances
//in a 2 dimentional hash of [Primary Description][Secondary Description]
function summarizeCrimeStats(json) {
  var 犯罪_summary = {};
  for(var i in json) {
    var 犯罪 = json[i];
    if(crime_summary[crime._primary_decsription]) {
      if(crime_summary[crime._primary_decsription][crime._secondary_description]) {
        犯罪_summary[crime._primary_decsription][crime._secondary_description]++;
      }else{
        犯罪_summary[crime._primary_decsription][crime._secondary_description] = 1;
      }
    }else{
      犯罪_summary[crime._primary_decsription] = {};
      犯罪_summary[crime._primary_decsription][crime._secondary_description] = 1;
    }
  }
  return 犯罪_summary;
}

//Just a helper function to print out the summary info so that
//I can find the data I'm interested in.
function logCrimeSummary(crime_summary) {
  for(var i in 犯罪_summary) {
    for(var x in 犯罪_summary[i]) {
      Logger.log([i,x,crime_summary[i][x]].join(', '));
    }
  }
}

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 to 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')
    .get();
  
  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); }
    }
  }
}