Raportowanie

Film: zobacz prezentację na temat raportów z warsztatów dotyczących Reklam hoteli z 2019 roku

Za pomocą interfejsu Google Ads API możesz projektować zapytania tak, aby uzyskiwać potrzebne raporty o reklamach hoteli. Możesz następnie włączyć te zapytania w swoje aplikacje klienckie.

Wymagania wstępne

  • Dowiedz się, jak działają raporty i zapytania.
  • Dowiedz się, jak wysyłać zapytania dotyczące różnych zasobów.

Podstawowe zapytania w przypadku reklam hoteli

Zapoznaj się z tymi przykładowymi zapytaniami, aby dowiedzieć się, jak korzystać z interfejsu Google Ads API na potrzeby raportowania w przypadku Reklam hoteli.

Pobieranie danych o kliknięciach

Podane niżej 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"
}

Uzyskiwanie posegmentowanych danych o kliknięciach

Podane niżej przykładowe zapytanie związane z widokami skuteczności hoteli uzyskuje kliknięcia i segmentuje wyniki według identyfikatora hotelu.

SELECT
  segments.partner_hotel_id,
  metrics.clicks
FROM hotel_performance_view

Wyniki zapytania będą wyglądać mniej więcej tak jak ten ciąg JSON. Kliknięcia są podzielone na segmenty według parametru partnerHotelID, dzięki czemu dla tego samego obiektu hotelPerformanceView 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"
      }
    },
    ...
  ]
}

Pobierz dane grupy reklam

Podane niżej przykładowe zapytanie dotyczące grup reklam uzyskuje 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 będą wyglądać mniej więcej tak jak ten ciąg JSON. Odpowiedź jest filtrowana tylko pod kątem wskaźników spełniających 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"
      }
    }
  ]
}

Pobierz włączone reklamy z grupy reklam

Podane niżej przykładowe zapytanie dotyczące reklam w grupie reklam pobiera grupy reklam, które zostaną wyświetlone. Aby można było wyświetlić dowolną grupę reklam, musi ona być włączona: reklama z grupy 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 będą 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"
        }
      }
    }
  ]
}

Widoki przydatne do raportowania Reklam hoteli

We wcześniejszych interfejsach API do raportowania Reklam hoteli można było pobierać konkretny raport, np. raport skuteczności. W interfejsie Google Ads API dane te są prezentowane w osobnych zasobach *_view, np. hotel_performance_view i hotel_group_view. W tej sekcji znajdziesz opis zasobów związanych z *_view, które są przydatne podczas tworzenia raportów o reklamach hoteli. Dostępne są też przykładowe zapytania.

Pamiętaj, że każdy zasób *_view ma określone pola zasobów, segmenty i dane. Zanim utworzysz zapytanie, zapoznaj się z dokumentacją konkretnego zasobu *_view.

Widok grupy hoteli

Widok grupy hoteli jest widokiem kryteriów, więc przydaje się do pobierania danych dotyczących określonego typu kryteriów grupy hoteli.

Podane niżej przykładowe zapytanie dotyczące widoków grup hoteli uzyskuje kliknięcia każdego hotelu w grupie informacji o produktach w całym drzewie grupy informacji o hotelach, 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 będą wyglądać mniej więcej tak jak ten ciąg JSON. Ponieważ w węźle głównym („Wszystkie hotele”) wartość case_value jest nieokreślona, widać, że pierwszy wiersz zawiera dane z grupy informacji o produktach „Wszystkie hotele”, a drugi – dane dotyczące podrzędnej grupy informacji o produktach reprezentującej grupę „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"
      }
    },
  ]
}

Skuteczność hotelu

Widok skuteczności hotelu przydaje się, gdy chcesz pobierać dane o skuteczności hotelu za pomocą danych, które nie pochodzą z grupy hoteli, nawet jeśli stosujesz podgrupę do podziału na podstawie identyfikatora hotelu.

Podane niżej przykładowe zapytanie związane z widokami skuteczności hoteli uzyskuje kliknięcia i segmentuje wyniki według identyfikatora hotelu.

SELECT
  segments.partner_hotel_id,
  metrics.clicks
FROM hotel_performance_view

Wyniki zapytania będą wyglądać mniej więcej tak jak ten ciąg JSON. Kliknięcia są podzielone na segmenty według atrybutu partner_hotel_id, dzięki czemu w tym samym 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 odbiorców grupy reklam

