The Reporting service contains the operations that you use to submit report requests and poll for their status. The reports provide detailed statistics about Bing Ads accounts, campaigns, and ad groups. The information can help you track finances, measure ad performance, and adjust settings to optimize your budget or campaign. For example, you can use the keyword performance report to see which keywords are generating traffic and which are not.
For information about related programming elements, see Reporting Service Reference.
Reporting Service Overview
When you request a report, you specify the report parameters that determine the contents of the report. For example, you can set the aggregation level to group the data by day or month; specify the time period of the data to include in the report by using specific dates or predefined date ranges, such as today or the last seven days; specify the scope of the data by identifying the accounts, campaigns, and ad groups to include in the report; and set filter criteria to filter the report data.
For a list of reports that you can request, see Report Types.
For a complete list of report parameters that you can set, see each report request object and the ReportRequest base object.
For information about how to request and download a report, see Request and Download a Report.
You also specify the columns to include in the report. For each report, there are columns that you must include and columns that are optional. The report uses the column names as the column headers. The report includes the columns in the same order that you include them in the Columns element of the report request.
For information about how columns affect data output, see Columns that Group the Data below.
When the report completes successfully, you can download the report from the URL that the service returns. The report file is compressed, so you must unzip the file to read the report. There is no limit to the number of reports that the system can store; however, the length of time that the reports are stored is undefined. The service does not check for duplicate report requests.
For examples of report data output in XML, see XML Report Examples.
For information about when the books are closed for reporting, see Determining When the Books Close below.
For information about how the campaign’s time zone affects the time period that you specify, see Time Zones in Reporting below.
Determining When the Books Close
When a user clicks an ad, it can take up to four hours for the system to process the click and make it available for reporting. When all clicks for the previous day have been processed and made available for reporting, this state is referred to as Books Closed. If you schedule a report that requires the previous full day of data, you should consider the three-to-four hour rolling window and the time zone of the campaign before making your request. For time zone related details, see Time Zones in Reporting below.
If you request a report that includes campaigns that span multiple time zones, the data is considered complete only after all of the click data is processed for the campaign that has the westernmost time zone. For example, say you request a report that includes Campaign A, (which specifies the PST time zone) and Campaign B, (which specifies the EST time zone), the data is not complete until all of the click data for Campaign A has processed for the specified time period.
Each report request includes the ReturnOnlyCompleteData element that you can set to specify whether you want the service to generate the report only if all the data is available (has been processed) based on the aggregation, scope, and time period values that you specify. If true, the request fails if the system has not finished processing all the data based on your criteria. However, if false, the request succeeds but the report will contain only the data that the system has finished processing at the time of the request, and there is no indication as to whether the data is complete. The default value is false.
Time Zones in Reporting
When you create a report request, specify the date range time period based on the time zone of the campaign. If the report request spans multiple campaigns, the report will include the report data in the time zone of each respective campaign (the data is not reported in the local time zone of the user that clicked the data). If the report request spans multiple accounts (for example, an account performance report), the service selects one of the campaigns at random from each of the accounts and uses that campaign's time zone. Because the selection of the campaign time zone is random, you should not rely on the time zone being accurate for these types of reports.
The report data is stored in the time zone of the campaign (taking into account daylight saving time for those time zones that support daylight saving time). For example, if the time zone of the campaign is Pacific Time and a click occurs at noon Eastern Time, the time of the click is recorded as 9:00 AM. If you request a report for the campaign using hourly aggregation, the report data will include a click that occurred at 9:00 AM (the report data is not adjusted based on the local time zone of the user). If your report request specifies multiple campaigns in different time zones, the clicks that occurred in each campaign are summed for each hour relative to their respective time zones.
Note that when a user clicks an ad, it can take up to four hours for the system to process the click and make it available for reporting. If you schedule a report that requires the previous full day of data, you should consider the three-to-four hour rolling window and the time zone of the campaign before making your request. For example, if the time zone of the campaign is set to Pacific Time (UTC-08:00), consider running the report at 5:00 AM Pacific Time (four hours for the rolling window plus a one-hour buffer).
Columns that Group the Data
The number of non-statistic columns that you include in a report affects the values in the statistics columns. If you request a summary report that includes only account numbers and clicks, the clicks column will contain the number of clicks on all ads in the account that appeared in the search results. If you then include the campaign column, the report will contain a row for each unique combination of account and campaign values, and the value in the clicks column is broken down by campaign and account.
Specifying monthly aggregation would further break down the click data by month; the report will contain a row for each unique combination of account, campaign, and month. For example, if the time period spans three months, the report will include three rows for each account and campaign combination, and the click data will be the total number of times that an ad from that campaign was clicked in that month. The row is included only for months that contain clicks.
Some columns, such as AdDistribution, can contain multiple values. If you include these types of columns, the report will break down the click data by account, campaign, ad distribution, and month. Given the same time period, the report can include up to six rows for each account and campaign combination (provided that there is click data for both distribution mediums for each month), and the click data will be the total number of times that an ad from that campaign was clicked for the month and distribution medium.