2013-02-15 61 views
0

我试图从https://developers.google.com/adwords/scripts/docs/tutorials/countdown-sale的AdWords倒计时脚本的广告群组错误

脚本执行倒计时脚本适用于单一的广告组,但尝试增加广告组的一部分时,我不断收到以下错误:

TypeError:无法调用未定义的方法“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(); 
} 

回答

0

的问题是,你想广告参数设置为关键字的迭代器,而不是个别关键字。

取而代之的是

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