Google BigQuery Google Ads 数据传输表中的重复数据
Posted
技术标签:
【中文标题】Google BigQuery Google Ads 数据传输表中的重复数据【英文标题】:Duplicated data in Google BigQuery Google Ads Data Transfer Tables 【发布时间】:2021-12-09 08:17:24 【问题描述】:我已将 Google Ads 数据传输流从 Google Ads 配置到我的 GoogleBigQuery 项目。它运行,数据流动,一切都很好。但是,当我决定构建一个查询以返回在 utm_marks(来源、媒介、活动)的不同组合的上下文中花费的金额时,我遇到了“重复”数据的问题。
因此,查询首先转到 Adstat 表并获取每个广告系列 ID 中每个 creativeId(我想 creativeId 表示广告)的统计信息。然后,它从每个广告系列的每个 creativeId 的 AdTrackingUrlTemplate 中获取每个 utm_marks。最后,它将两个表合并为一个,在输出中我有关于每个 utm_mark 统计信息的完整信息。
查询如下所示:
with
Adstat as (
select *
from `myproject.GoogleAds.AdStats_7394379271`
),
Ad as (
select
CampaignId,
CreativeId,
REGEXP_EXTRACT(CreativeTrackingUrlTemplate, r"[?&]utm_source=([^&]+)") as source,
REGEXP_EXTRACT(CreativeTrackingUrlTemplate, r"[?&]utm_medium=([^&]+)") as medium,
REGEXP_EXTRACT(CreativeTrackingUrlTemplate, r"[?&]utm_campaign=([^&]+)") as campaign
from
`myproject.GoogleAds.p_Ad_7394379271`
where
CreativeTrackingUrlTemplate is not null
and
CreativeTrackingUrlTemplate!="lpurl"
group by
CampaignId, CreativeId, source, medium, campaign
)
select
date, CampaignId, CreativeId, impressions,
Clicks, Cost, Cost * 1.2/1000000 as adCost, source, medium, campaign
from
Adstat
left join
Ad using (CampaignId, CreativeId)
where
date = '2021-11-26'
and
CampaignId = 1688777252
and
CreativeId = 328994634699
输出:
date | CampaignId | CreativeId | impressions | Clicks | adCost | source | medium | campaign |
---|---|---|---|---|---|---|---|---|
2021-11-26 | 1688777252 | 328994634699 | 1 | 1 | 10 | cpc | _cntr_sale_15 | |
2021-11-26 | 1688777252 | 328994634699 | 1 | 1 | 10 | cpc | cntr_sale_16 | |
2021-11-26 | 1688777252 | 328994634699 | 1 | 1 | 10 | cpc | cntr_sale_17 |
还有一个麻烦。如果一个 creativeId 在其生命周期中在 AdTrakingTemplate 中有几个 utm_marks,所有这些都将进入结果,并且所有这些都会从 AdStats 表中收到一个统计信息(您可以在输出中看到:相同的日期,相同的 CreativeAd,相同的统计信息,但不同乌兹别克斯坦)。因此,我们有双倍(三倍、四倍)的展示次数、点击次数、支出金额等。这是一个很常见的情况,因为经理更改跟踪模板比在 Google Ads 中创建新的广告或广告系列更容易。
而且,不幸的是,我不知道如何解决这个问题,因为在执行某些统计操作(展示次数、点击等)时,无法确定 createiveIdTrakingTemplate 中究竟有哪些 utm_marks。
有谁知道,怎么处理?感谢您的帮助!
【问题讨论】:
据我所知,(CampaignId, CreativeId)
不是Adstat
表上的候选键,因此即使您不进行连接,您也可能会有多行。原因是表格被分割的还有其他维度,例如Device
。
【参考方案1】:
您假设 CreativeId 是唯一的。事实并非如此。 CreativeId 仅在广告组中是唯一的 - 换句话说,一个广告系列可以有多个广告组,并且这些组可以有一个具有相同 CreativeId 的广告。
要解决这个问题,请确保在结果中提及广告组,这应该有助于您理解结果。
有关 Google Ads 中对象的唯一性的信息: https://developers.google.com/adwords/api/docs/guides/objects-methods#object_id_uniqueness
【讨论】:
虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review以上是关于Google BigQuery Google Ads 数据传输表中的重复数据的主要内容,如果未能解决你的问题,请参考以下文章
com.google.cloud.bigquery.BigQueryException:读取超时
在 Google Apps 脚本中使用 BigQuery 连接到 Google 电子表格
Google 数据准备 - 无法从 BigQuery 导入表(从 Google 表格创建)“未找到”
Google BigQuery - 将数据流式传输到 BigQuery
使用命令行将数据从 BigQuery 加载到 Google 表格中
将 Firebase Google Analytic 数据导入 BigQuery 时,Google 是不是会收取流媒体费用?