当 AdPerformanceReportRequest 返回RequiredColumnsNotSelected时,Microsoft Ads SubmitGenerateReport 操作

问题描述 投票:0回答:1

我正在尝试通过 microsoft ads api 获取广告指标,例如成本、展示次数、点击次数等。我不习惯使用 SOAP API,但除了 api SDK 和 SOAP 之外,我还没有找到任何文档。

我能够通过 SOAP API 获取我的用户信息、客户帐户的营销活动和广告组,因为我知道我需要营销活动 ID 和广告组 ID,对吗?

好的,为了获得我想要的指标,我找到了 SubmitGenerateReport 和 PollGenerateReport 操作,并且由于我想要每个广告的每日指标,所以我认为对我来说最好的报告是 AdPerformanceReportRequest。

现在让我们来谈谈我被困住的地方。当我调用 SubmitGenerateReport 操作时,我收到以下错误作为响应:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Body>
        <s:Fault>
            <faultcode>s:Server</faultcode>
            <faultstring>Invalid client data. Check the SOAP fault details for more information. TrackingId: 0182f18c-cad8-4497-8e81-9a63f6f42055.</faultstring>
            <detail>
                <ApiFaultDetail xmlns="https://bingads.microsoft.com/Reporting/v13" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
                    <TrackingId xmlns="https://adapi.microsoft.com">0182f18c-cad8-4497-8e81-9a63f6f42055</TrackingId>
                    <BatchErrors/>
                    <OperationErrors>
                        <OperationError>
                            <Code>2015</Code>
                            <Details>No Dimension selected.</Details>
                            <ErrorCode>RequiredColumnsNotSelected</ErrorCode>
                            <Message>The specified report request does not specify all the required columns for this report type. Please submit a report request with the required columns for this report type, and optionally additional columns that are to be included in the report.</Message>
                        </OperationError>
                    </OperationErrors>
                </ApiFaultDetail>
            </detail>
        </s:Fault>
    </s:Body>
</s:Envelope>

如您所见,我无法通过响应看到缺少哪一列,这就是我在这里的原因。

这是我的要求:

网址: 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>

我通常通过 Postman 测试 api 端点,当我了解它是如何工作的时,我开始编写集成代码,所以这只是我测试 api 的工作原理,有人知道我缺少什么吗?

soap postman bing-ads-api
1个回答
0
投票

好的,我已与 Microsoft Ads 支持人员联系,这就是答案:

由于我使用的是每日聚合,因此有一个预期称为“TimePeriod”的列,这对于除摘要之外的所有聚合类型都是如此。如此处

所述

enter image description here

我已经添加了 TimePeriod 列,现在我可以提交 AdPerformanceReport!

enter image description here

添加此列修复了错误,现在我得到了报告的 ID 作为响应,耶!

这回答了我的问题,但是,由于我现在必须下载报告,所以我需要测试它,而且我确实测试了它。

结果呢?我调用 PollGenerateReport 请求传递刚刚生成的报告中的 de id,然后获得下载报告的 url。可悲的是,这并不是故事的结局。

当我尝试使用提供给我的 URL 请求报告时,如下所示:https://bingadsappsstorageprod.blob.core.windows.net/hpr-reportdataapi.../Ad_Report.zip?.. .
我收到 <404 The specified resource does not exist.> 错误。

我不知道为什么会发生这种情况,Microsoft 支持目前正在帮助我解决此错误,我会在找到答案后立即编辑此答案。

© www.soinside.com 2019 - 2024. All rights reserved.