调用Microsoft Ads AdPerformanceReportRequest时遇RequiredColumnsNotSelected错误求助
问题
使用Microsoft Ads API的AdPerformanceReportRequest获取每日广告维度指标(花费、展示量、点击量等),调用SubmitGenerateReport操作时返回RequiredColumnsNotSelected错误,提示未选择维度但未指明具体缺失列。
请求详情:
- URL:
https://reporting.api.bingads.microsoft.com/Api/Advertiser/Reporting/v13/ReportingService.svc - 请求头部:
Content-Type:text/xml SOAPAction:SubmitGenerateReport
- 请求体:
<s:Envelope xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Header xmlns="https://bingads.microsoft.com/Reporting/v13"> <AuthenticationToken i:nil="false">$token</AuthenticationToken> <CustomerAccountId i:nil="false">$accountId</CustomerAccountId> <CustomerId i:nil="false">$customerId</CustomerId> <DeveloperToken i:nil="false">$developerToken</DeveloperToken> </s:Header> <s:Body> <SubmitGenerateReportRequest xmlns="https://bingads.microsoft.com/Reporting/v13"> <ReportRequest i:nil="false" i:type="AdPerformanceReportRequest"> <ExcludeColumnHeaders i:nil="false">false</ExcludeColumnHeaders> <ExcludeReportFooter i:nil="false">false</ExcludeReportFooter> <ExcludeReportHeader i:nil="false">false</ExcludeReportHeader> <Format i:nil="false">Csv</Format> <FormatVersion i:nil="false">2.0</FormatVersion> <ReportName i:nil="false">Ad Report</ReportName> <ReturnOnlyCompleteData i:nil="false">false</ReturnOnlyCompleteData> <!--These fields are applicable if the derived type attribute is set to AdPerformanceReportRequest--> <Aggregation>Daily</Aggregation> <Columns i:nil="false"> <AdPerformanceReportColumn>Clicks</AdPerformanceReportColumn> </Columns> <Filter i:nil="false"> <AccountStatus i:nil="false">Active Paused Inactive</AccountStatus> <AdDistribution i:nil="false">Search Audience</AdDistribution> <AdGroupStatus i:nil="false">Active Deleted Expired Paused</AdGroupStatus> <AdStatus i:nil="false">Active Rejected Deleted Pending Paused</AdStatus> <AdType i:nil="false">AppInstall DynamicSearchAd ExpandedText Product ResponsiveAd ResponsiveSearchAd Text</AdType> <CampaignStatus i:nil="false">Active BudgetPaused Deleted Paused Suspended</CampaignStatus> <DeviceType i:nil="false">Computer NonSmartPhone SmartPhone Tablet</DeviceType> <Language i:nil="false">Portuguese English</Language> </Filter> <Scope i:nil="false"> <AccountIds i:nil="false" xmlns:a1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <a1:long>$accountId</a1:long> </AccountIds> <AdGroups i:nil="false"> <AdGroupReportScope> <AccountId>$accountId</AccountId> <CampaignId>518735525</CampaignId> <AdGroupId>1323813659647082</AdGroupId> </AdGroupReportScope> </AdGroups> <Campaigns i:nil="false"> <CampaignReportScope> <AccountId>$accountId</AccountId> <CampaignId>518735525</CampaignId> </CampaignReportScope> </Campaigns> </Scope> <Time i:nil="false"> <CustomDateRangeEnd i:nil="false"> <Day>30</Day> <Month>05</Month> <Year>2024</Year> </CustomDateRangeEnd> <CustomDateRangeStart i:nil="false"> <Day>01</Day> <Month>01</Month> <Year>2024</Year> </CustomDateRangeStart> <ReportTimeZone i:nil="false">Brasilia</ReportTimeZone> </Time> </ReportRequest> </SubmitGenerateReportRequest> </s:Body> </s:Envelope>
解决方案
你缺失了两类必填列:
- 时间维度列:由于设置了
Aggregation为Daily,必须添加Date列,用于按日期聚合指标。 - 广告标识列:
AdPerformanceReportRequest是按广告维度生成报告,必须添加AdId列,用于唯一标识每条广告,将指标关联到具体广告。
你还可以根据需求补充其他维度或指标列(比如CampaignId、AdGroupId、Impressions、Spend等)。修改后的Columns节点示例如下:
<Columns i:nil="false"> <AdPerformanceReportColumn>Date</AdPerformanceReportColumn> <AdPerformanceReportColumn>AdId</AdPerformanceReportColumn> <AdPerformanceReportColumn>Clicks</AdPerformanceReportColumn> <AdPerformanceReportColumn>Impressions</AdPerformanceReportColumn> <AdPerformanceReportColumn>Spend</AdPerformanceReportColumn> <AdPerformanceReportColumn>CampaignId</AdPerformanceReportColumn> <AdPerformanceReportColumn>AdGroupId</AdPerformanceReportColumn> </Columns>
额外优化点:你的Scope节点同时包含了AdGroups和Campaigns,两者范围重复,保留AdGroups即可,避免不必要的筛选冲突。
内容的提问来源于stack exchange,提问作者Davi Bogo
相关产品推荐
相关产品推荐

