Reporting

動画: 2019 ワークショップのホテル広告レポートに関するトークをご覧ください

Google Ads API では、必要なホテル広告レポートを取得するクエリを設計できます。その後、これらのクエリをクライアント アプリケーションに組み込むことができます。

前提条件

ホテル広告の基本的なクエリ

ホテル広告レポート用の Google Ads API の使い方を理解するために、以下のクエリ例をご覧ください。

クリック数に関する指標を取得

次のサンプルクエリは、ホテルのパフォーマンス ビューからクリック数を返します。

SELECT metrics.clicks
FROM hotel_performance_view

クエリの結果は次のようになります。

{
  "results": [
    {
      "metrics": {
        "clicks": "78090"
      },
      "hotelPerformanceView": {
        "resourceName": "customers/1234567890/hotelPerformanceView"
      }
    }
  ],
  "totalResultsCount": "1",
  "fieldMask": "metrics.clicks"
}

分割されたクリック数の指標を取得する

ホテルのパフォーマンス ビューの次のサンプルクエリは、クリックを取得し、結果をホテル ID でセグメント化します。

SELECT
  segments.partner_hotel_id,
  metrics.clicks
FROM hotel_performance_view

クエリの結果は、次の JSON 文字列のようになります。クリックは partnerHotelID で分割されるため、同じ HotelPerformanceView に対して 2 つ以上のオブジェクトが返されることがあります。

{
  "results": [
    {
      "metrics": {
        "clicks": "7055"
      },
      "hotelPerformanceView": {
        "resourceName": "customers/1234567890/hotelPerformanceView"
      },
      "segments": {
        "partnerHotelId": "1111"
      }
    },
    {
      "metrics": {
        "clicks": "3047"
      },
      "hotelPerformanceView": {
        "resourceName": "customers/1234567890/hotelPerformanceView"
      },
      "segments": {
        "partnerHotelId": "1112"
      }
    },
    ...
  ]
}

広告グループの指標を取得する

次の広告グループに対するクエリの例では、過去 30 日間のインプレッション数とクリック数を日付別に分割して取得します。

SELECT
  campaign.name,
  campaign.status,
  ad_group.name,
  segments.date,
  metrics.impressions,
  metrics.clicks
FROM ad_group
WHERE ad_group.type = HOTEL_ADS
  AND segments.date DURING LAST_30_DAYS

クエリの結果は、次の JSON 文字列のようになります。レスポンスは、WHERE 句の条件を満たす指標のみでフィルタされます。日付フィールドには、30 日間に含まれる最終日付が入力されます。

{
  "results": [
    {
      "campaign": {
        "resourceName": "customers/123456789/campaigns/23456789",
        "name": "test campaign",
        "status": "ENABLED"
      },
      "adGroup": {
        "resourceName": "customers/123456789/adGroups/11111111",
        "name": "test adgroup"
      },
      "metrics": {
        "clicks": "91",
        "impressions": "5145"
      },
      "segments": {
        "date": "2020-05-10"
      }
    }
  ]
}

有効な広告グループ広告を取得する

次の広告グループ広告に対するクエリは、配信される広告グループを取得します。 広告グループが配信されるようにするには、その広告グループの広告、広告グループ、キャンペーンのすべてが有効になっている必要があります。

SELECT
  ad_group.id,
  ad_group.name,
  ad_group.status,
  campaign.name,
  campaign.status,
  ad_group_ad.status
FROM ad_group_ad
WHERE ad_group_ad.status = ENABLED
  AND campaign.status = ENABLED
  AND ad_group.status = ENABLED

クエリの結果は、次の JSON 文字列のようになります。

{
  "results": [
    {
      "campaign": {
        "resourceName": "customers/123456789/campaigns/23456789",
        "name": "test campaign",
        "status": "ENABLED"
      },
      "adGroup": {
        "resourceName": "customers/123456789/adGroups/111111111111",
        "id": "106121857411",
        "name": "test adgroup",
        "status": "ENABLED"
      },
      "adGroupAd": {
        "resourceName": "customers/123456789/adGroupAds/111111111111~33333333333",
        "status": "ENABLED",
        "ad": {
          "resourceName": "customers/123456789/ads/77777777777"
        }
      }
    }
  ]
}

ホテル広告レポートの便利なビュー

以前のホテル広告レポート用 API では、パフォーマンス レポートなど、特定のレポートを取得できました。Google Ads API では、この種のデータは hotel_performance_viewhotel_group_view などの個別の *_view リソースで表されます。このセクションでは、ホテル広告のレポート作成に役立つ *_view リソースについて説明します。クエリの例も提供されています。

