Raportowanie

Film: obejrzyj prezentację na temat raportowania w przypadku Reklam hoteli z warsztatów w 2019 r.

Za pomocą interfejsu Google Ads API możesz tworzyć zapytania, aby uzyskiwać potrzebne raporty Reklam 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 reklama w grupie reklam, grupa reklam i 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 interfejsie Google Ads API tego rodzaju dane są reprezentowane w osobnych zasobach *_view, takich jak hotel_performance_viewhotel_group_view. Ta sekcja zawiera opis *_view zasobów, które są przydatne w raportowaniu reklam hoteli. Podajemy 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 informacji o produktach dla całego drzewa grupy informacji o produktach 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 informacji o produktach „Wszystkie hotele”, a drugi wiersz – dane o podrzędnej grupie informacji o produktach „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 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 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 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 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 dla reklam hoteli.

Raporty skuteczności

Te zapytania korzystają z widoku skuteczności 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 tych 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"
      }
    }
  ]
}

Raport skuteczności konwersji i kosztów

To zapytanie zwraca ogólne dane o konwersjach i kosztach w przypadku reklam hoteli. Jest ono przydatne do oceny wyników finansowych i zwrotu z nakładów na reklamę.

Przykładowe zapytanie:

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

Przykładowa odpowiedź JSON:

{
  "results": [
    {
      "metrics": {
        "allConversionsValue": "250.0",
        "costMicros": "15000000",
        "conversions": "2.0"
      },
      "hotelPerformanceView": {
        "resourceName": "customers/123456789/hotelPerformanceView"
      },
      "segments": {
        "date": "2026-03-24",
        "partnerHotelId": "123"
      }
    }
  ]
}

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.