Google 広告では、テキスト広告、イメージ広告、モバイル広告など、さまざまなタイプの広告をご利用いただけます。このガイドでは、Google 広告スクリプトを使用して広告を作成、取得、レポートする方法について説明します。Google 広告 で使用できるすべての広告の種類の概要については、API ガイドをご覧ください。
作成
スクリプトでは、AdGroup インスタンスの newAd() メソッドを使用して広告を作成できます。これにより、サポートされている広告タイプのビルダーを作成する AdBuilderSpace が返されます。
次のスニペットは、レスポンシブ検索広告を作成する方法を示しています。
let adOperation = adGroup.newAd().responsiveSearchAdBuilder()
.withHeadlines(["Headline 1", "Headline 2", "Headline 3"])
.withDescriptions(["Description 1", "Description 2"])
.withFinalUrl("http://www.example.com")
.withPath1("path1")
.withPath2("path2")
.build();
検査
すべての広告タイプに関連付けられている情報の一部(広告の ID や承認状況など)は、Ad からすぐに取得できます。また、広告は一時停止、有効化、削除できます。
レスポンシブ検索広告の見出しなど、広告のタイプに固有のフィールドにアクセスするには、asType() メソッドを使用して AdViewSpace を作成します。これにより、型固有のメソッドを公開する Ad の拡張バージョンにアクセスできます。
次のスニペットは、すべてのレスポンシブ検索広告の広告見出しを取得します。
const iterator = AdsApp.ads().withCondition("Type = RESPONSIVE_SEARCH_AD").get();
while (iterator.hasNext()) {
let ad = iterator.next();
let responsiveSearchAd = ad.asType().responsiveSearchAd();
let headlines = responsiveSearchAd.getHeadlines();
}
条件 Type = RESPONSIVE_SEARCH_AD により、イテレータのすべての広告がレスポンシブ検索広告であることが保証されます。タイプが正しくない広告を表示しようとすると、スクリプトの実行が停止するエラーが発生します。そのため、広告のタイプがわかっている場合にのみ、タイプ固有のフィールドを表示することが重要です。
次のスニペットは、Ad.isType() メソッドを使用して広告が正しいタイプかどうかを判断する方法を示しています。
if (ad.isType().responsiveSearchAd()) {
let responsiveSearchAd = ad.asType().responsiveSearchAd();
let headlines = responsiveSearchAd.getHeadlines();
let descriptions = responsiveSearchAd.getDescriptions();
}
標準のセレクタを使用して広告の見出しテキストでフィルタリングすることはできませんが、取得後に JavaScript でフィルタリングすることはできます。
const iterator = AdsApp.ads().withCondition("Type = RESPONSIVE_SEARCH_AD").get();
while (iterator.hasNext()) {
let ad = iterator.next();
let responsiveSearchAd = ad.asType().responsiveSearchAd();
let headlines = responsiveSearchAd.getHeadlines();
// Filter for ads containing a specific headline.
if (headlines.some(h => h.getText().includes("Special Offer"))) {
console.log(`Found ad with ID ${ad.getId()}`);
}
}
レポート
ad_group_ad ビューを使用すると、通常の統計情報に加えて広告フィールドをクエリできます。たとえば、ad_group_ad.ad.type を使用して広告タイプでフィルタできます。次のスニペットは、すべてのレスポンシブ検索広告の統計情報を取得する方法を示しています。
const results = AdsApp.search(
"SELECT ad_group_ad.ad_group.id, " +
"ad_group_ad.ad.id, " +
"metrics.clicks, " +
"metrics.impressions, " +
"metrics.cost " +
"FROM ad_group_ad " +
"WHERE ad_group_ad.ad.type = 'RESPONSIVE_SEARCH_AD' " +
"AND segments.date DURING LAST_7_DAYS");
while (results.hasNext()) {
let row = results.next();
let adId = row.adGroupAd.ad.id;
let clicks = row.metrics.clicks;
...
}
アセットのコンテンツでフィルタリングする
レスポンシブ検索広告の見出しや説明の内容で大規模にフィルタするには、ad_group_ad_asset_view リソースを使用します。このビューでは、各見出しと説明文が個別の行として扱われるため、アセットのテキストでフィルタできます。
次のスニペットは、特定の広告見出しを含むすべてのレスポンシブ検索広告の統計情報を取得します。
const results = AdsApp.search(
"SELECT ad_group_ad.ad.id, " +
"asset.text_asset.text, " +
"metrics.clicks, " +
"metrics.impressions " +
"FROM ad_group_ad_asset_view " +
"WHERE asset.text_asset.text LIKE '%Special Offer%' " +
"AND ad_group_ad_asset_view.field_type = 'HEADLINE'");
while (results.hasNext()) {
let row = results.next();
let adId = row.adGroupAd.ad.id;
let text = row.asset.textAsset.text;
let clicks = row.metrics.clicks;
console.log(`Ad ID ${adId} with headline "${text}" had ${clicks} clicks.`);
}
スクリプトでのレポート作成について詳しくは、レポートに関するガイドをご覧ください。