Normalmente, é possível fazer a junção de dados de campos com o mesmo nome e na mesma plataforma de compra. Por exemplo, adh.google_ads_impressions.impression_id
pode ser combinado com adh.google_ads_clicks.impression_id
. Neste exemplo, os anúncios de display do Google são a porta de compra comum, impression_id
é o campo comum e google_ads_impressions
e google_ads_clicks
são as duas tabelas diferentes.
Existem complexidades que podem dificultar a combinação de dados entre as plataformas de compra. Produtos diferentes do Google usam IDs de usuário distintos, que também podem variar para um único produto com base no estado de login.
Use a tabela a seguir como diretriz para fazer a junção de dados entre os produtos. As junções de dados dentro de uma plataforma de compra costumam funcionar, enquanto aquelas entre plataformas diferentes geralmente não funcionam.
Ponto de compra | Produtos | Tabelas | IDs que podem ser combinados |
---|---|---|---|
Anúncios de display do Google | Parceiros de vídeo do Google (exceto YouTube) | adh.google_ads_*
|
|
Google Marketing Platform | via Transferência de dados:
Display & Video 360 Campaign Manager 360 |
adh.dv360_dt_* adh.cm_dt_*
|
|
YouTube Comercializado pelo Google | YouTube Reserve YouTube (no Google Ads) YouTube (no Display & Video 360) |
adh.yt_reserve_*
adh.google_ads_*
adh.dv360_youtube_*
|
|
Comercializados por Parceiros do YouTube | Google Ad Manager Freewheel |
adh.partner_sold_cross_sell_*
adh.freewheel_* |
|
Chave | user_id |
external_cookie |
device_id_md5 |
Exemplos
Além dos IDs do usuário e do dispositivo, é possível fazer a junção de tabelas usando vários outros campos. Para saber como combinar tabelas no Ads Data Hub, selecione um campo permitido para junção de dados no menu suspenso. Esta seção contém um conjunto com alguns exemplos.
- Todos
- user_id
- impression_id
- campaign_id
- customer_id
- region_id
Este exemplo demonstra como usar user_id
para fazer a junção dos dados de tabelas de impressões, criativos e conversões.
Caso de uso: entenda se as campanhas da marca geram conversões incrementais.
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)
)
Este exemplo demonstra como usar impression_id
para vincular dados de conversões a dados de impressões.
Caso de uso: parcela de impressões e estatísticas de conversão com base no país e 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
Este exemplo demonstra como fazer a junção de dados de várias tabelas em vários IDs.
Caso de uso: liste os recursos vinculados a uma campanha específica.
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
Este exemplo demonstra como combinar tabelas de metadados.
Caso de uso: combine uma tabela de impressões com a tabela de metadados de estado para mostrar a contagem de cookies únicos e a frequência média por estado.
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