显示带有标签的帖子 每次转换费用. 显示所有帖子
显示带有标签的帖子 每次转换费用. 显示所有帖子

2013年1月26日,星期六

每个广告系列的唯一出价规则

好的,今天,我们将变得更加复杂。 假设您碰巧要管理一组广告系列。 现在,为了节省时间,您想要设置一个脚本,以根据一组规则自动调整每个广告系列的出价。

下面的脚本将帮助您做到这一点。 我假设您的许多优化都是基于每次转化费用以及页面上的当前排名。现在我们可以开始为这些优化编写一个通用脚本。

脚本以 CAMP_LIST 包含所有广告系列名称及其规则的变量。 您可以根据需要为每个客户添加任意​​数量的广告系列和规则。

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

谢谢,
拉斯

//-----------------------------------
// Unique Bid Updates By Campaign
// Created By: 拉斯 Savage
// FreeAdWordsScripts.com
//-----------------------------------
function main() {
  // this is the structure that holds all the bid information about your accounts.
  var CAMP_LIST = [
    {
      'camp_name' : 'camp name 1',
      'rules' : [
        { 
          'cpv_min' : 0, 'cpv_max' : 10,
          'avg_pos_min' : 2, 'avg_pos_max' : 6,
          'bid_change_amt' : 1.1, 'bid_limit' : 10
        },
        { 
          'cpv_min' : 10, 'cpv_max' : 20,
          'avg_pos_min' : 6, 'avg_pos_max' : 10,
          'bid_change_amt' : 1.2, 'bid_limit' : 10
        }
      ]
    },
    {
      'camp_name' : 'camp name 2',
      'rules' : [
        { 
          'cpv_min' : 0, 'cpv_max' : 5,
          'avg_pos_min' : 3, 'avg_pos_max' : 5,
          'bid_change_amt' : .9, 'bid_limit' : .01
        },
        { 
          'cpv_min' : 5, 'cpv_max' : 20,
          'avg_pos_min' : 5, 'avg_pos_max' : 8,
          'bid_change_amt' : 1.2, 'bid_limit' : 10
        }
      ]
    }
  ];
  var date_range = 'LAST_7_DAYS';
  
  for (index in CAMP_LIST) {
    var camp = CAMP_LIST[index];
    var camp_name = camp.camp_name;
    var rules = camp.rules;
    
    var kw_iter = AdWordsApp.keywords()
      .withCondition("CampaignName CONTAINS_IGNORE_CASE '" + camp_name + "'")
      .get();
    
    while(kw_iter.hasNext()) {
      var kw = kw_iter.next();
      var kw_stats = kw.getStatsFor(date_range);
      var conv = kw_stats.getConversions();
      
      if (conv == 0) { continue; } //skip anything with no 转换
      
      var cost = kw_stats.getCost();
      var cpv = cost/conv;
      var avg_pos = kw_stats.getAveragePosition();
      var max_cpc = kw.getMaxCpc();
      
      for(i in rules) {
        var r = rules[i];
        
        if(cpv >= r.cpv_min && 
           cpv < r.cpv_max && 
           avg_pos >= r.avg_pos_min && 
           avg_pos < r.avg_pos_max) 
        {  
          kw.setMaxCpc(calculate_bid(max_cpc,r.bid_change_amt,r.bid_limit));
          break;
        }
      }
    }
  }
    
  function calculate_bid(current_bid,perc_to_change,max_min_amt) {
    if(perc_to_change >= 1) {
      return (current_bid * perc_to_change > max_min_amt) ? max_min_amt : (current_bid * perc_to_change);
    } else {
      return (current_bid * perc_to_change < max_min_amt) ? max_min_amt : (current_bid * perc_to_change);
    }
  }
}

2012年12月3日,星期一

使用AdWords脚本自动执行维护任务第2部分

让我们继续自动化在中找到的维护任务 AdWords for Dummies 使用AdWords脚本。 让我们继续进行每月15号的维护。


奖励吸引廉价流量的关键字。


与上一篇文章类似,您需要设置转化跟踪才能使所有这些工作。 实际上,我们可以使用先前脚本的变体来完成此操作。 实际上,我们只是在提高出价而不是降低出价。

