縦型広告のコントロールと広告枠のフィルタリング

業種別広告では、ホテルなどの業種別フィードにリンクされている検索キャンペーン向け AI 最大化設定が有効な検索キャンペーンに、特別な機能が提供されます。広告グループ単位で配信する業種別広告フォーマットを制御できます。また、業種別広告アイテム グループ ルールを使用して、ターゲットとするフィード エンティティを制御できます。

概要

このガイドでは、業種別広告の管理に関する 2 つの主な機能について説明します。

  1. フォーマットの管理: 広告グループ単位で、特定の広告フォーマット(テキスト広告、予約リンク、業種別プロモーション広告)の有効 / 無効を切り替えます。
  2. 業種別広告アイテムの管理: SharedSet と SharedCriterion を使用するルールベースのシステムを使用して、リンクされた業種別(以前の旅行)フィードから特定の広告枠をフィルタしてターゲットに設定します。

前提条件

これらの機能を実装する前に、キャンペーンが次の要件を満たしていることを確認してください。

  • キャンペーン タイプ: 検索キャンペーンである必要があります。
  • 業種別フィード: 有効な業種別データフィードは、顧客レベルまたはキャンペーン レベルでリンクされている必要があります。キャンペーン単位でフィードをリンクするには、キャンペーン単位で業種別データフィードをリンクするをご覧ください。業種別データフィードをリンクすると、検索広告の旅行フィード(TFSA)が有効になり、キャンペーンの業種別広告のコントロールが有効になります。
  • 検索キャンペーン向け AI 最大化設定: キャンペーンで検索キャンペーン向け AI 最大化設定を有効にする必要があります。

検索広告の旅行フィード(TFSA)を有効にして、キャンペーン内で業種別広告のコントロールを有効にするには、次の手順でキャンペーン単位で業種別データフィードのアセット セットをリンクします。または、アカウント内のすべてのキャンペーンでこれらの機能を有効にするには、検索広告の旅行フィード ガイドの顧客レベルのリンク手順に沿って、顧客レベルでフィードをリンクします。

  1. CampaignAssetSet オブジェクトを作成し、asset_set を垂直フィード アセット セットのリソース名に、campaign をキャンペーンのリソース名に設定します。
  2. create が CampaignAssetSet に設定された CampaignAssetSetOperation を作成します。
  3. CampaignAssetSetService.MutateCampaignAssetSets を使用してオペレーションを送信します。

旅行フィードを大規模に管理する方法について詳しくは、検索広告の旅行フィードのドキュメントをご覧ください。

広告グループのフォーマット管理

特定の広告グループで有効にする縦型広告フォーマットを設定できます。これは、AdGroup リソースの vertical_ads_format_setting(VerticalAdsFormatSetting)フィールドで管理されます。

利用可能なフォーマット

  • テキスト広告(disable_text_ads): デフォルトで有効になっています。無効にできます。
  • 予約リンク(enable_booking_links): オプトインが必要です。HOTELS と THINGS_TO_DO のカテゴリフィードでのみサポートされています。
  • 縦向きのプロモーション広告(enable_vertical_promotion_ads): オプトインが必要です。

検証規則

  • 1 つの広告グループで 3 つのフォーマットすべてを同時にオプトアウトすることはできません。
  • enable_booking_links を true に設定できるのは、キャンペーンのアクティブな業種別フィードが HOTELS または THINGS_TO_DO の場合のみです。
  • これらの設定は、SEARCH_STANDARD と SEARCH_DYNAMIC_ADS の広告グループ タイプにのみ適用されます。

例: 形式設定を更新する

次の Java の例は、既存の広告グループでテキスト広告を無効にして、業種別プロモーション広告を有効にする方法を示しています。

// Assuming 'adGroup' is an existing AdGroup object.
// Example resource name: "customers/{customer_id}/adGroups/{ad_group_id}"
AdGroup adGroupToUpdate = AdGroup.newBuilder()
    .setResourceName(adGroup.getResourceName())
    .setVerticalAdsFormatSetting(
        AdGroup.VerticalAdsFormatSetting.newBuilder()
            .setDisableTextAds(true)
            .setEnableBookingLinks(false)
            .setEnableVerticalPromotionAds(true)
    )
    .build();

