動画キャンペーン

動画キャンペーンでは、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'