一般的な事象

これは、Google 広告スクリプト デベロッパーから寄せられた一般的な問題のまとめです。

一般的な JavaScript の問題

よくある JavaScript のエラーをいくつかご紹介します。

「関数 FUNCTION_NAME が見つかりません」というエラーでスクリプトが失敗する

こうした問題の多くは、スクリプトの関数名のスペル間違いが原因のようです。

  1. 関数名のスペルが正しく、大文字と小文字の使い分けも正しいことを確認します。たとえば、AdsApp.keywordz() は、keywordzAdsApp クラスの有効な関数ではないため、このエラーになります。keywords() 関数の大文字と小文字の使い分けが正しくないため、AdsApp.Keywords() も失敗します。

  2. 関数が存在することを確認します。たとえば、AdsApp.keywords().next() は、AdsApp.keywords()KeywordSelector を返すのに対し、next()KeywordIterator オブジェクトのメソッドであるため、失敗します。正しいコードは AdsApp.keywords().get().next() です。

スクリプトは実行されるが、何の処理も実行されない

この問題の最も一般的な原因は、オペレーションを実行する関数があるのに、main() メソッドから呼び出していないことです。これは、Google のドキュメントから コード スニペットをコピーして貼り付ける際に 発生することがよくあります。

コーディングの手法 コード スニペット
バージョン 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());
  }
}

スクリプトを更新すると、「関数 getFinalUrl が見つかりません」というエラーが表示される

スクリプトを変更して アップグレードされた URL で動作するようにすると、このエラーが発生することがあります。これは 、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 広告マネージャー スクリプトでアカウント レベルの統計情報を取得すると、マネージャー アカウントの通貨で費用が返されます。

  3. 必要なデータが Google 広告 に反映されていない場合があります。詳しくは、 データの更新速度に関するガイドをご覧ください 。

機能 X の使用方法を教えてください

特定の機能の使用方法の例については、コード スニペットソリューションをご覧ください。適切なコード スニペットが見つからない場合は、 Discordでリクエストしてください。

さらにサポートを希望されますか?

サポートが必要な場合は、 [ヘルプ] ページをご覧ください。