Raportowanie

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

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_viewhotel_group_view. Ta sekcja opisuje zasoby *_viewprzydatne 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 reklamWyś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 status == RECONCILED lub CANCELED, ta wartość może być obliczona jako metrics.hotel_commission_rate_micros * hotel_reconciliation.reconciled_value_micros. W pozostałych przypadkach tę wartość można uzyskać z kolumny metrics.hotel_expected_commission_cost lub obliczyć jako metrics.hotel_commission_rate_micros * metrics.value_per_conversions_by_conversion_date.

kwota, jaka zostanie lub została zapłacona za pobyt gościa;