Generating performance reports to analyze ad metrics and outcomes
ReportDownloadUrl is null even though Status is Success when the report completed successfully but there is no data for the parameters used in the request.
The Reporting API explicitly allows this case:
-
Status = Successmeans the report job finished without errors and would be downloadable if it contained rows. -
ReportDownloadUrlcan still benil/nullwhen no data matches the requested filters (date range, accounts, campaigns, etc.).
From the service definition:
- The
ReportDownloadUrlelement: “Use the download URL only if the Status element is set to Success. Even when the Status is set to Success, this element can be nil if no data is available for the submitted report parameters.”
To resolve this in the script:
- Verify in the Microsoft Advertising UI that the same account, date range, and filters for the Campaign Performance report actually return data.
- If the UI shows data but the API still returns
ReportDownloadUrl = nullfor the same parameters, the guidance is to contact support with details. - In code, always check both:
-
Status == 'Success', and -
ReportDownloadUrlis notNonebefore attempting to download.
-
References: