- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我发现 PRODUCT_PARTITION_REPORT 中存在一些差异。
所以在我发布我的测试脚本并给出一些解释之前我想问我的问题:
这是我用 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(=案例 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/
好吧,这可能是一个“你到底在问什么”的问题,所以请耐心等待。通常,我是 .NET 和 SQL 开发人员。我正在使用 AWQL 尝试获取 adwords 脚本来制作量身定制的报告。简短版本,我需要从不同
我正在构建一个用户可以授权的应用程序,我们每天获取他们的数据,并且在初始授权时我们提取过去 365 天的数据。 到目前为止我可以提取数据,但它给了我过去 365 天的总计,我想知道 adwords a
在我的仅限搜索网络的广告系列中使用 AdWords 的广告时间安排,我可以看到“星期几”报告。它显示给定日期和时间的事件绩效值。我想在 AdWords 脚本中使用这些数据。是否可以通过 AdWords
我发现 PRODUCT_PARTITION_REPORT 中存在一些差异。 所以在我发布我的测试脚本并给出一些解释之前我想问我的问题: 为什么 AdWords 会有这样的行为? 此行为是正常现象还是错
首先,我要声明我不是开发人员,我也不会编写基本 HTML 之外的代码。所以我感谢你的耐心等待。 :) 我正在使用一个用于 AdWords 的脚本,但我相信它或多或少是用 Javascript 编写的。
我是一名优秀的程序员,十分优秀!