AdGroupOperation operation = AdGroupOperation.newBuilder()
    .setUpdate(adGroupToUpdate)
    .setUpdateMask(FieldMasks.allSetFieldsOf(adGroupToUpdate))
    .build();

// Submit the operation using AdGroupService...

縦長広告アイテムの管理

「ボストンのホテル」や「1 つ星のホテルを除外」など、フィードの在庫の特定のサブセットをターゲットに設定するには、業種別広告の商品アイテム グループ ルールを使用する必要があります。

データモデルの仕組み

データモデルでは、共有条件アプローチを使用します。

  1. SharedSet: タイプ VERTICAL_ADS_ITEM_GROUP_RULE_LIST の SharedSet を作成します。
  2. SharedCriterion: このセットにルール(条件)を追加します。各ルールでは、市区町村やホテルのクラスなどのディメンションと値を指定します。除外条件を作成してアイテムを除外することもできます。
  3. AdGroupCriterion: AdGroupCriterion(vertical_ads_item_group_rule_list)を使用して、SharedSet を AdGroup にリンクします。

サポートされているディメンション

SharedCriterion(VerticalAdsItemGroupRuleInfo)では、SharedSet の vertical_ads_item_vertical_type に応じて、次のディメンションに基づいてエンティティをフィルタできます。

  • item_code: 特定のリスティング ID(すべての業種タイプでサポートされています)。
  • city_criterion_id、region_criterion_id、country_criterion_id: 地域ターゲティング定数リソース名(geoTargetConstants/{id}。FLIGHTS 以外のすべての業種タイプでサポートされています)。
  • hotel_class: 1 ~ 5 の星評価(HOTELS のみ)。
  • user_rating(v24 以降): 1 ~ 5 の丸められたユーザー評価(THINGS_TO_DO のみ)。
  • venue、event_participant_display_name(v24 以降): イベント会場と参加者の表示名フィルタ(EVENTS のみ)。

次の Python の例では、「Boston」または「San Francisco」のアイテムを含め、「1-star」と「2-star」のホテルを除外するルールを作成します。

# 1. Create the SharedSet
shared_set_operation = client.get_type("SharedSetOperation")
shared_set = shared_set_operation.create
shared_set.name = "Boston/SF Premium Hotels"
shared_set.type_ = (
    client.enums.SharedSetTypeEnum.VERTICAL_ADS_ITEM_GROUP_RULE_LIST
)
shared_set.vertical_ads_item_vertical_type = (
    client.enums.VerticalAdsItemVerticalTypeEnum.HOTELS
)
shared_set_service = client.get_service("SharedSetService")
shared_set_response = shared_set_service.mutate_shared_sets(
    customer_id=customer_id, operations=[shared_set_operation]
)
shared_set_resource_name = shared_set_response.results[0].resource_name

# 2. Add Criteria (Rules) to the SharedSet
shared_criteria_operations = []

# Rule A: Include Boston and SF
geo_target_constant_service = client.get_service("GeoTargetConstantService")
included_city_ids = [1006543, 1014221]  # Geo Target Constant IDs
for city_id in included_city_ids:
  op = client.get_type("SharedCriterionOperation")
  criterion = op.create
  criterion.shared_set = shared_set_resource_name
  criterion.vertical_ads_item_group_rule.city_criterion_id = (
      geo_target_constant_service.geo_target_constant_path(city_id)
  )
  shared_criteria_operations.append(op)

# Rule B: Exclude 1 and 2 Star Hotels
excluded_stars = [1, 2]
for star_rating in excluded_stars:
  op = client.get_type("SharedCriterionOperation")
  criterion = op.create
  criterion.shared_set = shared_set_resource_name
  criterion.vertical_ads_item_group_rule.hotel_class = star_rating
  criterion.negative = True  # Mark as exclusion
  shared_criteria_operations.append(op)

# Submit SharedCriterionOperations...

# 3. Link to AdGroup
ad_group_service = client.get_service("AdGroupService")
ad_group_resource_name = ad_group_service.ad_group_path(
    customer_id, ad_group_id
)
agc_operation = client.get_type("AdGroupCriterionOperation")
agc = agc_operation.create
agc.ad_group = ad_group_resource_name
agc.status = client.enums.AdGroupCriterionStatusEnum.ENABLED
agc.vertical_ads_item_group_rule_list.shared_set = shared_set_resource_name