*_view リソースには、特定のリソース フィールド、セグメント、指標があります。クエリを作成する前に、特定の *_view リソースのドキュメントをご覧ください。

ホテルグループ ビュー

Hotel Group View条件ビューであるため、ホテルグループの特定の条件タイプの指標を取得する場合に便利です。

ホテルグループ ビューに対する次のクエリの例では、ルートノード(「すべてのホテル」)を含むホテル リスティング グループ ツリー全体のリスティング グループ内の各ホテルのクリック数を取得します。

SELECT
  metrics.clicks,
  ad_group_criterion.listing_group.case_value.hotel_id.value
FROM hotel_group_view

クエリの結果は、次の JSON 文字列のようになります。ルートノード(「すべてのホテル」)の case_value が定義されていない場合、最初の行は「すべてのホテル」リスティング グループの指標を表し、2 番目の行は「その他」を表す子リスティング グループの指標を表します。

{
  "results": [
    {
      "metrics": {
        "clicks": "5"
      },
      "adGroupCriterion": {
        "resourceName": "customers/1234567890/adGroupCriteria/22222222222~111111111111"
      },
      "hotelGroupView": {
        "resourceName": "customers/1234567890/hotelGroupViews/22222222222~111111111111"
      }
    },
    {
      "metrics": {
        "clicks": "0"
      },
      "adGroupCriterion": {
        "resourceName": "customers/1234567890/adGroupCriteria/22222222222~111111111112"
        "listingGroup": {
          "caseValue": {
            "hotelId": {
            }
          }
        }
      },
      "hotelGroupView": {
        "resourceName": "customers/1234567890/hotelGroupViews/22222222222~111111111112"
      }
    },
    {
      "metrics": {
        "clicks": "3"
      },
      "adGroupCriterion": {
        "resourceName": "customers/1234567890/adGroupCriteria/22222222222~111111111113"
        "listingGroup": {
          "caseValue": {
            "hotelId": {
              "value": "11111111111111111"
              }
            }
          }
        }
      },
      "hotelGroupView": {
        "resourceName": "customers/1234567890/hotelGroupViews/22222222222~111111111113"
      }
    },
    {
      "metrics": {
        "clicks": "2"
      },
      "adGroupCriterion": {
        "resourceName": "customers/1234567890/adGroupCriteria/22222222222~111111111114"
        "listingGroup": {
          "caseValue": {
            "hotelId": {
              "value": "11111111111111112"
              }
            }
          }
        }
      },
      "hotelGroupView": {
        "resourceName": "customers/1234567890/hotelGroupViews/22222222222~111111111114"
      }
    },
  ]
}

ホテルの掲載結果ビュー

ホテルの掲載結果ビューは、ホテル ID に基づく区分がある場合でも、ホテルグループ以外のデータを使用してホテルのパフォーマンス指標を取得する場合に役立ちます。

ホテルのパフォーマンス ビューの次のサンプルクエリは、クリックを取得し、結果をホテル ID でセグメント化します。

SELECT
  segments.partner_hotel_id,
  metrics.clicks
FROM hotel_performance_view

クエリの結果は、次の JSON 文字列のようになります。クリック数は partner_hotel_id でセグメント化されるため、同じホテルの実績ビューに対して 2 つ以上のオブジェクトが返されることがあります。

{
  "results": [
    {
      "metrics": {
        "clicks": "7055"
      },
      "hotelPerformanceView": {
        "resourceName": "customers/1234567890/hotelPerformanceView"
      },
      "segments": {
        "partnerHotelId": "1111"
      }
    },
    {
      "metrics": {
        "clicks": "3047"
      },
      "hotelPerformanceView": {
        "resourceName": "customers/1234567890/hotelPerformanceView"
      },
      "segments": {
        "partnerHotelId": "1112"
      }
    },
    ...
  ]
}

広告グループのオーディエンス ビュー

広告グループのオーディエンス ビューは、広告グループ単位で設定されたオーディエンスのパフォーマンス指標を取得する場合に便利です。

これはホテル キャンペーンだけでなく、さまざまな種類のキャンペーンの全体像です。このビューでは、hotel_date_selection_type で結果を分割することもできます。これにより、ホテルの日付がユーザーが選択したか、Google が設定した検索のデフォルトの日付だったかを指定できます。hotel_date_selection_type で分割すると、ホテル キャンペーンの結果のみが返されます。

