显示带有标签的帖子 暂停关键字. 显示所有帖子
显示带有标签的帖子 暂停关键字. 显示所有帖子

2013年10月30日,星期三

禁用缺货商品的广告和关键字

UPDATE 2016-01-26:为响应一些常见问题,此脚本已更新为包含一些增强功能。请参阅v1.2的更改日志说明。

作为我的后续行动 有关黑色星期五/网络星期一酷脚本的问题,今天,我整理了一个脚本来遍历您的网址,并检查网站上该商品是否缺货。如果是这样,我们将暂停广告组。

该脚本具有与我相同的一些元素 有关检查帐户中断开链接的脚本,但实际上会提取每个页面的html源,并搜索可配置的字符串,让其知道何时缺货。

让我们来看一个例子。我喜欢一些我发现的古怪礼物 ModCloth.com。但是,像任何在线商店一样,有些商品也无货。这是我在测试此脚本时发现的。
为了使该脚本正常工作,我需要找出页面缺货时的区别。如果我右键单击并查看页面源,然后搜索作品“库存”,则可以看到使用它的几个不同地方。其中之一是以下内容,内容为“ in_stock”:false。
这看起来很有希望。我检查了一个库存项目,并且确定该页面上确实有“ in_stock”:true。

好了,现在我知道在代码中需要使用什么文本来填充OUT_OF_STOCK_TEXT变量。现在每个站点都将有所不同,因此我有一个简单的脚本,该脚本使用与可用于测试的完整脚本相同的url逻辑。

一旦您在着陆页的源中找到一些HTML文本来标识某件商品是否缺货,那么最好使用完整的脚本。脚本中还有一些其他选项,可让您启用或禁用脚本中的各种url操作。请记住,这只会暂停链接到页面且缺货的广告或关键字。

谢谢,
拉斯

2013年4月18日,星期四

在特定日期暂停或启用广告系列,关键字或广告

2013年12月13日更新:还添加了处理广告的功能。

我在论坛上看到过一些问题,询问在特定日期启用或暂停关键字。使用标签和脚本非常简单。以下脚本将在您的帐户中运行,并查找标记为“暂停于 ”或“启用 然后执行该操作。如果您只想使用日期,则可以将两个前缀值设置为空字符串(“”)。日期的格式为YYYY-MM-DD(2013-05-01)。

谢谢,
拉斯

/**************************************************
* Pause or Enable Campaigns, Keywords or Ads on a Given Date
* Version 1.2
* Changelog v1.2 - Added ability to  暂停  Campaigns
* Changelog v1.1 - Added ability to run on Ads
* Created By:  拉斯  Savage
* FreeAdWordsScripts.com
**************************************************/
var ENTITY = 'Keyword'; //or Ad or Campaign
var PAUSE_PREFIX = "Pause on "; //look for 标签 "Pause on 2013-04-11"
var ENABLE_PREFIX = "Enable on "; //look for 标签 "Enable on 2013-04-11"

  
function main() {
  var todayStr = Utilities.formatDate(new Date(), AdWordsApp.currentAccount().getTimeZone(), "yyyy-MM-dd");
  var  暂停 Str = PAUSE_PREFIX+todayStr;
  var enableStr = ENABLE_PREFIX+todayStr;
  Logger.log("Looking for 标签: " + [pauseStr,enableStr].join(' and '));
   
  var 标签Array = buildLabelArray(pauseStr,enableStr);
   
  if(labelsArray.length > 0) { 
    var 标签Str = "['" + 标签Array.join("','") + "']";
    var  实体 Iter;
    if(ENTITY === 'Keyword') {
       实体 Iter = AdWordsApp.keywords().withCondition("LabelNames CONTAINS_ANY "+labelsStr).get();
    } else if(ENTITY === 'Ad') {
       实体 Iter = AdWordsApp.ads().withCondition("LabelNames CONTAINS_ANY "+labelsStr).get();
    } else if(ENTITY === 'Campaign') {
       实体 Iter = AdWordsApp.campaigns().withCondition("LabelNames CONTAINS_ANY "+labelsStr).get();
    } else {
      throw 'Invaid ENTITY type. Should be Campaign, Keyword or Ad. ENTITY:'+ENTITY;
    }
     
    while(entityIter.hasNext()) {
      var  实体  =  实体 Iter.next();
      pauseEntity(entity,  暂停 Str);
      enableEntity(entity, enableStr);
    }
  }
}
 
