此為 Google Ads 指令碼論壇上最常發生的問題彙整。
常見的 JavaScript 錯誤
指令碼執行失敗並顯示「找不到函式:FUNCTION_NAME」
這通常是指令碼名稱拼寫有誤的結果。
檢查函式名稱的拼寫是否正確,以及拼寫是否正確無誤,例如:
AdsApp.keywordz()
就會發生這個錯誤,因為keywordz
對 AdsApp 類別中的函式無效。AdsApp.Keywords()
也會因為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.getFinalUrl()
取代 ad.getDestinationUrl()
的呼叫時,就會發生這個錯誤。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」的統計資料
無法使用特定實體或日期範圍的資料是執行報表或進行統計資料呼叫時常見的錯誤。您可以嘗試以下幾種方法:
檢查要擷取統計資料或執行報表的日期範圍。
如果您為管理不同貨幣帳戶的 Ads Manager 指令碼擷取帳戶層級統計資料,可以取得以管理員帳戶使用的貨幣取回費用。
Google Ads 可能尚未提供您所需的資料。詳情請參閱資料更新指南。
要求新增功能
是否可使用功能 X?
請參閱我們的參考說明文件。
X 功能何時會推出?
我們會先嘗試開發使用者最期待的功能,如果您想查看特定功能,請按照下列步驟操作:
首先,請查看參考說明文件,確認 Google Ads 指令碼不支援這項功能。
如果找不到,請搜尋 Google Ads 指令碼論壇,查看是否有人問過。如果有,請對該會話串表示認同,或是留言來提供更多詳細資料 (例如用途)。
如果您尚未要求使用這項功能,請在 Google Ads 指令碼論壇上開啟新的執行緒,以提出功能要求。請確認您提供這項功能可解決的用途。請盡可能附上說明中心指南連結,或包含這項功能的 AdWords API 網誌文章 / 指南。這將協助其他開發人員對功能要求表達認同。我們會根據功能要求的熱門程度,決定優先進行順序。
將貼文標記為「功能要求」,方便我們 (以及使用者) 迅速檢查功能要求。