次のクエリは、ad_group_criterion.user_list.user_list ごとに 1 行を返します。

SELECT
  ad_group.id,
  campaign.id,
  ad_group_criterion.user_list.user_list,
  segments.device,
  segments.hotel_date_selection_type,
  metrics.impressions,
  metrics.clicks,
  metrics.cost_micros,
  metrics.conversions,
  metrics.all_conversions_value
FROM ad_group_audience_view

クエリの結果は、次の JSON 文字列のようになります。

{
  "results": [
    {
      "campaign": {
        "resourceName": "customers/123456789/campaigns/23456789",
        "id": "23456789"
      },
      "metrics": {
        "clicks": "0",
        "conversions": "0",
        "costMicros": "0",
        "impressions": "3",
        "allConversionsValue": "0"
      },
      "adGroupCriterion": {
        "resourceName": "customers/123456789/adGroupCriteria/23456789~789456",
        "userList": {
          "userList": "customers/123456789/userLists/456789"
        }
      },
      "adGroupAudienceView": {
        "resourceName": "customers/8005193609/adGroupAudienceViews/23456789~789456"
      },
      "segments": {
        "device": "TABLET",
        "hotelDateSelectionType": "USER_SELECTED"
      }
    }
  ]
}

キャンペーンのオーディエンス ビュー

キャンペーンのオーディエンス ビューは、キャンペーン レベルで設定されたオーディエンスのパフォーマンス指標を取得する場合に便利です。

これはホテル キャンペーンだけでなく、さまざまな種類のキャンペーンの全体像です。このビューでは、hotel_date_selection_type で結果を分割することもできます。これにより、ホテルの日付がユーザーが選択したか、Google が設定した検索のデフォルトの日付だったかを指定できます。hotel_date_selection_type で分割すると、ホテル キャンペーンの結果のみが返されます。

次のクエリは、campaign_criterion.user_list.user_list ごとに 1 行を返します。

SELECT
  campaign.id,
  campaign_criterion.user_list.user_list,
  segments.device,
  segments.hotel_date_selection_type,
  metrics.impressions,
  metrics.clicks,
  metrics.cost_micros,
  metrics.conversions,
  metrics.all_conversions_value
FROM campaign_audience_view

クエリの結果は、次の JSON 文字列のようになります。

{
  "results": [
    {
      "campaign": {
        "resourceName": "customers/123456789/campaigns/23456789",
        "id": "23456789"
      },
      "metrics": {
        "clicks": "0",
        "conversions": "0",
        "costMicros": "0",
        "impressions": "3",
        "allConversionsValue": "0"
      },
      "campaignCriterion": {
        "resourceName": "customers/123456789/campaignCriteria/23456789~789456",
        "userList": {
          "userList": "customers/123456789/userLists/456789"
        }
      },
      "campaignAudienceView": {
        "resourceName": "customers/8005193609/campaignAudienceViews/23456789~789456"
      },
      "segments": {
        "device": "TABLET",
        "hotelDateSelectionType": "USER_SELECTED"
      }
    }
  ]
}

ホテル広告の便利なレポート

このセクションでは、ホテル広告専用の便利なレポートをいくつか紹介します。

パフォーマンス レポート

次のクエリは、ホテルの掲載結果ビューを利用してパフォーマンス データを取得します。

hotel_performance_view を使用すると、campaign リソースを使用して指標をセグメント化できます。たとえば、campaign.id フィールドを使用してキャンペーンごとにパフォーマンス指標を取得できます。

パフォーマンス

クエリの例:

SELECT
  segments.hotel_center_id,
  segments.device,
  segments.partner_hotel_id,
  segments.hotel_check_in_day_of_week,
  segments.hotel_date_selection_type,
  segments.hotel_length_of_stay,
  segments.hotel_booking_window_days,
  metrics.search_top_impression_share,
  metrics.search_absolute_top_impression_share,
  metrics.impressions,
  metrics.clicks,
  metrics.cost_micros,
  metrics.conversions,
  metrics.all_conversions_value,
  metrics.search_impression_share
FROM hotel_performance_view

JSON レスポンスの例:

