我已将 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
输出:
日期 | 活动 ID | 创意 ID | 印象 | 点击次数 | 广告费用 | 资源 | 中等的 | 活动 |
---|---|---|---|---|---|---|---|---|
2021-11-26 | 1688777252 | 328994634699 | 1 | 1 | 10 | 谷歌 | 每次点击费用 | _cntr_sale_15 |
2021-11-26 | 1688777252 | 328994634699 | 1 | 1 | 10 | 谷歌 | 每次点击费用 | cntr_sale_16 |
2021-11-26 | 1688777252 | 328994634699 | 1 | 1 | 10 | 谷歌 | 每次点击费用 | cntr_sale_17 |
而且有一个麻烦。如果一个 creativeId 在其生命周期中在 AdTrakingTemplate 中有几个 utm_marks,所有这些都将进入结果,并且所有这些都会从 AdStats 表中收到一个统计信息(您可以在输出中看到:相同的日期,相同的 CreativeAd,相同的统计信息,但不同乌兹别克斯坦)。因此,我们有双倍(三倍、四倍)的展示次数、点击次数、花费金额等。这是一个很常见的情况,因为经理更改跟踪模板比在 Google Ads 中创建新的广告或广告系列更容易。
而且,不幸的是,我不知道如何解决这个问题,因为在执行某些统计操作(展示次数、点击等)时,无法确定 createiveIdTrakingTemplate 中究竟是哪些 utm_marks。
有谁知道,如何处理?感谢帮助!