動画キャンペーンでは、YouTube や、Google 動画パートナー上のウェブサイトやアプリに動画広告を表示できます。
API の上限
Google Ads API は主に、既存の動画キャンペーン、広告グループ、広告、条件の取得とレポート作成をサポートしています。動画キャンペーンは、Google Ads API を使用して作成または変更することはできません。ただし、バージョン固有の例外と動作があります。
VideoResponsiveAdInfoの可変性:v24以降、VideoResponsiveAdInfoオブジェクトは可変です(以前のバージョンでは不変でした)。VideoResponsiveAdInfoを作成または変更する場合、videos、business_name、logo_imagesフィールドは必須です。- ブランド保護の適合性:
v24以降、キャンペーン単位のcampaign.video_brand_safety_suitabilityは削除されます。customer.video_brand_safety_suitabilityを使用して、アカウント単位でブランド保護の適合性をクエリします。 - 動画キャンペーンのテスト:
v24以降、experiment.video_experimentを使用して、動画キャンペーンで構成されるYOUTUBE_CUSTOMテストを構成できます。
キャンペーン管理の代替手段
動画キャンペーンをプログラムで作成または管理する必要がある場合は、次のオプションを検討してください。
- Google 広告スクリプト: Google 広告スクリプトを使用して動画キャンペーンを管理できます。これにより、Google 広告の管理画面内で自動管理が可能になります。
- デマンド ジェネレーション キャンペーン: YouTube を含む Google サービス全体に動画広告を配信することが目標の場合、Google Ads API でデマンド ジェネレーション キャンペーンの作成と管理が完全にサポートされています。
パフォーマンス データを取得する
動画キャンペーン、広告グループ、条件のパフォーマンス データを取得するには、GoogleAdsService.SearchStream を使用して campaign.advertising_channel_type = 'VIDEO' でフィルタします。
広告グループのパフォーマンス
次のクエリは、ad_group リソースから、TrueView 動画視聴回数や四分位数の完全再生率などの動画キャンペーンと広告グループの指標を取得します。
SELECT
campaign.id,
campaign.name,
campaign.advertising_channel_type,
ad_group.id,
ad_group.name,
metrics.impressions,
metrics.clicks,
metrics.ctr,
metrics.video_trueview_views,
metrics.video_quartile_p100_rate
FROM ad_group
WHERE campaign.advertising_channel_type = 'VIDEO'
動画のプレースメントと条件に関するレポート
ad_group_criterion は指標やセグメントを直接サポートしていないため、managed_placement_view などの条件ビュー リソースを使用して、ターゲットに設定された YouTube 動画、YouTube チャンネル、その他の手動プレースメントのパフォーマンス指標を取得します。
SELECT
campaign.id,
ad_group.id,
ad_group_criterion.criterion_id,
ad_group_criterion.type,
ad_group_criterion.youtube_video.video_id,
ad_group_criterion.youtube_channel.channel_id,
metrics.impressions,
metrics.video_trueview_views
FROM managed_placement_view
WHERE campaign.advertising_channel_type = 'VIDEO'
AND ad_group_criterion.type IN ('YOUTUBE_VIDEO', 'YOUTUBE_CHANNEL')
AND segments.date DURING LAST_30_DAYS
キャンペーンのリーチとフリークエンシーのレポート
動画キャンペーンの場合、campaign リソースでユニークリーチ指標をクエリして、特定のインプレッション フリークエンシーで広告が表示されたユニーク ユーザー数を測定できます。
次のユニーク ユーザーに関する指標は、フリークエンシー バケット全体のユーザーリーチ率を測定します。
metrics.unique_users: 選択した期間(最大 92 日間)内に広告を 1 回以上見たユニーク ユーザーの数。行をまたいで集計することはできません。metrics.unique_users_two_plus~metrics.unique_users_ten_plus: 広告を 2 ~ 10 回以上見たユニーク ユーザーの数(最大 31 日間の期間、metrics.unique_users_six_plus~metrics.unique_users_nine_plusで v26 以降の 2 ~ 10 回以上のセットを完了)。metrics.average_impression_frequency_per_user: リクエストされた期間(最大 92 日間)にユニーク ユーザーが広告を閲覧した平均回数。行間で集計することはできず、コンパニオン_infoフィールドはありません。
v26 以降では、各リーチ指標に ReachMetricInfo 型のコンパニオン メタデータ フィールド(metrics.unique_users_info、metrics.unique_users_two_plus_info~metrics.unique_users_ten_plus_info)があります。
Google 広告クエリ言語(GAQL)では、コンパニオン リーチ フィールドは SELECT 句で直接選択される MESSAGE 指標です(例: metrics.unique_users_info)。SELECT 句に .reach_metric_states を追加しないでください。GAQL でネストされたメッセージ フィールドを選択すると、UNRECOGNIZED_FIELD で失敗します。代わりに、metrics.unique_users_info を選択すると、ReachMetricState 型の繰り返し列挙型フィールド reach_metric_states を含む ReachMetricInfo メッセージが返されます。このフィールドは、指標が抑制されたか、完了したかを示します。
リーチ指標が抑制されているか、保持期間(PRIVACY_SUPPRESSION、QUALITY_SUPPRESSION、DATE_RANGE_BEYOND_RETENTION)外の場合、Metrics の optional int64 フィールドは設定されません(フィールドの存在が確認されていない場合は 0 と評価されます)。一方、LOW_QUALITY には数値指標が入力されます。
ReachMetricState 列挙値は、リーチデータのステータスを示します。
COMPLETE: リーチ指標は完全であり、プライバシー、品質、その他の制限による抑制はありません。PRIVACY_SUPPRESSION: ユーザーのプライバシーを保護するため、リーチデータが抑制されました(オーディエンス数が k-匿名性のしきい値を満たしていない場合など)。QUALITY_SUPPRESSION: データ品質要件により、リーチデータが抑制されました。LOW_QUALITY: リーチ指標は計算されましたが、低品質としてフラグが付けられています。DATE_RANGE_BEYOND_RETENTION: 選択した期間がリーチデータの 3 年間のデータの保持期間を超えているため、リーチ指標は利用できません。
次のクエリは、動画キャンペーンのリーチ指標とその抑制状態を取得します。
SELECT
campaign.id,
campaign.name,
segments.date,
segments.device,
metrics.unique_users,
metrics.unique_users_info,
metrics.average_impression_frequency_per_user,
metrics.unique_users_two_plus,
metrics.unique_users_two_plus_info,
metrics.unique_users_three_plus,
metrics.unique_users_three_plus_info,
metrics.unique_users_four_plus,
metrics.unique_users_four_plus_info,
metrics.unique_users_five_plus,
metrics.unique_users_five_plus_info,
metrics.unique_users_six_plus,
metrics.unique_users_six_plus_info,
metrics.unique_users_seven_plus,
metrics.unique_users_seven_plus_info,
metrics.unique_users_eight_plus,
metrics.unique_users_eight_plus_info,
metrics.unique_users_nine_plus,
metrics.unique_users_nine_plus_info,
metrics.unique_users_ten_plus,
metrics.unique_users_ten_plus_info
FROM campaign
WHERE campaign.advertising_channel_type = 'VIDEO'
AND segments.date BETWEEN '2026-01-01' AND '2026-01-31'