//Helper function to build a list of 标签 in the account
function buildLabelArray(pauseStr,enableStr) {
  var 标签Array = [];
  try {
    var  标签 Iter = AdWordsApp.labels().withCondition("Name IN ['"+pauseStr+"','"+enableStr+"']").get();
    while(labelIter.hasNext()) {
      标签Array.push(labelIter.next().getName());
    }
    return 标签Array;
  } catch(e) {
    Logger.log(e);
  }
  return [];
}
 
//Helper function to  暂停  entities
function  暂停 Entity(entity,  暂停 Str) {
  var  标签 Iter =  实体 .labels().withCondition("Name = '"+pauseStr+"'").get();
  if(labelIter.hasNext()) {
     实体 .pause();
     实体 .removeLabel(pauseStr);
  }
}
 
//Helper function to enable entities
function enableEntity(entity, enableStr) {
  var  标签 Iter =  实体 .labels().withCondition("Name = '"+enableStr+"'").get();
  if(labelIter.hasNext()) {
     实体 .enable();
     实体 .removeLabel(enableStr);
  }
}

2012年12月5日,星期三

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

在最后的自动化每月维护任务中,找到 AdWords for Dummies 使用AdWords脚本,我们将在月底清理帐户。

通过删除没有任何转化的关键字来减少您的帐户。


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

//-----------------------------------
// Pause Keywords That Are Not Performing
// Created By:  拉斯  Savage
// FreeAdWordsScripts.com
//-----------------------------------
function main() {
  var THE_VALUE_OF_ONE_CONVERSION = 10;
  var DECREASE_BIDS_BY_PERCENTAGE = .5;
  
  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) {
      if(THE_VALUE_OF_ONE_CONVERSION * 5 > cost) {
        kw.pause();
      }
      else if(THE_VALUE_OF_ONE_CONVERSION * 2 > cost) {
        kw.setMaxCpc(kw.getMaxCpc() * (1-DECREASE_BIDS_BY_PERCENTAGE)); 
      }
    }else{
      //no 转换 on this 关键词
      //we will deal with that later
      continue;
    }
  }
}

谢谢,
拉斯

2012年11月19日,星期一

暂停所有没有印象的关键字

让我们从一个非常简单的脚本开始。此关键字将找到您帐户中从未留下任何印象的所有关键字,并暂停(或删除,如果您看到下面的评论)该关键字,以免对质量得分造成负面影响。 根据Google的说法,帐户中存在的内容和停滞时间越长,对质量得分的影响就越大。 正如读者指出的那样, 第四个子弹在这里 似乎与这一说法相矛盾。这是一个很棒的脚本,可以每隔几个月安排一次,以确保您减少了帐户中的所有净额。

谢谢,
拉斯
/*********************************************
* Pause Keywords With No Impressions All Time
* Version 1.1
* Changelog v1.1
*   - Updated for speed and  广告 ded 评论s 
* Created By:  拉斯  Savage
* FreeAdWordsScripts.com
**********************************************/
var TO_NOTIFY = "[email protected]";
function main() {
  // Let's start by getting all of the 关键字 with 没有印象
  var kwIter = AdWordsApp.keywords()
    .withCondition("Impressions = 0") // could be "Clicks = 0" also
    .forDateRange("ALL_TIME") // could use a specific date range like "20130101","20131231"
    .withCondition("Status = ENABLED")
    .withCondition("CampaignStatus = ENABLED")
    .withCondition("AdGroupStatus = ENABLED")
    .get();
 
  // It is much faster to store all the 关键字 you want to process
  // and then make the changes all  在  once. This takes  广告 vantage
  // of the batch processing behind the scenes.
  var toPause = [];
  while (kwIter.hasNext()) {
    var kw = kwIter.next();
    toPause.push(kw);
    // This is to make sure you see things during the preview
    // When you run it for real, you can 去掉  this clause to
    // increase speed.
    if(AdWordsApp.getExecutionInfo().isPreview() &&
       AdWordsApp.getExecutionInfo().getRemainingTime() < 10) {
      break;
    }
  }
  
  // Now go through each one and  暂停  them.
  for(var i in toPause) {
    toPause[i].pause();
    //Or you could use toPause[i].remove(); to  删除  the 关键词 altogether
  }
  
  // Sent an  电子邮件  to  通知  you of the changes
  MailApp.sendEmail(TO_NOTIFY, 
                    "AdWords Script Paused "+toPause.length+" Keywords.", 
                    "Your AdWords Script  暂停 d "+toPause.length+" 关键字.");
}