Ads Data Hub의 조인 가능한 필드

일반적으로 동일한 구매 채널 내에서 이름이 같은 필드는 여러 테이블 간에 조인할 수 있습니다. 예를 들어 adh.google_ads_impressions.impression_idadh.google_ads_clicks.impression_id와 조인할 수 있습니다. 이 예에서 Google 디스플레이 광고는 일반적인 구매 채널이고, impression_id는 일반적인 필드이며, google_ads_impressionsgoogle_ads_clicks는 서로 다른 두 개의 테이블입니다.

구매 채널 간에 데이터를 조인하기 어렵게 만들 수 있는 복잡성이 존재합니다. 여러 Google 제품에서 서로 다른 사용자 ID를 사용하며 로그인 상태에 따라 단일 제품 내에서 사용자 ID가 다를 수도 있습니다.

다음 테이블을 제품 간 조인을 위한 가이드라인으로 사용하세요. 각 구매 채널 내에서는 조인이 일반적으로 작동하지만 구매 채널 간의 조인은 일반적으로 작동하지 않습니다.

구매 채널 제품 테이블 조인 가능한 ID
Google 디스플레이 광고 Google 동영상 파트너 (YouTube 제외) adh.google_ads_*
Google Marketing Platform 데이터 전송을 통해:
Display & Video 360
Campaign Manager 360
adh.dv360_dt_*
adh.cm_dt_*
YouTube Google 판매 YouTube Reserve
YouTube(Google Ads 내)
YouTube(Display & Video 360 내)
adh.yt_reserve_*
adh.google_ads_*
adh.dv360_youtube_*
YouTube 파트너 판매 Google Ad Manager
Freewheel
adh.partner_sold_cross_sell_*
adh.freewheel_*
user_id external_cookie device_id_md5

예시

사용자 및 기기 ID 외에 여러 다른 필드를 사용하여 테이블을 조인할 수 있습니다. Ads Data Hub에서 테이블을 조인하는 방법을 알아보려면 드롭다운 메뉴에서 조인 가능한 필드를 선택하세요. 이 섹션에는 일부 예가 포함되어 있습니다.

  • 모두
  • user_id
  • impression_id
  • campaign_id
  • customer_id
  • region_id

이 예에서는 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

이 예에서는 여러 ID를 사용하여 여러 테이블을 조인하는 방법을 보여줍니다.

사용 사례: 특정 캠페인에 연결된 애셋을 나열합니다.

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

이 예에서는 메타데이터 테이블을 조인하는 방법을 보여줍니다.

사용 사례: 노출수 테이블을 상태 메타데이터 테이블과 조인하여 상태별로 고유 쿠키 수와 평균 게재빈도를 표시합니다.

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