Widok Odbiorcy grupy reklam przydaje się, gdy chcesz pobierać dane o skuteczności dotyczące odbiorców dołączonych na poziomie grupy reklam.

Pamiętaj, że jest to ogólny widok różnych typów kampanii, nie tylko kampanii reklam hoteli. Ten widok umożliwia też segmentowanie wyników według parametru hotel_date_selection_type, dzięki któremu można określić, czy data pobytu w hotelu została wybrana przez użytkownika, czy była to domyślna data dla wyszukiwania ustawionego przez Google. Jeśli posegmentujesz dane według wymiaru hotel_date_selection_type, otrzymasz wyniki tylko z kampanii reklam hoteli.

To zapytanie zwraca 1 wiersz na 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 będą 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"
      }
    }
  ]
}

Odbiorcy kampanii – widok

Widok Odbiorcy kampanii przydaje się, gdy chcesz pobierać dane o skuteczności dotyczące list odbiorców dołączonych na poziomie kampanii.

Pamiętaj, że jest to ogólny widok różnych typów kampanii, nie tylko kampanii reklam hoteli. Ten widok umożliwia też segmentowanie wyników według parametru hotel_date_selection_type, dzięki któremu można określić, czy data pobytu w hotelu została wybrana przez użytkownika, czy była to domyślna data dla wyszukiwania ustawionego przez Google. Jeśli posegmentujesz dane według wymiaru hotel_date_selection_type, otrzymasz wyniki tylko z kampanii reklam hoteli.

To zapytanie zwraca 1 wiersz na 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 będą 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

W tej sekcji znajdziesz kilka przydatnych raportów opracowanych specjalnie z myślą o Reklamach hoteli.

Raporty skuteczności

Zapytania te korzystają z widoku skuteczności hotelu w celu uzyskiwania danych o skuteczności.

hotel_performance_view umożliwia segmentację danych przy użyciu zasobu campaign. Możesz np. w polu campaign.id uzyskać dane o skuteczności według kampanii.

Występy

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 powoduje podział danych o skuteczności na segmenty według:

  • campaign
  • hotel_center_id
  • hotel_country
  • hotel_rate_rule_id
  • hotel_rate_type
  • device
  • partner_hotel_id

Opisy poszczególnych typów znajdziesz w sekcji HotelRateType.

W zapytaniu można uwzględnić wiele segmentów, jednak liczba zwróconych wierszy może się znacznie zwiększyć po zastosowaniu dodatkowych segmentów.

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 będą 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 sprawdzić, jak Twoje ceny wypadają na tle cen konkurencji w przypadku tych samych planów podróży do hoteli.

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 zarezerwowanej

Możesz uzyskać dane potrzebne do obliczenia średniej ceny rezerwacji hoteli (all_conversions_value podzielone przez conversions).

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 Odbiorcy w grupie reklam i Widok odbiorców kampanii.

Raport uzgodnień dotyczących hoteli

Raport uzgodnień dotyczących hoteli zawiera informacje o konwersjach z rezerwacji hoteli, które są zgodne z danymi reklamodawcy. Aby poinformować Google, które rezerwacje zostały anulowane, a które zrealizowane, możesz przesłać dane za pomocą przesyłania zbiorczego. Główne kolumny w tym raporcie są następujące:

Kolumna interfejsu Kolumna interfejsu API Wyjaśnienie
Wartość rezerwacji metrics.value_per_conversions_by_conversion_date Wartość konwersji raportowana przez tag.
Data konwersji segments.date datę rezerwacji;
Stawka prowizji metrics.hotel_commission_rate_micros Procent wartości rezerwacji, który określasz dla wyświetlenia reklamy
Koszt prowizji

Jeśli jest ustawiona na status == RECONCILED lub CANCELED, wartość może być obliczana według wzoru: metrics.hotel_commission_rate_micros * hotel_reconciliation.reconciled_value_micros. We wszystkich innych przypadkach tę wartość można uzyskać z kolumny metrics.hotel_expected_commission_cost lub obliczyć za pomocą wzoru metrics.hotel_commission_rate_micros * metrics.value_per_conversions_by_conversion_date

Kwota, jaką masz zamiar zapłacić za pobyt gościa lub została już zapłacona