此為 Google Ads 指令碼論壇中常見問題的合輯。
常見的 JavaScript 錯誤
指令碼執行失敗,並顯示「Cannot find function: 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.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 Manager 指令碼 (用來管理不同貨幣的帳戶) 的帳戶層級統計資料,這筆費用會以管理員帳戶的幣別取回。
Google Ads 可能沒有您要尋找的資料。詳情請參閱資料更新指南。
要求新增功能
可以使用功能 X 嗎?
請參閱我們的參考說明文件。
X 功能將於何時推出?
我們會嘗試先處理要求最多的功能。如果您想查看某項功能,請按照下列步驟操作:
首先,請查看參考說明文件,確認 Google Ads 指令碼不支援這項功能。
如果不是,請搜尋 Google Ads 指令碼論壇,看看我們是否已問過您。如果是,請對該討論串表示認同;如要分享特定用途等其他詳細資料,請留言。
如果尚未使用這項功能,請在 Google Ads 指令碼論壇中開啟新的討論串,提出功能要求。請務必提供這項功能可以解決的用途。請盡量提供說明中心指南的連結,或介紹這項功能的 AdWords API 網誌文章 / 指南。這有助於其他開發人員對功能要求表示認同。我們會根據使用者的熱門程度排定功能要求的優先順序。
將貼文標記為「功能要求」,讓我們 (和使用者) 能夠快速檢查功能要求。