{
  "results": [
    {
      "campaign": {
        "resourceName": "customers/123456789/campaigns/23456789"
      },
      "metrics": {
        "clicks": "0",
        "conversions": "0.0",
        "costMicros": "0",
        "impressions": "0",
        "searchImpressionShare": "0.0999",
        "searchAbsoluteTopImpressionShare": "0.0999",
        "searchTopImpressionShare": "0.0999",
        "allConversionsValue": "1"
      },
      "hotelPerformanceView": {
        "resourceName": "customers/123456789/hotelPerformanceView"
      },
      "segments": {
        "device": "DESKTOP",
        "hotelBookingWindowDays": "3",
        "hotelCenterId": "1234",
        "hotelCheckInDayOfWeek": "MONDAY",
        "hotelDateSelectionType": "USER_SELECTED",
        "hotelLengthOfStay": "4",
        "partnerHotelId": "123"
      }
    },
    {
      "campaign": {
        "resourceName": "customers/123456789/campaigns/23456789"
      },
      "metrics": {
        "clicks": "0",
        "conversions": "0.0",
        "costMicros": "0",
        "impressions": "1",
        "searchImpressionShare": "1.0",
        "searchAbsoluteTopImpressionShare": "0.0999",
        "searchTopImpressionShare": "1.0",
        "allConversionsValue": "1"
      },
      "hotelPerformanceView": {
        "resourceName": "customers/123456789/hotelPerformanceView"
      },
      "segments": {
        "device": "DESKTOP",
        "hotelBookingWindowDays": "3",
        "hotelCenterId": "1234",
        "hotelCheckInDayOfWeek": "MONDAY",
        "hotelDateSelectionType": "USER_SELECTED",
        "hotelLengthOfStay": "4",
        "partnerHotelId": "123"
      }
    }
  ]
}

クリックタイプ別のパフォーマンス

クエリの例:

SELECT
  segments.click_type,
  segments.hotel_center_id,
  segments.device,
  segments.partner_hotel_id,
  segments.hotel_check_in_day_of_week,
  segments.hotel_date_selection_type,
  segments.hotel_length_of_stay,
  segments.hotel_booking_window_days,
  metrics.impressions,
  metrics.clicks,
  metrics.cost_micros,
  metrics.conversions,
  metrics.all_conversions_value
FROM hotel_performance_view

JSON レスポンスの例:

{
  "results": [
    {
      "campaign": {
        "resourceName": "customers/123456789/campaigns/23456789"
    },
      "metrics": {
        "clicks": "0",
        "conversions": "0.0",
        "costMicros": "0",
        "impressions": "1",
        "allConversionsValue": "0.0"
      },
      "hotelPerformanceView": {
        "resourceName": "customers/123456789/hotelPerformanceView"
      },
      "segments": {
        "device": "DESKTOP",
        "hotelBookingWindowDays": "0",
        "hotelCenterId": "1234",
        "hotelCheckInDayOfWeek": "TUESDAY",
        "hotelDateSelectionType": "USER_SELECTED",
        "hotelLengthOfStay": "4",
        "partnerHotelId": "123",
        "clickType": "HOTEL_PRICE"
      }
    },
    {
      "campaign": {
        "resourceName": "customers/123456789/campaigns/23456789"
      },
      "metrics": {
        "clicks": "1",
        "conversions": "0.0",
        "costMicros": "0",
        "impressions": "1",
        "allConversionsValue": "0.0"
      },
      "hotelPerformanceView": {
        "resourceName": "customers/123456789/hotelPerformanceView"
      },
      "segments": {
        "device": "DESKTOP",
        "hotelBookingWindowDays": "0",
        "hotelCenterId": "1234",
        "hotelCheckInDayOfWeek": "TUESDAY",
        "hotelDateSelectionType": "USER_SELECTED",
        "hotelLengthOfStay": "4",
        "partnerHotelId": "12345",
        "clickType": "HOTEL_PRICE"
      }
    }
  ]
}

限定価格のパフォーマンス レポート

次のクエリは、パフォーマンス指標を次の項目でセグメント化します。

  • campaign
  • hotel_center_id
  • hotel_country
  • hotel_rate_rule_id
  • hotel_rate_type
  • device
  • partner_hotel_id

タイプの説明については、HotelRateType をご覧ください。

1 つのクエリに複数のセグメントを含めることができますが、セグメントを追加すると、返される行の数が大幅に増える可能性があります。

SELECT
  campaign.id,
  segments.hotel_center_id,
  segments.hotel_country,
  segments.hotel_rate_rule_id,
  segments.hotel_rate_type,
  segments.device,
  segments.partner_hotel_id,
  metrics.search_top_impression_share,
  metrics.search_absolute_top_impression_share,
  metrics.impressions,
  metrics.clicks,
  metrics.cost_micros,
  metrics.conversions
FROM hotel_performance_view

クエリの結果は、次の JSON 文字列のようになります。

