一般的な問題

AdWords Scripts フォーラムに最も多く寄せられた問題を紹介いたします。

一般的な JavaScript の問題

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

こうした問題の多くは、スクリプトの関数名のスペル間違いが原因のようです。まず、関数名のスペルや、大文字と小文字の使い方に誤りがないかをご確認ください。たとえば、「AdWordsApp.keywordz()」はエラーとなります。これは、「keywordz」が AdWordsApp クラスの有効な関数ではないためです。 また、「AdWordsApp.Keywords()」も、「keywords()」関数の大文字と小文字が適切でないためエラーとなります。次に、指定した関数が存在することをご確認ください。たとえば、「AdWordsApp.keywords().next()」はエラーとなります。これは、「AdWordsApp.keywords()」が「KeywordSelector」を返すにもかかわらず、「next()」が「KeywordIterators」のメソッドであるためです。 この場合の適切なコードは、「AdWordsApp.keywords().get().next()」です。

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

この問題の多くは、関数が実行する操作は正しいが、その関数を main() メソッドから呼び出していないというのが最も一般的な原因のようです。これは、ドキュメントからコード スニペットをコピーして貼り付けた場合によく発生します。

コードのバージョン コード スニペット
バージョン 1(動作しない)
function main() {
  // Call to getAllCampaigns is missing, so this script does nothing.
}

function getAllCampaigns() {
  // AdWordsApp.campaigns() will return all campaigns that are not
  // removed by default.
  var campaignIterator = AdWordsApp.campaigns().get();
  Logger.log('Total campaigns found : ' +
      campaignIterator.totalNumEntities());
  while (campaignIterator.hasNext()) {
    var campaign = campaignIterator.next();
    Logger.log(campaign.getName());
  }
}
バージョン 2(動作しない)
function main() {
  // Call to getAllCampaigns is missing, so this script does nothing.

  function getAllCampaigns() {
    // AdWordsApp.campaigns() will return all campaigns that are not
    // removed by default.
    var campaignIterator = AdWordsApp.campaigns().get();
    Logger.log('Total campaigns found : ' +
        campaignIterator.totalNumEntities());
    while (campaignIterator.hasNext()) {
      var campaign = campaignIterator.next();
      Logger.log(campaign.getName());
    }
  }
}
バージョン 3(動作する)
function main() {
  getAllCampaigns();
}

function getAllCampaigns() {
  // AdWordsApp.campaigns() will return all campaigns that are not removed
  // by default.
  var campaignIterator = AdWordsApp.campaigns().get();
  Logger.log('Total campaigns found : ' +
      campaignIterator.totalNumEntities());
  while (campaignIterator.hasNext()) {
    var 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.
  var ad = AdWordsApp.ads().get().next();
  var url = ad.getFinalUrl();

  // Correct snippet.
  var ad = AdWordsApp.ads().get().next();
  var url = ad.urls().getFinalUrl();
}

X の統計情報を取得できない

特定のエンティティや日付範囲のデータが返されない問題は、レポートの実行や統計情報の呼び出しの際に多く発生します。この場合、以下のような解決策を試すことができます。

  1. 統計情報の取得やレポート実行の対象となる日付範囲を見直す。
  2. リクエスト対象の列 / ディメンションが正しいことを確認する。サポートされているレポート列のすべてのリストは、レポートのリファレンス ページにあります。管理画面の列と API レポート列のマッピングに関するサポートは、レポートと管理画面の対応に関するガイドを参照してください。
  3. 通貨の異なる複数のアカウントを管理するクライアント センター(MCC)スクリプトでアカウント単位の統計情報を取得する場合、MCC アカウントの通貨で費用が返されます。
  4. 必要なデータが AdWords に反映されていない場合があります。詳しくは、データの更新に関するガイドを参照してください。

レポートの X 列をリクエストするとエラーが表示される

このエラーは、既存のレポートスクリプトに新しい列を追加した場合に発生することがあります。このエラーには以下のようにいくつかの原因があります。

  1. アクセスしようとしている列がレポートの種類に対応していない。これに該当するかどうか確認する場合は、レポートのリファレンス ページを参照してください。
  2. 列名の大文字と小文字が正しくない。レポートのリファレンス ページの値と一致している必要があります。たとえば、クリックの統計情報をリクエストする場合、列名は「Clicks」にする必要があります。「clicks」、「click」、「CLICK」はすべて無効です。
  3. より新しいバージョンの API ではリクエスト対象の列のサポートが終了している、または、つい最近のバージョンの API で導入された列をリクエストしている。 レポートのリファレンス ページで紹介されている列は、常に最新バージョンの API が対象です。ただし、以下のような理由により、最新バージョンのレポートにコードがアクセスできない場合があります。

    1. AdWords スクリプトが、かなり最近にリリースされたバージョンの API レポートに対応していない。新機能はスクリプトのフォーラムで定期的に発表されています。新しいバージョンのレポートがサポートされているかどうかをご確認ください。
    2. レポートが、レポートガイドに記載の特定バージョンのレポートに呼び出しを実行している。 この場合、バージョン番号を、アクセス対象の列をサポートするものに変更する必要があるかもしれません。
  4. レポートでリクエストしているセグメント列の数が上限を超えている。個々のセグメント列のリクエストにより、レポートの列の数は大幅に増加します。リクエストするセグメント列が増えるに従って、エラーによってレポートが失敗する確率は高くなります。セグメント列の数の上限 7 にすることをおすすめします。

  5. レポートに、その他の列と互換性がない列がある。この場合は、レポートのリファレンス ページで詳細をご確認ください。

機能リクエスト

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

サポート対象エンティティのリストをご覧ください。

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

Google では、最もリクエストの多かった機能から実装作業に着手しています。ご希望の機能がある場合は、以下の手順でリクエストしていただけます。

  1. サポート対象エンティティのリストで、AdWords スクリプトがその機能をサポートしていないことを確認します。
  2. サポートされていない場合は、AdWords スクリプトのフォーラムを検索し、リクエストが出されていないことを確認します。既にリクエストが出されている場合はそのスレッドに賛成票を投じ、使用例などさらに詳しい情報を追加するにはコメントを投稿します。
  3. 機能リクエストが出されていない場合は、機能をリクエストする新しいスレッドを AdWords スクリプトのフォーラムに立てます。 使用例を挙げ、その機能が提供する解決策を説明してください。可能な場合は、その機能について説明しているヘルプセンターのガイドや AdWords API のブログ記事 / ガイドのリンクを記載します。 これによって、その他のデベロッパーからの賛同を得やすくなります。人気のある機能リクエストは優先度が高くなります。
  4. Google の担当者(およびその他のユーザー)が簡単に見つけられるよう、投稿に「機能リクエスト」のタグを付けます。

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

個々の機能の具体的な使用方法については、コード スニペットソリューションの例をご覧ください。適切なコード スニペットが見つからない場合は、ぜひフォーラムにてリクエストしてください。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。