一般的な問題

ここでは、Google 広告スクリプト フォーラムで最も多く寄せられた質問をまとめています。

一般的な JavaScript の問題

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

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

  1. 関数名のスペルに誤りがないか、また、大文字と小文字の区別も正しいことを確認します。たとえば、AdsApp.keywordz() の場合、keywordzAdsApp クラスの有効な関数ではないため、このエラーが発生します。また、keywords() 関数の大文字と小文字が正しく設定されていないことが原因で、AdsApp.Keywords() が失敗します。

  2. 関数が存在することを確認してください。例:next()KeywordIterator オブジェクトのメソッドであるのに対し、AdsApp.keywords()KeywordSelector を返すため、AdsApp.keywords().next() は失敗します。正しいコードは 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 が見つかりません」というエラーが表示される

このエラーは、アップグレードされた 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 広告 MCC スクリプトでアカウント単位の統計情報を取得すると、MCC アカウントの通貨で費用が返されます。

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

機能リクエスト

機能 X は提供されていますか?

リファレンス ドキュメントをご覧ください。

機能 X はいつ提供されますか?

Google では、最もリクエストの多かった機能から実装作業に着手しています。使用したい機能がある場合は、次の手順を行います。

  1. まず、リファレンス ドキュメントで、この機能が Google 広告スクリプトでサポートされていないことを確認します。

  2. 利用できない場合は、Google 広告スクリプト フォーラムを検索して、以前に同じ質問がないか確認しましょう。「はい」の場合、そのスレッドに賛成票を投じます。ユースケースなどの詳細情報を共有したい場合はコメントを残してください。

  3. 機能がまだリクエストされていない場合は、Google 広告スクリプト フォーラムに新しいスレッドを開いて機能リクエストをお送りください。この機能で解決できるユースケースを提示してください。可能であれば、この機能について説明したヘルプセンター ガイドや AdWords API のブログ投稿やガイドへのリンクも掲載してください。他のデベロッパーが機能リクエストに賛成票を投じる際に役立ちます。機能リクエストには、人気度に基づいて優先順位が付けられます。

  4. 投稿に「機能リクエスト」のタグを付けると、ユーザーだけでなく Google でも機能リクエストを簡単に確認できます。

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

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