{
  "results": [
    {
      "campaign": {
        "resourceName": "customers/123456789/campaigns/23456789",
        "id": "23456789"
      },
      "metrics": {
        "clicks": "1",
        "conversions": "0.0",
        "costMicros": "0",
        "impressions": "24",
        "searchAbsoluteTopImpressionShare": "0.0999",
        "searchTopImpressionShare": "0.17073170731707318"
      },
      "hotelPerformanceView": {
        "resourceName": "customers/123456789/hotelPerformanceView"
      },
      "segments": {
        "device": "TABLET",
        "hotelCenterId": "1234",
        "partnerHotelId": "123",
        "hotelRateRuleId": "desktop",
        "hotelRateType": "PUBLIC_RATE"
      }
    },
    {
      "campaign": {
        "resourceName": "customers/123456789/campaigns/23456789",
        "id": "23456789"
      },
      "metrics": {
        "clicks": "107",
        "conversions": "0.0",
        "costMicros": "0",
        "impressions": "1668",
        "searchAbsoluteTopImpressionShare": "0.0999",
        "searchTopImpressionShare": "0.3581201665675193"
      },
      "hotelPerformanceView": {
        "resourceName": "customers/123456789/hotelPerformanceView"
      },
      "segments": {
        "device": "TABLET",
        "hotelCenterId": "1234",
        "partnerHotelId": "1235",
        "hotelRateRuleId": "desktop",
        "hotelRateType": "PUBLIC_RATE"
      }
    }
  ]
}

価格競争力レポート

同じホテル宿泊プランで、自社の料金と競合他社の料金を比較して、分析情報を入手できます。

クエリの例:

SELECT
  segments.hotel_center_id,
  segments.partner_hotel_id,
  segments.hotel_price_bucket,
  metrics.hotel_average_lead_value_micros,
  metrics.hotel_price_difference_percentage
FROM hotel_performance_view

JSON レスポンスの例:

{
  "results": [
    {
      "metrics": {
        "hotelAverageLeadValueMicros": "96416341.829268292",
        "hotelPriceDifferencePercentage": "-0.014627310872986811"
      },
      "hotelPerformanceView": {
        "resourceName": "customers/123456789/hotelPerformanceView"
      },
      "segments": {
        "hotelCenterId": "1234",
        "partnerHotelId": "123",
        "hotelPriceBucket": "LOWEST_TIED"
      }
    }
  ]
}

平均予約料金レポート

ホテルの平均予約料金(all_conversions_valueconversions で割った値)を計算するために必要なデータを取得できます。

クエリの例:

SELECT
  segments.hotel_center_id,
  segments.partner_hotel_id,
  segments.hotel_price_bucket,
  metrics.all_conversions_value,
  metrics.conversions
FROM hotel_performance_view

JSON レスポンスの例:

{
  "results": [
    {
      "metrics": {
        "allConversionsValue": "123.5",
        "conversions": "1"
      },
      "hotelPerformanceView": {
        "resourceName": "customers/123456789/hotelPerformanceView"
      },
      "segments": {
        "hotelCenterId": "1234",
        "partnerHotelId": "123",
        "hotelPriceBucket": "LOWEST_TIED"
      }
    }
  ]
}

ユーザー レポート

オーディエンス レポートには、Google 広告のオーディエンス リストに対する入札単価調整比のパフォーマンスが表示されます。オーディエンス レポートの例については、広告グループのオーディエンス ビューキャンペーンのオーディエンス ビューのクエリ例をご覧ください。

ホテルの調整レポート

ホテル調整レポートには、ホテルの予約のコンバージョン情報が含まれ、広告主の記録と照合します。一括アップロードを使用してデータをアップロードすることで、どの予約がキャンセルされたか、または完了したかを Google に知らせることができます。このレポートの主な列は次のとおりです。

UI 列 API 列 解説
予約金額 metrics.value_per_conversions_by_conversion_date タグによってレポートされたコンバージョン値
コンバージョンの日付 segments.date 予約の日付
コミッション率 metrics.hotel_commission_rate_micros 予約額のうち、広告インプレッション 1 回に対して入札した金額の割合です
コミッション費用

status == RECONCILED または CANCELED の場合、この値は metrics.hotel_commission_rate_micros * hotel_reconciliation.reconciled_value_micros として計算できます。それ以外の場合は、この値は metrics.hotel_expected_commission_cost 列から取得するか、metrics.hotel_commission_rate_micros * metrics.value_per_conversions_by_conversion_date として計算できます。

宿泊に対してお支払い予定の金額またはお支払い済みの金額