Raportowanie

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ą raportyzapytania.
  • 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_viewhotel_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 reklamWidok 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 status == RECONCILED lub CANCELED, tę wartość można obliczyć 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.