0

https://developers.google.com/adwords/scripts/docs/tutorials/countdown-saleからカウントダウン スクリプトを実装しようとしています。

スクリプトは単一の広告グループに対して機能しますが、複数の広告グループの一部を実行しようとすると、次のエラーが発生し続けます:

TypeError: undefined のメソッド「setAdParam」を呼び出せません。(9行目)

私の完全なスクリプトは次のとおりです。

// Date to use to find out how many days are remaining.
var END_DATE = new Date('February 24, 2013');
// Change this to the Ad Group you set up with text ads with AdParams.
var AD_GROUP_NAMES = ['AdGroup1', AdGroup2'];

function main() {
  var timeLeft = calculateTimeLeftUntil(END_DATE);
  var adGroups = getAdGroups(AD_GROUP_NAMES);

  while (adGroups.hasNext()) {
  var adGroup = adGroups.next();
  var keywords = adGroup.keywords().get();
    // We want to update {param1} to use our calculated days and {param2} for hours.
    keywords.setAdParam(1, timeLeft['days']); // HERE COMES THE ERROR
    keywords.setAdParam(2, timeLeft['hours']); 
  }
}

var DAY_IN_MILLISECONDS = 1000*60*60*24;

function calculateTimeLeftUntil(end) {
  var current = new Date();
  var timeLeft = {};
  var daysFloat = (end - current) / (DAY_IN_MILLISECONDS);
  timeLeft['days'] = Math.floor(daysFloat);
  timeLeft['hours'] = Math.floor(24 * (daysFloat - timeLeft['days']));
  return timeLeft;
}

function getAdGroups(names) {
  var predicateValues = "['" + names.join("','") + "']";
  Logger.log(predicateValues);
  return AdWordsApp.adGroups()
      .withCondition('Name IN ' + predicateValues)
      .withLimit(names.length)
      .get();
}
4

1 に答える 1

0

問題は、個々のキーワードではなく、キーワード イテレータに ad パラメータを設定しようとしていることです。

これの代わりに

var keywords = adGroup.keywords().get();
// We want to update {param1} to use our calculated days and {param2} for hours.
keywords.setAdParam(1, timeLeft['days']); // HERE COMES THE ERROR

これを試して:

var keywords = adGroup.keywords().get();
while (keywords.hasNext()) {
  var keyword = keywords.next();
  // and now
  keyword.setAdParam(...);
}
于 2013-04-22T21:39:45.787 に答える