Film: wykład na temat raportowania w Reklamach hoteli z warsztatów z 2019 r.
Za pomocą interfejsu Google Ads API możesz tworzyć zapytania, aby uzyskiwać potrzebne raporty Reklamy hoteli. Następnie możesz uwzględnić te zapytania w swoich aplikacjach klienckich.
Wymagania wstępne
- Dowiedz się, jak działają raportowanie i zapytania.
- Dowiedz się, jak można wysyłać zapytania do różnych zasobów.
Podstawowe zapytania dotyczące reklam hoteli
Zapoznaj się z tymi przykładowymi zapytaniami, aby dowiedzieć się, jak korzystać z interfejsu Google Ads API do raportowania reklam hoteli.
Dane o kliknięciach
To przykładowe zapytanie zwraca liczbę kliknięć z widoku skuteczności hotelu.
SELECT metrics.clicks
FROM hotel_performance_view
Wyniki zapytania będą 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 w segmentach
Podane niżej przykładowe zapytanie dotyczące widoków skuteczności hoteli zwraca kliknięcia i dzieli wyniki według identyfikatora hotelu.
SELECT
segments.partner_hotel_id,
metrics.clicks
FROM hotel_performance_view
Wyniki zapytania powinny wyglądać mniej więcej tak:
Kliknięcia są dzielone według partnerHotelID
, więc w przypadku tego samego obiektu hotelPerformanceView może zostać zwróconych 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"
}
},
...
]
}
Dane o grupach reklam
To przykładowe zapytanie dotyczące grup reklam zwraca wyświetlenia i kliknięcia z ostatnich 30 dni podzielone 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:
Odpowiedź jest filtrowana tak, aby zawierała tylko dane, które spełniają warunki klauzuli WHERE
. Pole daty jest wypełniane ostatnią datą z okresu 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
Podane niżej przykładowe zapytanie dotyczące reklam w grupach reklam zwraca grupy reklam, które będą wyświetlane. Aby grupa reklam mogła wyświetlać reklamy, musisz włączyć reklamę w grupie reklam, grupę reklam i kampanię.
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:
{
"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 do raportowania reklam hoteli
W poprzednich interfejsach API do raportowania reklam hoteli można było pobierać konkretne raporty, np. raport skuteczność. W interfejsie Google Ads API tego typu dane są reprezentowane w osobnych zasobach *_view
, takich jak hotel_performance_view
i hotel_group_view
. Ta sekcja opisuje zasoby *_view
przydatne do tworzenia raportów o reklamach hoteli. Podano też przykładowe zapytania.
Pamiętaj, że każdy zasób *_view
ma określone pola zasobu, segmenty i metryki. Zanim zbudujesz zapytanie, zapoznaj się z dokumentacją dotyczącą konkretnego zasobu *_view
.
Widok grupy hoteli
Widok Grupa hoteli to widok kryteriów, więc jest przydatny do pobierania danych dla określonego typu kryteriów grupy hoteli.
To przykładowe zapytanie dotyczące wyświetleń grup hoteli zwraca kliknięcia dla każdego hotelu w grupie informacji o hotelu w całym drzewie grup informacji o hotelu, w tym w węźle głównym („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:
Ponieważ w przypadku węzła wyższego poziomu („Wszystkie hotele”) nie jest zdefiniowana wartość case_value
, pierwsza wiersz przedstawia dane dotyczące grupy wizytówek „Wszystkie hotele”, a drugi – dane dotyczące grupy podrzędnej 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ść hotelu
Widok skuteczności hotelu jest przydatny, jeśli chcesz pobrać dane o skuteczności hotelu, korzystając z danych, które nie pochodzą z grupy hoteli, nawet jeśli masz podgrupę utworzoną na podstawie identyfikatora hotelu.
Podane niżej przykładowe zapytanie dotyczące widoków skuteczności hoteli zwraca kliknięcia i dzieli wyniki według identyfikatora hotelu.
SELECT
segments.partner_hotel_id,
metrics.clicks
FROM hotel_performance_view
Wyniki zapytania powinny wyglądać mniej więcej tak:
Kliknięcia są dzielone według partner_hotel_id
, więc w przypadku tego samego widoku skuteczności hotelu mogą zostać zwrócone 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 grupy reklam przydaje się, gdy chcesz pobrać dane o skuteczności dotyczące list odbiorców dołączonych na poziomie grupy reklam.
Pamiętaj, że jest to widok ogólny dotyczący różnych typów kampanii, a nie tylko kampanii reklam hoteli. W tym widoku możesz też dzielić wyniki na segmenty według wartości hotel_date_selection_type
, co pozwala określić, czy data pobytu w hotelu została wybrana przez użytkownika, czy jest domyślną datą wyszukiwania ustawioną przez Google. Jeśli podzielisz dane według wymiaru hotel_date_selection_type
, zostaną zwrócone tylko wyniki dotyczące kampanii reklam hoteli.
Podane niżej zapytanie zwraca po 1 wierszu na każdy wiersz w tabeli 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:
{
"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 listy odbiorców kampanii
Widok listy odbiorców kampanii jest przydatny, gdy chcesz pobrać dane o skuteczności odbiorców dołączonych na poziomie kampanii.
Pamiętaj, że jest to widok ogólny dotyczący różnych typów kampanii, a nie tylko kampanii reklam hoteli. W tym widoku możesz też dzielić wyniki na segmenty według wartości hotel_date_selection_type
, co pozwala określić, czy data pobytu w hotelu została wybrana przez użytkownika, czy jest domyślną datą wyszukiwania ustawioną przez Google. Jeśli podzielisz dane według wymiaru hotel_date_selection_type
, zostaną zwrócone tylko wyniki dotyczące kampanii reklam hoteli.
Podane niżej zapytanie zwraca po 1 wierszu na każdy wiersz w tabeli 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:
{
"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
W tej sekcji znajdziesz kilka przydatnych raportów opracowanych specjalnie na potrzeby reklam hoteli.
Raporty skuteczności
Te zapytania korzystają z widoku skuteczności hoteli, aby uzyskiwać dane o skuteczności.
hotel_performance_view
pozwala używać zasobu campaign
do segmentowania danych. Możesz np. 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ład odpowiedzi 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ład odpowiedzi 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
Zapytanie to zwraca dane o skuteczności podzielone według:
campaign
hotel_center_id
hotel_country
hotel_rate_rule_id
hotel_rate_type
device
partner_hotel_id
Opis typów znajdziesz w artykule HotelRateType
.
W zapytaniu możesz uwzględnić wiele segmentów, ale wraz z dodatkowymi segmentami liczba zwracanych wierszy może znacznie wzrosnąć.
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:
{
"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ład odpowiedzi JSON:
{
"results": [
{
"metrics": {
"hotelAverageLeadValueMicros": "96416341.829268292",
"hotelPriceDifferencePercentage": "-0.014627310872986811"
},
"hotelPerformanceView": {
"resourceName": "customers/123456789/hotelPerformanceView"
},
"segments": {
"hotelCenterId": "1234",
"partnerHotelId": "123",
"hotelPriceBucket": "LOWEST_TIED"
}
}
]
}
Raport Średnia zarezerwowana cena
Możesz uzyskać dane potrzebne do obliczenia średniej ceny rezerwacji (all_conversions_value
podzielonej przez conversions
) dla 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ład odpowiedzi 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 dotyczące list odbiorców podają dane o skuteczności mnożników stawek na listach odbiorców Google Ads. Przykłady raportów o odbiorcach znajdziesz w przykładowych zapytaniach w sekcji Wyświetlanie danych o odbiorcach w grupie reklam i Wyświetlanie danych o odbiorcach w kampanii.
Raport Uzgodnienie z hotelem
Raport zgodności danych dotyczących hoteli zawiera informacje o konwersjach z rezerwacji hoteli, które należy zweryfikować 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 podana przez tag |
Data konwersji | segments.date |
data rezerwacji; |
Stawka prowizji | metrics.hotel_commission_rate_micros |
Odsetek wartości rezerwacji, który wyznaczasz za wyświetlenie reklamy. |
Koszt prowizji |
Jeśli jest to |
kwota, jaka zostanie lub została zapłacona za pobyt gościa; |