Google Ad Manager API自定义日期拉取报表报错求助
问题描述
使用Google Ad Manager API按指定startDate和endDate拉取自定义周度历史报表时遇到日期格式相关错误:
- 按文档要求用ISO 8601格式
YYYY-MM-DD(比如2024-04-29)时,触发Unmarshalling Error this is not a valid value for integer类型不匹配错误 - 改成无横杠整数格式(比如
20240421)后,又出现SERVER_ERROR @未知服务器错误
请求代码如下:
# Create report job. report_job = { 'reportQuery': { 'dimensions': ['DATE', 'AD_UNIT_NAME'], 'dimensionAttributes': 'AD_UNIT_CODE', 'adUnitView': 'FLAT', 'reportCurrency': 'MYR', 'columns': ['TOTAL_LINE_ITEM_LEVEL_IMPRESSIONS', 'TOTAL_LINE_ITEM_LEVEL_ALL_REVENUE'], 'dateRangeType': 'CUSTOM_DATE', 'startDate': '2024-04-29', 'endDate': '2024-05-05' } }
正确日期参数配置方案
Google Ad Manager API的startDate和endDate要求传入包含年、月、日的整数嵌套对象,不是单纯的日期字符串或整数值。正确配置方式如下:
修改后的代码示例:
# Create report job. report_job = { 'reportQuery': { 'dimensions': ['DATE', 'AD_UNIT_NAME'], 'dimensionAttributes': 'AD_UNIT_CODE', 'adUnitView': 'FLAT', 'reportCurrency': 'MYR', 'columns': ['TOTAL_LINE_ITEM_LEVEL_IMPRESSIONS', 'TOTAL_LINE_ITEM_LEVEL_ALL_REVENUE'], 'dateRangeType': 'CUSTOM_DATE', 'startDate': { 'year': 2024, 'month': 4, 'day': 29 }, 'endDate': { 'year': 2024, 'month': 5, 'day': 5 } } }
关键说明
- 之前的错误根源是API不认字符串/单一整数格式,它需要明确拆分为
year、month、day三个整数字段的结构 - 月和日用普通整数即可,不用补前导零(比如4不用写成04)
- 按这个结构传参就能同时规避类型不匹配和服务器错误问题
内容的提问来源于stack exchange,提问作者Zulkifli Arshad
相关产品推荐
相关产品推荐

