Film: obejrzyj prezentację na temat raportowania w reklamach hoteli z warsztatów w 2019 r.
Za pomocą interfejsu Google Ads API możesz tworzyć zapytania, aby uzyskiwać potrzebne raporty o reklamach hoteli. Możesz następnie włączyć te zapytania do aplikacji klienckich.
Wymagania wstępne
- Dowiedz się, jak działają raporty i zapytania.
- Dowiedz się, jak można wysyłać zapytania dotyczące różnych zasobów.
Podstawowe zapytania dotyczące reklam hoteli
Zapoznaj się z przykładowymi zapytaniami, aby dowiedzieć się, jak korzystać z interfejsu Google Ads API do raportowania reklam hoteli.
Pobieranie danych o kliknięciach
Przykładowe zapytanie poniżej zwraca liczbę kliknięć z widoku skuteczności hotelu.
SELECT metrics.clicks
FROM hotel_performance_view
Wyniki zapytania powinny wyglądać mniej więcej tak:
{
"results": [
{
"metrics": {
"clicks": "78090"
},
"hotelPerformanceView": {
"resourceName": "customers/1234567890/hotelPerformanceView"
}
}
],
"totalResultsCount": "1",
"fieldMask": "metrics.clicks"
}
Pobieranie danych o kliknięciach podzielonych na segmenty
Poniższe przykładowe zapytanie dotyczące widoków skuteczności hoteli pobiera kliknięcia i dzieli wyniki na segmenty według identyfikatora hotelu.
SELECT
segments.partner_hotel_id,
metrics.clicks
FROM hotel_performance_view
Wyniki zapytania powinny wyglądać mniej więcej tak jak ten ciąg JSON.
Kliknięcia są segmentowane według partnerHotelID
, więc w przypadku tego samego widoku HotelPerformanceView można zwrócić co najmniej 2 obiekty.
{
"results": [
{
"metrics": {
"clicks": "7055"
},
"hotelPerformanceView": {
"resourceName": "customers/1234567890/hotelPerformanceView"
},
"segments": {
"partnerHotelId": "1111"
}
},
{
"metrics": {
"clicks": "3047"
},
"hotelPerformanceView": {
"resourceName": "customers/1234567890/hotelPerformanceView"
},
"segments": {
"partnerHotelId": "1112"
}
},
...
]
}
Pobieranie danych o grupach reklam
To przykładowe zapytanie dotyczące grup reklam pobiera wyświetlenia i kliknięcia z ostatnich 30 dni, podzielone na segmenty według daty.
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
Wyniki zapytania powinny wyglądać mniej więcej tak jak ten ciąg JSON.
Odpowiedź jest filtrowana tak, aby zawierała tylko dane spełniające warunki klauzuli WHERE
. Pole daty jest wypełniane ostatnią datą uwzględnioną w okresie 30 dni.
{
"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"
}
}
]
}
Pobieranie reklam z włączonych grup reklam
Poniższe przykładowe zapytanie dotyczące reklam w grupach reklam zwraca grupy reklam, które będą wyświetlać reklamy. Aby grupa reklam mogła wyświetlać reklamy, musi być włączona zarówno reklama w grupie reklam, jak i sama grupa reklam oraz kampania.
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
Wyniki zapytania powinny wyglądać mniej więcej tak jak ten ciąg 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"
}
}
}
]
}
Przydatne widoki w raportach dotyczących reklam hoteli
W poprzednich interfejsach API do raportowania reklam hoteli można było pobrać konkretny raport, np. raport skuteczności. W Google Ads API tego rodzaju dane są reprezentowane w osobnych zasobach *_view
, takich jak hotel_performance_view
i hotel_group_view
. W tej sekcji opisujemy zasoby *_view
, które są przydatne w raportowaniu dotyczącym reklam hoteli. Podane są też przykładowe zapytania.
Pamiętaj, że każdy zasób *_view
ma określone pola zasobu, segmenty i rodzaje danych. Zanim utworzysz zapytanie, zapoznaj się z dokumentacją konkretnego zasobu *_view
.
Widok grupy hoteli
Widok grupy hoteli to widok kryteriów, dlatego jest przydatny do pobierania danych o określonym typie kryteriów grupy hoteli.
To przykładowe zapytanie dotyczące wyświetleń grup hoteli pobiera kliknięcia każdego hotelu w grupie ofert dla całego drzewa grupy ofert hoteli, w tym węzła głównego („Wszystkie hotele”).
SELECT
metrics.clicks,
ad_group_criterion.listing_group.case_value.hotel_id.value
FROM hotel_group_view
Wyniki zapytania powinny wyglądać mniej więcej tak jak ten ciąg JSON.
Biorąc pod uwagę, że wartość case_value
jest niezdefiniowana w przypadku węzła głównego („Wszystkie hotele”), widać, że pierwszy wiersz zawiera dane o grupie wizytówek „Wszystkie hotele”, a drugi wiersz – dane o podrzędnej grupie wizytówek „Inne”.
{
"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"
}
},
]
}
Widok skuteczności hotelu
Widok skuteczności hotelu jest przydatny, jeśli chcesz pobrać dane o skuteczności hotelu, które nie pochodzą z grupowania hoteli, nawet jeśli masz podział na podstawie identyfikatora hotelu.
Poniższe przykładowe zapytanie dotyczące wyświetleń skuteczności hoteli pobiera kliknięcia i dzieli wyniki na segmenty według identyfikatora hotelu.
SELECT
segments.partner_hotel_id,
metrics.clicks
FROM hotel_performance_view
Wyniki zapytania powinny wyglądać mniej więcej tak jak ten ciąg JSON.
Kliknięcia są segmentowane według partner_hotel_id
, więc w przypadku tego samego widoku wyników hotelu można zwrócić co najmniej 2 obiekty.
{
"results": [
{
"metrics": {
"clicks": "7055"
},
"hotelPerformanceView": {
"resourceName": "customers/1234567890/hotelPerformanceView"
},
"segments": {
"partnerHotelId": "1111"
}
},
{
"metrics": {
"clicks": "3047"
},
"hotelPerformanceView": {
"resourceName": "customers/1234567890/hotelPerformanceView"
},
"segments": {
"partnerHotelId": "1112"
}
},
...
]
}
Widok listy odbiorców grupy reklam
Widok odbiorców w grupie reklam przydaje się, jeśli chcesz pobrać dane o skuteczności odbiorców dołączonych na poziomie grupy reklam.
Pamiętaj, że jest to ogólny widok dla różnych typów kampanii, a nie tylko kampanii reklam hoteli. Ten widok umożliwia też segmentowanie wyników według hotel_date_selection_type
, co pozwala określić, czy data hotelu została wybrana przez użytkownika, czy była domyślną datą wyszukiwania ustawioną przez Google. Jeśli segmentujesz według hotel_date_selection_type
, zwracane są tylko wyniki dotyczące kampanii reklam hoteli.
To zapytanie zwraca 1 wiersz na każde 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
Wyniki zapytania powinny wyglądać mniej więcej tak jak ten ciąg 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"
}
}
]
}
Widok odbiorców kampanii
Widok odbiorców w kampanii jest przydatny, jeśli chcesz pobrać dane o skuteczności odbiorców dołączonych na poziomie kampanii.
Pamiętaj, że jest to ogólny widok dla różnych typów kampanii, a nie tylko kampanii reklam hoteli. Ten widok umożliwia też segmentowanie wyników według hotel_date_selection_type
, co pozwala określić, czy data hotelu została wybrana przez użytkownika, czy była domyślną datą wyszukiwania ustawioną przez Google. Jeśli segmentujesz według hotel_date_selection_type
, zwracane są tylko wyniki dotyczące kampanii reklam hoteli.
To zapytanie zwraca 1 wiersz na każde 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
Wyniki zapytania powinny wyglądać mniej więcej tak jak ten ciąg 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"
}
}
]
}
Przydatne raporty dotyczące Reklam hoteli
Ta sekcja zawiera kilka przydatnych raportów przeznaczonych specjalnie do reklam hoteli.
Raporty skuteczności
Te zapytania korzystają z widoku skuteczności reklam hoteli, aby uzyskać dane o skuteczności.
hotel_performance_view
umożliwia używanie zasobu campaign
do segmentowania danych. Możesz na przykład użyć pola campaign.id
, aby uzyskać dane o skuteczności według kampanii.
Wyniki
Przykładowe zapytanie:
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
Przykładowa odpowiedź 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"
}
}
]
}
Skuteczność według typu kliknięcia
Przykładowe zapytanie:
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
Przykładowa odpowiedź 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"
}
}
]
}
Raport skuteczności cen warunkowych
To zapytanie pobiera dane o skuteczności podzielone na segmenty według:
campaign
hotel_center_id
hotel_country
hotel_rate_rule_id
hotel_rate_type
device
partner_hotel_id
Opis typów znajdziesz w sekcji HotelRateType
.
Zapytanie może zawierać wiele segmentów, ale liczba zwracanych wierszy może znacznie wzrosnąć wraz z dodatkowymi segmentami.
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
Wyniki zapytania powinny wyglądać mniej więcej tak jak ten ciąg 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"
}
}
]
}
Raport o konkurencyjności cenowej
Możesz uzyskać informacje o tym, jak Twoje ceny wypadają na tle cen konkurencji w przypadku tych samych planów podróży.
Przykładowe zapytanie:
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
Przykładowa odpowiedź JSON:
{
"results": [
{
"metrics": {
"hotelAverageLeadValueMicros": "96416341.829268292",
"hotelPriceDifferencePercentage": "-0.014627310872986811"
},
"hotelPerformanceView": {
"resourceName": "customers/123456789/hotelPerformanceView"
},
"segments": {
"hotelCenterId": "1234",
"partnerHotelId": "123",
"hotelPriceBucket": "LOWEST_TIED"
}
}
]
}
Raport średniej ceny rezerwacji
Możesz uzyskać dane potrzebne do obliczenia średniej ceny rezerwacji (all_conversions_value
podzielone przez conversions
) w przypadku hoteli.
Przykładowe zapytanie:
SELECT
segments.hotel_center_id,
segments.partner_hotel_id,
segments.hotel_price_bucket,
metrics.all_conversions_value,
metrics.conversions
FROM hotel_performance_view
Przykładowa odpowiedź JSON:
{
"results": [
{
"metrics": {
"allConversionsValue": "123.5",
"conversions": "1"
},
"hotelPerformanceView": {
"resourceName": "customers/123456789/hotelPerformanceView"
},
"segments": {
"hotelCenterId": "1234",
"partnerHotelId": "123",
"hotelPriceBucket": "LOWEST_TIED"
}
}
]
}
Raporty z sekcji Odbiorcy
Raporty o odbiorcach pokazują skuteczność mnożników stawek na listach odbiorców Google Ads. Przykłady raportów o odbiorcach znajdziesz w przykładowych zapytaniach w sekcjach Widok odbiorców w grupie reklam i Widok odbiorców w kampanii.
Raport uzgodnień z hotelem
Raport uzgodnień dotyczący hoteli zawiera informacje o konwersjach z rezerwacji hoteli, które można uzgodnić z danymi reklamodawcy. Możesz przesyłać dane zbiorczo, aby poinformować Google, które rezerwacje zostały anulowane, a które zrealizowane. Główne kolumny w tym raporcie to:
Kolumna interfejsu | Kolumna API | Wyjaśnienie |
---|---|---|
Wartość rezerwacji | metrics.value_per_conversions_by_conversion_date |
Wartość konwersji zgłoszona przez tag |
Data konwersji | segments.date |
data rezerwacji; |
Stawka prowizji | metrics.hotel_commission_rate_micros |
Procent wartości rezerwacji, który ustalasz za wyświetlenie reklamy. |
Koszt prowizji |
Jeśli |
Kwota, jaka zostanie lub została zapłacona za pobyt gościa. |