これは、Google 広告スクリプト フォーラムでよく寄せられる問題のまとめです。
一般的な JavaScript の問題
「関数 FUNCTION_NAME が見つかりません」というエラーでスクリプトが失敗する
こうした問題の多くは、スクリプトの関数名のスペル間違いが原因のようです。
関数名のスペルが正しく、大文字と小文字の区別も正しいことを確認します。例:
AdsApp.keywordz()
はこのエラーになります。これは、keywordz
が AdsApp クラスの有効な関数ではないためです。keywords()
関数のスペルケースが正しくないため、AdsApp.Keywords()
も失敗します。関数が存在することを確認します(例:
AdsApp.keywords()
はKeywordSelector
を返しますが、next()
はKeywordIterator
オブジェクトのメソッドであるため、AdsApp.keywords().next()
は失敗します。正しいコードは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()); } } |
スクリプトを更新すると、「関数 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 の統計情報を取得できない
特定のエンティティや日付範囲のデータが返されない問題は、レポートの実行や統計情報の呼び出しの際に多く発生します。次の方法をお試しください。
統計情報の取得やレポート実行の対象となる日付範囲を見直す。
通貨が異なるアカウントを管理する Ads Manager スクリプトのアカウント単位の統計情報を取得すると、マネージャー アカウントの通貨で費用が返されます。
必要なデータが Google 広告 に反映されていない場合があります。詳しくは、データの鮮度に関するガイドをご覧ください。
機能 X の使用方法を教えてください
特定の機能の使用例については、コード スニペットとソリューションをご覧ください。適切なコード スニペットが見つからない場合は、フォーラムでリクエストしてください。
サポートが必要な場合
サポートが必要な場合は、ヘルプページをご覧ください。