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