# Submit AdGroupCriterionOperation...

パフォーマンス レポート

バーティカル広告のパフォーマンス指標は、GoogleAdsService.SearchStream メソッドまたは GoogleAdsService.Search メソッドを使用して取得できます。

縦長広告セグメント

宿泊プラン ディメンション セグメント

v25 以降、旅行と宿泊施設のフィードにリンクされた業種別広告では、旅程ディメンションを使用してパフォーマンス レポートを分割できます。

縦長広告の指標

v25 以降、次の業種別広告の指標を取得できます。

GAQL クエリの例

このクエリは、リスティングの都市、価格帯、料金タイプでセグメント化された、垂直広告の競合と予約の指標を取得します。

SELECT
  campaign.id,
  ad_group.id,
  segments.vertical_ads_listing_city,
  segments.vertical_ads_price_tier,
  segments.vertical_ads_rate_type,
  metrics.vertical_ads_potential_impressions,
  metrics.vertical_ads_average_booking_value_micros,
  metrics.vertical_ads_price_difference_percentage
FROM
  ad_group
WHERE
  segments.date DURING LAST_30_DAYS

このクエリは、標準のパフォーマンス指標を旅程の予約ディメンションでセグメント化します。

SELECT
  campaign.id,
  ad_group.id,
  segments.vertical_ads_listing_city,
  segments.advance_booking_window,
  segments.length_of_booking,
  segments.start_date,
  metrics.impressions,
  metrics.clicks,
  metrics.all_conversions_value
FROM
  ad_group
WHERE
  segments.date DURING LAST_30_DAYS

エラー処理

縦型広告の設定時に発生する可能性のある一般的なエラーは次のとおりです。

エラーコード 原因 推奨される対処方法
AdGroupError.INVALID_VERTICAL_ADS_FORMAT_SETTING 3 つの広告フォーマット(テキスト広告、予約リンク広告、プロモーション広告)が同時に無効になった場合、または HOTELS または THINGS_TO_DO 以外の業種で enable_booking_links が有効になっている場合。 VerticalAdsFormatSetting で少なくとも 1 つの形式が有効になっていることを確認し、HOTELS または THINGS_TO_DO フィードの予約リンクのみを有効にします。
AdGroupError.VERTICAL_ADS_FORMAT_SETTING_NOT_SUPPORTED_FOR_CAMPAIGNS_WITHOUT_AI_MAX キャンペーンで検索キャンペーン向け AI 最大化設定が有効になっていない。 キャンペーン設定で検索キャンペーン向け AI 最大化設定を有効にします。
AdGroupError.VERTICAL_ADS_FORMAT_SETTING_NOT_SUPPORTED_FOR_CAMPAIGNS_WITHOUT_ENABLED_TRAVEL_FEED キャンペーンに有効な業種別データフィードがありません。 有効な業種別フィードがお客様単位またはキャンペーン単位でリンクされていることを確認します。
CriterionError.VERTICAL_ADS_ITEM_GROUP_RULE_LIST_DOES_NOT_EXIST AdGroupCriterion で指定された SharedSet リソース名が存在しないか、タイプ VERTICAL_ADS_ITEM_GROUP_RULE_LIST がありません。 shared_set リソース名が、タイプ VERTICAL_ADS_ITEM_GROUP_RULE_LIST の既存の SharedSet を参照していることを確認します。
CriterionError.CANNOT_ADD_REMOVED_VERTICAL_ADS_ITEM_GROUP_RULE_LIST_SHARED_SET AdGroupCriterion で参照される SharedSet のステータスは REMOVED です。 タイプ VERTICAL_ADS_ITEM_GROUP_RULE_LIST の有効な SharedSet を参照します。
CriterionError.VERTICAL_ADS_ITEM_GROUP_RULE_NOT_SUPPORTED_FOR_THE_VERTICAL_TYPE 使用された条件ディメンションが、特定の業種(レンタカーのホテル クラスなど)でサポートされていない。 vertical_ads_item_group_rule ディメンションが業種と一致していることを確認します。