Bing Ads API, SubmitGenerateReport - An internal error has occurred

Pet Rebellion 1 Reputation point
2022-08-04T15:57:15.493+00:00

Hi,

I'm trying to get campaign reports using the SubmitGenerateReport service, and getting the following error:

s:ClientInvalid client data. Check the SOAP fault details for more information. TrackingId: 618e274e-91b0-4956-85fb-a7e859aee237

Checking the details it just says "An internal error has occurred". I've retried at different times like the docs suggest, but the error is still there.

I've also tried accessing the GetUser service with the same credentials and it worked, so access token, client ID etc. are definitely correct, so I'm thinking the request body must be wrong.

This is my request body:

<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">  
    <Action mustUnderstand="1">SubmitGenerateReport</Action>  
    <AuthenticationToken i:nil="false">$access_token</AuthenticationToken>  
    <CustomerAccountId i:nil="false">$account_id</CustomerAccountId>  
    <CustomerId i:nil="false">$customer_id</CustomerId>  
    <DeveloperToken i:nil="false">$developer_token</DeveloperToken>  
  </s:Header>  
  <s:Body>  
    <SubmitGenerateReportRequest xmlns="https://bingads.microsoft.com/Reporting/v13">  
      <ReportRequest i:nil="false" i:type="CampaignPerformanceReportRequest">  
        <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>  
        <Aggregation>Daily</Aggregation>  
        <Columns i:nil="false">  
          <CampaignPerformanceReportColumn>Spend</CampaignPerformanceReportColumn>  
          <CampaignPerformanceReportColumn>Revenue</CampaignPerformanceReportColumn>  
          <CampaignPerformanceReportColumn>Conversions</CampaignPerformanceReportColumn>  
          <CampaignPerformanceReportColumn>AverageCpc</CampaignPerformanceReportColumn>  
          <CampaignPerformanceReportColumn>Impressions</CampaignPerformanceReportColumn>  
          <CampaignPerformanceReportColumn>Ctr</CampaignPerformanceReportColumn>  
          <CampaignPerformanceReportColumn>Clicks</CampaignPerformanceReportColumn>  
          <CampaignPerformanceReportColumn>ConversionRate</CampaignPerformanceReportColumn>  
          <CampaignPerformanceReportColumn>TopImpressionRatePercent</CampaignPerformanceReportColumn>  
          <CampaignPerformanceReportColumn>AbsoluteTopImpressionRatePercent</CampaignPerformanceReportColumn>  
          <CampaignPerformanceReportColumn>ImpressionSharePercent</CampaignPerformanceReportColumn>  
          <CampaignPerformanceReportColumn>ImpressionLostToBudgetPercent</CampaignPerformanceReportColumn>  
          <CampaignPerformanceReportColumn>ImpressionLostToRankAggPercent</CampaignPerformanceReportColumn>  
          <CampaignPerformanceReportColumn>TopImpressionSharePercent</CampaignPerformanceReportColumn>  
          <CampaignPerformanceReportColumn>AbsoluteTopImpressionSharePercent</CampaignPerformanceReportColumn>  
        </Columns>  
        <Scope i:nil="false">  
          <AccountIds i:nil="false" xmlns:a1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">  
            <a1:long>$account_id</a1:long>  
          </AccountIds>  
        </Scope>  
        <Time i:nil="false">  
          <PredefinedTime i:nil="false">Yesterday</PredefinedTime>  
        </Time>  
      </ReportRequest>  
    </SubmitGenerateReportRequest>  
  </s:Body>  
</s:Envelope>  

(this request doesn't have a <Filter> object, but I've tried both with and without a Filter, and it gives the same error either way)

Does anyone know what I'm doing wrong?

Thanks very much

Microsoft Advertising API
Microsoft Advertising API
A Microsoft API that provides programmatic access to Microsoft Advertising to manage large campaigns or to integrate your marketing with other in-house systems.
387 questions
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Pet Rebellion 1 Reputation point
    2022-08-15T12:27:15.147+00:00

    Solved (big up Mary from Microsoft support).
    Apparently a SubmitGenerateReport request has to include BOTH Performance Statistics columns and Attributes columns. I was missing an attribute column. This is a working request:

     <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">  
         <Action mustUnderstand="1">SubmitGenerateReport</Action>  
         <AuthenticationToken i:nil="false">$access_token</AuthenticationToken>  
         <CustomerAccountId i:nil="false">$account_id</CustomerAccountId>  
         <CustomerId i:nil="false">$customer_id</CustomerId>  
         <DeveloperToken i:nil="false">$developer_token</DeveloperToken>  
       </s:Header>  
       <s:Body>  
         <SubmitGenerateReportRequest xmlns="https://bingads.microsoft.com/Reporting/v13">  
           <ReportRequest i:nil="false" i:type="CampaignPerformanceReportRequest">  
             <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>  
             <Aggregation>Daily</Aggregation>  
             <Columns i:nil="false">  
              <CampaignPerformanceReportColumn>AccountId</CampaignPerformanceReportColumn>  
               <CampaignPerformanceReportColumn>Spend</CampaignPerformanceReportColumn>  
               <CampaignPerformanceReportColumn>Revenue</CampaignPerformanceReportColumn>  
               <CampaignPerformanceReportColumn>Conversions</CampaignPerformanceReportColumn>  
               <CampaignPerformanceReportColumn>AverageCpc</CampaignPerformanceReportColumn>  
               <CampaignPerformanceReportColumn>Impressions</CampaignPerformanceReportColumn>  
               <CampaignPerformanceReportColumn>Ctr</CampaignPerformanceReportColumn>  
               <CampaignPerformanceReportColumn>Clicks</CampaignPerformanceReportColumn>  
               <CampaignPerformanceReportColumn>ConversionRate</CampaignPerformanceReportColumn>  
               <CampaignPerformanceReportColumn>TopImpressionRatePercent</CampaignPerformanceReportColumn>  
               <CampaignPerformanceReportColumn>AbsoluteTopImpressionRatePercent</CampaignPerformanceReportColumn>  
               <CampaignPerformanceReportColumn>ImpressionSharePercent</CampaignPerformanceReportColumn>  
               <CampaignPerformanceReportColumn>ImpressionLostToBudgetPercent</CampaignPerformanceReportColumn>  
               <CampaignPerformanceReportColumn>ImpressionLostToRankAggPercent</CampaignPerformanceReportColumn>  
               <CampaignPerformanceReportColumn>TopImpressionSharePercent</CampaignPerformanceReportColumn>  
               <CampaignPerformanceReportColumn>AbsoluteTopImpressionSharePercent</CampaignPerformanceReportColumn>  
             </Columns>  
             <Scope i:nil="false">  
               <AccountIds i:nil="false" xmlns:a1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">  
                 <a1:long>$account_id</a1:long>  
               </AccountIds>  
             </Scope>  
             <Time i:nil="false">  
               <PredefinedTime i:nil="false">Yesterday</PredefinedTime>  
             </Time>  
           </ReportRequest>  
         </SubmitGenerateReportRequest>  
       </s:Body>  
     </s:Envelope>
    
    0 comments No comments