本文彙整了 Google Ads 指令碼開發人員經常提出的問題。
常見的 JavaScript 錯誤
以下列舉幾項常見的 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 getCampaigns is missing, so this script does nothing.
}
function getCampaigns() {
// AdsApp.campaigns() will return all Search and Display 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 getCampaigns is missing, so this script does nothing.
function getCampaigns() {
// AdsApp.campaigns() will return all Search and Display 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() {
getCampaigns();
}
function getCampaigns() {
// AdsApp.campaigns() will return all Search and Display 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());
}
}
|
升級指令碼時,出現「Cannot find function 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 的統計資料
執行報表或呼叫統計資料時,常見的錯誤是特定實體或日期範圍沒有資料。你可以嘗試下列幾種做法:
請檢查您要擷取統計資料或執行報表的日期範圍。
如果 Ads Manager 指令碼管理不同幣別的帳戶,您擷取帳戶層級統計資料時,系統會以管理員帳戶的幣別傳回費用。
Google Ads 可能尚未取得您要查看的資料。詳情請參閱資料更新間隔指南。
如何使用 X 功能?
請參閱程式碼片段和解決方案,瞭解如何使用特定功能。如果找不到合適的程式碼片段,歡迎在 Discord 中提出要求。
仍需要支援嗎?
如需我們可提供協助的領域,請前往「取得說明」頁面。