Объединяемые поля в Ads Data Hub

Как правило, поля с одинаковыми именами в рамках одной покупательской двери можно объединять в разных таблицах. Например, adh.google_ads_impressions.impression_id можно объединить с adh.google_ads_creative_conversions.impression_id . В этом примере Google Display Ads — общая покупательская дверь, impression_id — общее поле, а google_ads_impressions и google_ads_creative_conversions — две разные таблицы.

Существуют сложности, которые могут затруднить объединение данных между разными покупательскими дверями. Разные продукты Google используют разные идентификаторы пользователей, и идентификаторы пользователей могут различаться в пределах одного продукта в зависимости от состояния входа в систему.

Используйте следующую таблицу в качестве руководства по объединению товаров. Объединения внутри каждой закупочной двери, как правило, работают, тогда как объединения между закупочными дверями, как правило, не работают.

Покупка двери Продукты Таблицы Присоединяемые идентификаторы
Рекламные объявления Google Партнеры Google Video (кроме YouTube) adh.google_ads_*
Маркетинговая платформа Google через передачу данных:
Дисплей и Видео 360
Менеджер кампаний 360
adh.dv360_dt_*
adh.cm_dt_*
YouTube Google продал YouTube Резерв
YouTube (в Google Ads)
YouTube (в Дисплее и Видео 360)
adh.yt_reserve_*
adh.google_ads_*
adh.dv360_youtube_*
Продано YouTube Partner Менеджер рекламы Google
Свободное колесо
adh.partner_sold_cross_sell_*
adh.freewheel_*
Ключ user_id external_cookie device_id_md5

Примеры

Помимо идентификаторов пользователей и устройств, вы можете объединять таблицы, используя ряд других полей. Чтобы узнать, как объединять таблицы в Ads Data Hub, выберите объединяемое поле в раскрывающемся меню. Этот раздел содержит неполный набор примеров.

В этом примере показано, как использовать user_id для объединения таблиц показов, креативов и конверсий.

Пример использования: понять, способствуют ли кампании по брендингу дополнительным конверсиям.

WITH imp AS (
  SELECT
    user_id,
    COUNTIF(campaign_id IN UNNEST(@brand_campaign_ids)) AS brand_impression,
    COUNTIF(campaign_id IN UNNEST(@perf_campaign_ids)) AS perf_impression,
  FROM adh.google_ads_impressions
  WHERE
    campaign_id IN UNNEST(ARRAY_CONCAT(@perf_campaign_ids, @brand_campaign_ids))
    AND user_id != '0'
  GROUP BY 1
  ),
  conv AS (
  SELECT
    c.user_id,
    COUNT(1) AS conv_count
  FROM adh.google_ads_conversions
  WHERE
    impression_data.campaign_id IN UNNEST(@perf_campaign_ids)
    AND conversion_type IN UNNEST(@conversion_type_list)
    AND user_id != '0'
  GROUP BY 1
  )
SELECT
  SUM(IF(has_brand_traffic AND NOT has_perf_traffic, conv_count, 0)) AS brand_only,
  SUM(IF(NOT has_brand_traffic AND has_perf_traffic, conv_count, 0)) AS perf_only,
  SUM(IF(has_brand_traffic AND has_perf_traffic, conv_count, 0)) AS overlap
FROM
  (
  SELECT
    imp.user_id,
    imp.brand_impression > 0 AS has_brand_traffic,
    imp.perf_impression > 0 AS has_perf_traffic,
    conv.conv_count
  FROM imp
  JOIN conv
    USING (user_id)
  )

В этом примере показано, как использовать impression_id для связи данных о конверсиях с данными о показах.

Пример использования: разделение статистики показов и конверсий на основе страны и CTC/EVC.

SELECT
  imp.location.country,
  COUNT(1) AS num_imps,
  SUM(IF(attribution_event_type = 'CLICK', 1, 0)) AS ctc_convs,
  SUM(IF(attribution_event_type = 'ENGAGED_VIEW', 1, 0)) AS evc_convs
FROM adh.google_ads_impressions AS imp
LEFT JOIN adh.google_ads_conversions AS conv
  ON (
    imp.impression_id = conv.impression_id
    AND conv.conversion_type IN UNNEST(@conversion_type_list))
WHERE imp.campaign_id IN UNNEST(@campaign_ids)
GROUP BY 1

В этом примере показано, как объединить несколько таблиц по нескольким идентификаторам.

Пример использования: составление списка активов, связанных с определенной кампанией.

SELECT
  cmp.campaign_id,
  adg.adgroup_id,
  cr.video_message.youtube_video_id
FROM adh.google_ads_campaign AS cmp
JOIN adh.google_ads_adgroup AS adg
  USING (campaign_id)
JOIN adh.google_ads_adgroupcreative AS agc
  USING (adgroup_id)
JOIN adh.google_ads_creative AS cr
  ON (agc.customer_id = cr.customer_id
    AND agc.creative_id = cr.creative_id)
WHERE campaign_id = 123
GROUP BY 1, 2, 3

В этом примере показано, как объединить таблицы метаданных.

Пример использования: объединить таблицу показов с таблицей метаданных штата, чтобы отобразить количество уникальных файлов cookie и среднюю частоту по штату.

SELECT
  IFNULL(reg.region_name, 'unspecified') AS state,
  COUNT(DISTINCT user_id) AS users,
  COUNT(1) AS impressions,
  FORMAT('%0.2f', COUNT(1) / COUNT(DISTINCT user_id)) AS avg_imp_per_user
FROM adh.google_ads_impressions AS imp
LEFT JOIN adh.region AS reg
  ON (imp.location.geo_region_id = reg.region_id)
WHERE
  imp.location.country = 'US'
GROUP BY 1