我們為您彙整了 Google Ads 指令碼論壇中最常見的問題。
JavaScript 常見錯誤
指令碼執行失敗,出現「找不到函式:FUNCTION_NAME」
這通常是指令碼中拼字錯誤函式的結果。
請檢查函式名稱拼寫是否正確無誤,且拼字正確。例如:
AdsApp.keywordz()
會產生這個錯誤,因為keywordz
不是 AdsApp 類別中的有效函式。由於keywords()
函式的拼字錯誤,AdsApp.Keywords()
也會失敗。檢查函式是否存在;例如:
AdsApp.keywords().next()
會失敗,因為AdsApp.keywords()
會傳回KeywordSelector
,而next()
是KeywordIterator
物件的方法。正確的程式碼應為AdsApp.keywords().get().next()
。
我的指令碼可以執行,但不會執行任何動作
這個問題最常見的原因是您有一個函式將執行了作業,但您不是從 main()
方法呼叫該函式。這通常是因為從我們的說明文件複製及貼上程式碼片段。
程式設計方法 | 程式碼片段 |
---|---|
版本 1 (無法運作) |
function main() { // Call to getAllCampaigns is missing, so this script does nothing. } function getAllCampaigns() { // AdsApp.campaigns() will return all campaigns that are not // removed by default. let campaignIterator = AdsApp.campaigns().get(); console.log('Total campaigns found : ' + campaignIterator.totalNumEntities()); while (campaignIterator.hasNext()) { let campaign = campaignIterator.next(); console.log(campaign.getName()); } } |
版本 2 (無法正常運作) |
function main() { // Call to getAllCampaigns is missing, so this script does nothing. function getAllCampaigns() { // AdsApp.campaigns() will return all campaigns that are not // removed by default. let campaignIterator = AdsApp.campaigns().get(); console.log('Total campaigns found : ' + campaignIterator.totalNumEntities()); while (campaignIterator.hasNext()) { let campaign = campaignIterator.next(); console.log(campaign.getName()); } } } |
版本 3 (有效) |
function main() { getAllCampaigns(); } function getAllCampaigns() { // AdsApp.campaigns() will return all campaigns that are not removed // by default. let campaignIterator = AdsApp.campaigns().get(); console.log('Total campaigns found : ' + campaignIterator.totalNumEntities()); while (campaignIterator.hasNext()) { let campaign = campaignIterator.next(); Logger.log(campaign.getName()); } } |
升級指令碼時收到「找不到函式 getFinalUrl」的錯誤訊息
將指令碼變更為使用升級版網址時,就可能發生這項錯誤。當您將 ad.getDestinationUrl()
呼叫替換為 ad.getFinalUrl()
時,就會發生這個錯誤。getFinalUrl()
是 AdUrls 類別的一部分,因此您需要將程式碼變更為 ad.urls().getFinalUrl()
:
function main() {
// Incorrect snippet. getFinalUrl is not a member of the Ad class.
let ad = AdsApp.ads().get().next();
let url = ad.getFinalUrl();
// Correct snippet.
let ad = AdsApp.ads().get().next();
let url = ad.urls().getFinalUrl();
}
沒有 X 的統計資料
無法取得特定實體或日期範圍的資料,通常是在執行報表或進行統計資料呼叫時可能會遇到的常見錯誤。您可以嘗試下列幾種方法:
查看您要擷取統計資料或執行報表的日期範圍。
如果您針對管理不同貨幣帳戶的 Google Ads 指令碼擷取帳戶層級統計資料,就會以管理員帳戶的幣別退回費用。
Google Ads 可能還沒有您所需的資料。詳情請參閱資料更新指南。
要求新增功能
功能 X 是否可用?
請參閱我們的參考說明文件。
X 功能何時會推出?
我們會先嘗試要求最多的功能。如果您想查看某項功能,請按照下列步驟操作:
首先,請參閱參考說明文件,確認 Google Ads 指令碼不支援這項功能。
如果沒有,請搜尋 Google Ads 指令碼論壇,看看是否已有人提出過這項請求。如果是的話,請對該討論串表示認同,或者想分享其他細節 (例如用途),請留下評論。
如果尚未要求該功能,請在 Google Ads 指令碼論壇中開啟新的會話串來提出功能要求。請務必提供這項功能可以解決的用途。可以的話,請附上說明中心指南的連結,或是介紹這項功能的 AdWords API 網誌文章 / 指南。這項功能可幫助其他開發人員對功能要求提出認同。我們會依照使用者的熱門程度,決定各項功能的優先順序。
將貼文標記為「功能要求」,方便我們 (或使用者) 快速查看功能要求。