调用Google Ad Manager API提交含dimension attributes的XML请求运行报表报错
问题根因
这个报错是SOAP请求的XML元素顺序不符合GAM API v202011版本的Schema定义规则导致的。
SOAP协议对XML节点的排列顺序有严格要求,从报错信息可以明确:解析器在解析到columns节点时,当前位置按规则应该出现dimensionAttributes等节点,你的请求把dimensionAttributes放在了dimensions和columns之间,不符合对应版本的字段排序要求。
另外你参考的是v202108版本的文档,而实际请求用的是v202011版本的API端点,两个版本的字段排列规则存在差异,也是导致问题的原因之一。
修正方案
调整reportQuery下的节点顺序,把dimensionAttributes移到columns节点之后、startDate节点之前即可,修正后的请求示例如下:
<?xml version="1.0" encoding="UTF-8"?> <runReportJob xmlns="https://www.google.com/apis/ads/publisher/v202011"> <reportJob> <reportQuery> <dimensions>DATE</dimensions> <dimensions>LINE_ITEM_NAME</dimensions> <columns>TOTAL_LINE_ITEM_LEVEL_IMPRESSIONS</columns> <dimensionAttributes>LINE_ITEM_LIFETIME_IMPRESSIONS</dimensionAttributes> <startDate> <year>{6}</year> <month>{5}</month> <day>{4}</day> </startDate> <endDate> <year>{3}</year> <month>{2}</month> <day>{1}</day> </endDate> </reportQuery> </reportJob> </runReportJob>
注意:如果你的Boomi变量占位符不需要外层单引号,可同步移除对应位置的单引号,避免后续请求参数格式错误。
内容的提问来源于stack exchange,提问作者bigglesworth
相关产品推荐
相关产品推荐

