常見問題

本文彙整了Google Ads 指令碼論壇中最常見的問題。

常見的 JavaScript 錯誤

指令碼失敗,並顯示「Cannot find function: FUNCTION_NAME」(找不到函式:FUNCTION_NAME)

這通常是指令碼中的函式名稱拼字錯誤所致。

  1. 檢查函式名稱的拼字是否正確,且大小寫是否正確,例如 AdsApp.keywordz() 會導致這項錯誤,因為 keywordz 不是 AdsApp 類別中的有效函式。 AdsApp.Keywords() 也會失敗,因為 keywords() 函式的拼字大小寫不正確。

  2. 確認函式是否存在,例如 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 的統計資料

執行報表或進行統計資料呼叫時,您可能會遇到資料無法用於特定實體或日期範圍的常見錯誤。你可以嘗試以下幾種方法:

  1. 請檢查您擷取統計資料或執行報表的日期範圍。

  2. 如果您為管理不同幣別帳戶的 Google Ads 管理員指令碼擷取帳戶層級統計資料,系統會以管理員帳戶的幣別傳回費用。

  3. Google Ads 可能尚未提供您要尋找的資料。詳情請參閱資料更新頻率指南

如何使用 X 功能?

如需特定功能的用法範例,請參閱程式碼片段解決方案。如果找不到合適的程式碼片段,歡迎在論壇中提出要求。

仍需要支援服務嗎?

如需我們能提供協助的領域,請前往「取得協助」頁面。