Google Ads API를 사용하면 필요한 호텔 광고 보고서를 가져오는 쿼리를 설계할 수 있습니다. 그런 다음 이러한 쿼리를 클라이언트 애플리케이션에 통합할 수 있습니다.
기본 요건
호텔 광고의 기본 쿼리
다음 예시 쿼리를 확인하여 호텔 광고 보고서에 Google Ads API를 사용하는 방법을 알아보세요.
클릭수 측정항목 가져오기
다음 예시 쿼리는 호텔 실적 보기의 클릭수를 반환합니다.
SELECT metrics.clicks
FROM hotel_performance_view
쿼리 결과는 다음 JSON 응답과 유사합니다.
{
"results": [
{
"metrics": {
"clicks": "78090"
},
"hotelPerformanceView": {
"resourceName": "customers/1234567890/hotelPerformanceView"
}
}
],
"totalResultsCount": "1",
"fieldMask": "metrics.clicks"
}
광고 그룹 측정항목 가져오기
다음 광고 그룹 쿼리 예시에서는 지난 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 절 조건을 충족하는 측정항목만 응답에 필터링됩니다. segments.date가 선택되었으므로 쿼리는 30일 기간 동안 하루에 하나의 행을 반환합니다.
{
"results": [
{
"campaign": {
"resourceName": "customers/1234567890/campaigns/23456789",
"name": "test campaign",
"status": "ENABLED"
},
"adGroup": {
"resourceName": "customers/1234567890/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/1234567890/campaigns/23456789",
"name": "test campaign",
"status": "ENABLED"
},
"adGroup": {
"resourceName": "customers/1234567890/adGroups/11111111",
"id": "11111111",
"name": "test adgroup",
"status": "ENABLED"
},
"adGroupAd": {
"resourceName": "customers/1234567890/adGroupAds/11111111~33333333",
"status": "ENABLED",
"ad": {
"resourceName": "customers/1234567890/ads/77777777"
}
}
}
]
}
호텔 광고 보고서에 유용한 보기
이전 호텔 광고 보고서 API에서는 실적 보고서와 같은 특정 보고서를 가져올 수 있었습니다. Google Ads API에서 이러한 종류의 데이터는 hotel_performance_view, hotel_group_view와 같은 별도의 *_view 리소스로 표현됩니다. 이 섹션에서는 호텔 광고 보고서에 유용한 *_view 리소스와 쿼리 예시를 설명합니다.
호텔 그룹 보기
호텔 그룹 보기는 기준 보기이므로 호텔 그룹의 특정 기준 유형에 대한 측정항목을 가져오는 데 유용합니다.
다음 호텔 그룹 보기의 예시 쿼리는 루트 노드 ('모든 호텔')를 포함한 전체 호텔 등록정보 그룹 트리에 대한 등록정보 그룹의 각 호텔에 대한 클릭수를 가져옵니다.
SELECT
metrics.clicks,
ad_group_criterion.listing_group.case_value.hotel_id.value
FROM hotel_group_view
쿼리 결과는 다음 JSON 응답과 유사합니다. case_value이 루트 노드 ('모든 호텔')에 대해 정의되지 않았으므로 첫 번째 행은 '모든 호텔' 등록정보 그룹의 측정항목을 나타내고 두 번째 행은 '기타'를 나타내는 하위 등록정보 그룹의 측정항목을 나타냅니다.
{
"results": [
{
"metrics": {
"clicks": "5"
},
"adGroupCriterion": {
"resourceName": "customers/1234567890/adGroupCriteria/2222222~1111111"
},
"hotelGroupView": {
"resourceName": "customers/1234567890/hotelGroupViews/2222222~1111111"
}
},
{
"metrics": {
"clicks": "0"
},
"adGroupCriterion": {
"resourceName": "customers/1234567890/adGroupCriteria/2222222~1111112",
"listingGroup": {
"caseValue": {
"hotelId": {}
}
}
},
"hotelGroupView": {
"resourceName": "customers/1234567890/hotelGroupViews/2222222~1111112"
}
},
{
"metrics": {
"clicks": "3"
},
"adGroupCriterion": {
"resourceName": "customers/1234567890/adGroupCriteria/2222222~1111113",
"listingGroup": {
"caseValue": {
"hotelId": {
"value": "11111111111111111"
}
}
}
},
"hotelGroupView": {
"resourceName": "customers/1234567890/hotelGroupViews/2222222~1111113"
}
},
{
"metrics": {
"clicks": "2"
},
"adGroupCriterion": {
"resourceName": "customers/1234567890/adGroupCriteria/2222222~1111114",
"listingGroup": {
"caseValue": {
"hotelId": {
"value": "11111111111111112"
}
}
}
},
"hotelGroupView": {
"resourceName": "customers/1234567890/hotelGroupViews/2222222~1111114"
}
}
]
}
호텔 실적 보기
호텔 실적 보기는 호텔 ID를 기반으로 한 세부 분류가 있는 경우에도 호텔 그룹화에서 가져오지 않은 데이터를 사용하여 호텔의 실적 측정항목을 가져오려는 경우에 유용합니다.
다음 호텔 실적 뷰 쿼리 예에서는 클릭수를 가져오고 호텔 ID별로 결과를 분류합니다.
SELECT
segments.partner_hotel_id,
metrics.clicks
FROM hotel_performance_view
쿼리 결과는 다음 JSON 응답과 유사합니다. 클릭수는 partner_hotel_id (REST JSON에서는 partnerHotelId)로 분류되므로 동일한 hotel_performance_view에 대해 두 개 이상의 객체가 반환될 수 있습니다.
{
"results": [
{
"metrics": {
"clicks": "7055"
},
"hotelPerformanceView": {
"resourceName": "customers/1234567890/hotelPerformanceView"
},
"segments": {
"partnerHotelId": "1111"
}
},
{
"metrics": {
"clicks": "3047"
},
"hotelPerformanceView": {
"resourceName": "customers/1234567890/hotelPerformanceView"
},
"segments": {
"partnerHotelId": "1112"
}
}
]
}
광고 그룹 잠재고객 보기
광고 그룹 잠재고객 보기는 광고 그룹 수준에서 연결된 잠재고객의 실적 측정항목을 가져오려는 경우에 유용합니다.
다음 쿼리는 ad_group_criterion.user_list.user_list당 하나의 행을 반환합니다.
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/1234567890/campaigns/23456789",
"id": "23456789"
},
"metrics": {
"clicks": "0",
"conversions": "0",
"costMicros": "0",
"impressions": "3",
"allConversionsValue": "0"
},
"adGroupCriterion": {
"resourceName": "customers/1234567890/adGroupCriteria/23456789~789456",
"userList": {
"userList": "customers/1234567890/userLists/456789"
}
},
"adGroupAudienceView": {
"resourceName":
"customers/1234567890/adGroupAudienceViews/23456789~789456"
},
"segments": {
"device": "TABLET",
"hotelDateSelectionType": "USER_SELECTED"
}
}
]
}
캠페인 잠재고객 보기
캠페인 잠재고객 보기는 캠페인 수준에서 연결된 잠재고객의 실적 측정항목을 가져오려는 경우에 유용합니다.
다음 쿼리는 campaign_criterion.user_list.user_list당 하나의 행을 반환합니다.
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/1234567890/campaigns/23456789",
"id": "23456789"
},
"metrics": {
"clicks": "0",
"conversions": "0",
"costMicros": "0",
"impressions": "3",
"allConversionsValue": "0"
},
"campaignCriterion": {
"resourceName": "customers/1234567890/campaignCriteria/23456789~789456",
"userList": {
"userList": "customers/1234567890/userLists/456789"
}
},
"campaignAudienceView": {
"resourceName":
"customers/1234567890/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/1234567890/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/1234567890/hotelPerformanceView"
},
"segments": {
"device": "DESKTOP",
"hotelBookingWindowDays": "3",
"hotelCenterId": "1234",
"hotelCheckInDayOfWeek": "MONDAY",
"hotelDateSelectionType": "USER_SELECTED",
"hotelLengthOfStay": "4",
"partnerHotelId": "123"
}
},
{
"campaign": {
"resourceName": "customers/1234567890/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/1234567890/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/1234567890/campaigns/23456789"
},
"metrics": {
"clicks": "0",
"conversions": "0.0",
"costMicros": "0",
"impressions": "1",
"allConversionsValue": "0.0"
},
"hotelPerformanceView": {
"resourceName": "customers/1234567890/hotelPerformanceView"
},
"segments": {
"device": "DESKTOP",
"hotelBookingWindowDays": "0",
"hotelCenterId": "1234",
"hotelCheckInDayOfWeek": "TUESDAY",
"hotelDateSelectionType": "USER_SELECTED",
"hotelLengthOfStay": "4",
"partnerHotelId": "123",
"clickType": "HOTEL_PRICE"
}
},
{
"campaign": {
"resourceName": "customers/1234567890/campaigns/23456789"
},
"metrics": {
"clicks": "1",
"conversions": "0.0",
"costMicros": "0",
"impressions": "1",
"allConversionsValue": "0.0"
},
"hotelPerformanceView": {
"resourceName": "customers/1234567890/hotelPerformanceView"
},
"segments": {
"device": "DESKTOP",
"hotelBookingWindowDays": "0",
"hotelCenterId": "1234",
"hotelCheckInDayOfWeek": "TUESDAY",
"hotelDateSelectionType": "USER_SELECTED",
"hotelLengthOfStay": "4",
"partnerHotelId": "12345",
"clickType": "HOTEL_PRICE"
}
}
]
}
조건부 요금 실적 보고서
다음 쿼리는 다음을 기준으로 분류된 실적 측정항목을 가져옵니다.
campaignhotel_center_idhotel_countryhotel_rate_rule_idhotel_rate_typedevicepartner_hotel_id
유형에 대한 설명은 HotelRateType을 참고하세요.
쿼리에 여러 세그먼트를 포함할 수 있지만 세그먼트가 추가되면 반환되는 행 수가 크게 늘어날 수 있습니다.
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/1234567890/campaigns/23456789",
"id": "23456789"
},
"metrics": {
"clicks": "1",
"conversions": "0.0",
"costMicros": "0",
"impressions": "24",
"searchAbsoluteTopImpressionShare": "0.0999",
"searchTopImpressionShare": "0.17073170731707318"
},
"hotelPerformanceView": {
"resourceName": "customers/1234567890/hotelPerformanceView"
},
"segments": {
"device": "TABLET",
"hotelCenterId": "1234",
"partnerHotelId": "123",
"hotelRateRuleId": "desktop",
"hotelRateType": "PUBLIC_RATE"
}
},
{
"campaign": {
"resourceName": "customers/1234567890/campaigns/23456789",
"id": "23456789"
},
"metrics": {
"clicks": "107",
"conversions": "0.0",
"costMicros": "0",
"impressions": "1668",
"searchAbsoluteTopImpressionShare": "0.0999",
"searchTopImpressionShare": "0.3581201665675193"
},
"hotelPerformanceView": {
"resourceName": "customers/1234567890/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/1234567890/hotelPerformanceView"
},
"segments": {
"hotelCenterId": "1234",
"partnerHotelId": "123",
"hotelPriceBucket": "LOWEST_TIED"
}
}
]
}
평균 예약 가격 보고서
호텔의 평균 예약 가격(all_conversions_value를 conversions로 나눈 값)을 계산하는 데 필요한 데이터를 가져올 수 있습니다.
쿼리 예시:
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/1234567890/hotelPerformanceView"
},
"segments": {
"hotelCenterId": "1234",
"partnerHotelId": "123",
"hotelPriceBucket": "LOWEST_TIED"
}
}
]
}
전환 및 비용 실적 보고서
다음 쿼리는 호텔 광고의 전체 전환 및 비용 실적을 가져오며, 이는 재무 실적과 ROAS를 평가하는 데 유용합니다.
쿼리 예시:
SELECT
segments.date,
segments.partner_hotel_id,
metrics.all_conversions_value,
metrics.cost_micros,
metrics.conversions
FROM hotel_performance_view
WHERE segments.date DURING LAST_30_DAYS
JSON 응답 예시:
{
"results": [
{
"metrics": {
"allConversionsValue": "250.0",
"costMicros": "15000000",
"conversions": "2.0"
},
"hotelPerformanceView": {
"resourceName": "customers/1234567890/hotelPerformanceView"
},
"segments": {
"date": "2026-03-24",
"partnerHotelId": "123"
}
}
]
}
사용자 보고서
잠재고객 보고서에는 Google Ads 잠재고객 목록의 입찰가 배수의 실적이 표시됩니다. 잠재고객 보고서의 예는 광고 그룹 잠재고객 보기 및 캠페인 잠재고객 보기의 샘플 쿼리를 참고하세요.