//-----------------------------------
// Increase Bids Cheap Conversion Keywords
// Created By: 拉斯 Savage
// FreeAdWordsScripts.com
//-----------------------------------
function main() {
  //For 关键字 with less than $5 CPC, let's pump those 竞标 up by 35%
  var AMAZING_COST_PER_CONV = 5;
  var AMAZING_BID_INCREASE_AMOUNT = .35;
  
  //For 关键字 with between $5 and $8 CPCs, we will only increase the 竞标 by 20%
  var GREAT_COST_PER_CONV = 8;
  var GREAT_BID_INCREASE_AMOUNT = .20;
  
  var kw_iter = AdWordsApp.keywords()
    .withCondition("Status = ENABLED")
    .get();
  
  while(kw_iter.hasNext()) {
    var kw = kw_iter.next();
    var kw_stats = kw.getStatsFor("LAST_30_DAYS");
    var cost = kw_stats.getCost();
    var 转换 = kw_stats.getConversions();
    if(conversions > 0) {
      var cost_per_conversion = (cost/(conversions*1.0));
      
      if(cost_per_conversion <= AMAZING_COST_PER_CONV) {
        kw.setMaxCpc(kw.getMaxCpc() * (1+AMAZING_BID_INCREASE_AMOUNT)); 
      }
      else if(cost_per_conversion <= GREAT_COST_PER_CONV) {
        kw.setMaxCpc(kw.getMaxCpc() * (1+GREAT_BID_INCREASE_AMOUNT));
      }
    }else{
      //no 转换 on this 关键词
      //we will deal with that later
      continue;
    }
  }
}
请继续关注下一期和最后一期,在此我们将删除没有转化的关键字来使我们的帐户杂乱无章。

谢谢,
拉斯

2012年11月29日,星期四

使用AdWords脚本自动执行维护任务,第1部分

我不觉得丢脸。 我读过《傻瓜》。 我最喜欢的之一是 AdWords for Dummies. 说出您想要这些书的内容,但它们易于阅读,并且具有快速入门的重要信息。

本书中的一章介绍了 每月维护您的AdWords帐户的程序.  使用AdWords脚本是自动执行这些任务的好方法。 让我们从本月的第一天开始。

“在每月的第一天,处理所有转换成本过高的关键字。”


听起来很简单。 当然,您需要为所有这些设置转换跟踪。他们说拉过去的30天,这是我们在这里所做的,但是您可以拉任何喜欢的时间范围。 这是本书中的示例。 您当然应该用对您的业务有意义的值替换顶部的值。

//-----------------------------------
// Reduce Bids on High Cost per Conversion Keywords
// Created By: 拉斯 Savage
// FreeAdWordsScripts.com
//-----------------------------------
function main() {
  //Let's reduce 关键字 with a CPC greater than $15 by 35%
  var WAY_TOO_HIGH_COST_PER_CONV = 15;
  var WAY_TOO_HIGH_BID_REDUCTION_AMOUNT = .35;
  
  //And 关键字 with CPC between $10 and $15 by 20%
  var TOO_HIGH_COST_PER_CONV = 10;
  var TOO_HIGH_BID_REDUCTION_AMOUNT = .20;
  
  var kw_iter = AdWordsApp.keywords()
    .withCondition("Status = ENABLED")
    .get();
  
  while(kw_iter.hasNext()) {
    var kw = kw_iter.next();
    var kw_stats = kw.getStatsFor("LAST_30_DAYS");
    var cost = kw_stats.getCost();
    var 转换 = kw_stats.getConversions();
    if(conversions > 0) {
      var cost_per_conversion = (cost/(conversions*1.0));
      //Here is the magic.  If it is way too high, reduce it by the way too high amount
      if(cost_per_conversion >= WAY_TOO_HIGH_COST_PER_CONV) {
        kw.setMaxCpc(kw.getMaxCpc() * (1-WAY_TOO_HIGH_BID_REDUCTION_AMOUNT)); 
      }
      //otherwise, if it is still too high, reduce it with just the too high amount
      else if(cost_per_conversion >= TOO_HIGH_COST_PER_CONV) {
        kw.setMaxCpc(kw.getMaxCpc() * (1-TOO_HIGH_BID_REDUCTION_AMOUNT));
      }
    }else{
      //no 转换 on this 关键词
      //we will deal with that later
      continue;
    }
  }
}
就是这样。请继续关注下一期,我们将通过提高出价来解决效果好的关键字。

谢谢,
拉斯