gpt4 book ai didi

python - AWQL : Including device type in PRODUCT_PARTITION_REPORT results in less zero impression data?

转载 作者:太空宇宙 更新时间:2023-11-03 17:10:22 27 4
gpt4 key购买 nike

我发现 PRODUCT_PARTITION_REPORT 中存在一些差异。

所以在我发布我的测试脚本并给出一些解释之前我想问我的问题:

  • 为什么 AdWords 会有这样的行为?
  • 此行为是正常现象还是错误?

这是我用 Python 编写的小测试脚本,用于通过 AWQL 查询 AdWords 购物数据(产品组)并将结果存储为 CSV:

from googleads import AdWordsClient

startdate = '20150801'
enddate = '20151130'
ADWORDS_API_VERSION = 'v201509'

client = AdWordsClient.LoadFromStorage('adwords.yaml')
client.client_customer_id = 'XXX-XXX-XXXX'
report_downloader = client.GetReportDownloader(version=ADWORDS_API_VERSION)

queries = {
# (1)
'product_groups_without_device_split': (
"SELECT CampaignName, CampaignId, AdGroupName, AdGroupId, "
"ProductGroup, Impressions, Clicks, Conversions "
"FROM PRODUCT_PARTITION_REPORT "
"WHERE CampaignStatus IN ['ENABLED', 'PAUSED'] "
"AND AdGroupStatus IN ['ENABLED', 'PAUSED'] "
"AND PartitionType = UNIT AND Impressions > 0 "
"DURING %s,%s"
),
# (2)
'product_groups_without_device_split_zero_impressions': (
"SELECT CampaignName, CampaignId, AdGroupName, AdGroupId, "
"ProductGroup "
"FROM PRODUCT_PARTITION_REPORT "
"WHERE CampaignStatus IN ['ENABLED', 'PAUSED'] "
"AND AdGroupStatus IN ['ENABLED', 'PAUSED'] "
"AND PartitionType = UNIT AND Impressions = 0 "
"DURING %s,%s"
),
# (3)
'product_groups': (
"SELECT CampaignName, CampaignId, AdGroupName, AdGroupId, "
"ProductGroup, Device, Impressions, Clicks, Conversions "
"FROM PRODUCT_PARTITION_REPORT "
"WHERE CampaignStatus IN ['ENABLED', 'PAUSED'] "
"AND AdGroupStatus IN ['ENABLED', 'PAUSED'] "
"AND PartitionType = UNIT AND Impressions > 0 "
"DURING %s,%s"
),
# (4)
'product_groups_zero_impressions': (
"SELECT CampaignName, CampaignId, AdGroupName, AdGroupId, "
"ProductGroup, Device "
"FROM PRODUCT_PARTITION_REPORT "
"WHERE CampaignStatus IN ['ENABLED', 'PAUSED'] "
"AND AdGroupStatus IN ['ENABLED', 'PAUSED'] "
"AND PartitionType = UNIT AND Impressions = 0 "
"DURING %s,%s"
)
}

for name, awqlQueryTpl in queries.iteritems():
awqlQuery = awqlQueryTpl % (startdate, enddate)
with open(name+'.csv', 'w') as file_:
report_downloader.DownloadReportWithAwql(awqlQuery, 'CSV', file_,
skip_report_header=True, skip_column_header=False,
skip_report_summary=True)

(敏感数据已被删除...)

对查询的一些解释:

  1. 第一个查询包含统计数据,但没有设备拆分。选择统计属性(如展示次数、点击次数等)时,无法返回零展示次数!

  2. 此查询不包含统计数据,因此我可以以零展示次数获取缺失的数据。这里没有设备拆分。

  3. 此查询包含统计数据,并且数据按设备类型拆分。此处无法返回零展示次数。

  4. 此查询没有统计数据,但有设备类型拆分。此处仅返回零展示数据

我合并了查询 1+2(=案例 A)和查询 3+4(=案例 B)的结果。对于情况 B,我合并了按设备类型拆分的数据。因此,相比之下,这个结果和 (A) 的结果应该是相同的 - 但事实并非如此!虽然两种情况下的统计数据一致,但差异在于零展示数据 - (A) 中的条目比 B 中多了 900 多个条目。

当我在没有设备的情况下查询但包含零展示次数 (4) 时,我还会得到展示次数为零且已暂停的广告系列(这就是我想要的)。但是当我使用设备 (3) 查询时,我根本没有收到该事件...

我已经证明了两次:在合并和比较数据时我没有犯错误。我使用 KEYWORD_PERFORMANCE_REPORT 中的数据进行了相同的测试,绝对没有问题!

我希望这些信息足以在这里获得一些帮助......

请参阅上面我的问题。

最佳答案

好的,解决方案是将 include_zero_impressions=True 添加到 DownloadReportWithAwql() 函数,并从查询中删除 impressions=0:

for name, awqlQueryTpl in queries.iteritems():
awqlQuery = awqlQueryTpl % (startdate, enddate)
with open(name+'.csv', 'w') as file_:
report_downloader.DownloadReportWithAwql(awqlQuery, 'CSV', file_,
skip_report_header=True, skip_column_header=False,
skip_report_summary=True, include_zero_impressions=True)

我认为在查询本身中使用impressions=0和impressions>0具有相同的效果,但看来我的期望是错误的。

关于python - AWQL : Including device type in PRODUCT_PARTITION_REPORT results in less zero impression data?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34156056/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com