After you've set up your client app as described in My First App, you can use the Search Ads 360 API to request and download reports. You can make either of the following types of requests:
- Synchronous
Requires just a single request and returns the report in a JSON-formatted response. Synchronous requests:
- Can return only advertiser and engine account reports
- Block your client until Search Ads 360 generates the report
If you're requesting large advertiser or engine-account reports, we recommend the asynchronous approach.
- Asynchronous
Requires you to send an initial request that specifies the data you want in the report. Then you send additional requests to poll Search Ads 360. When Search Ads 360 finishes generating the report, you send requests to download the report as one or more files. Asynchronous requests:
- Can return any report type
- Shards very large reports into multiple files
- Formats reports as CSV or TSV
Data model: rows and columns
Search Ads 360 organizes data in a report into rows and columns. The type of report you request determines the rows that are returned. For example, if your request a keyword report, each row will contain data about a single keyword. See the Report Types reference for a list of all report types. You specify which columns you want in the report by naming each column in your report request. See the Report Types reference for the list of columns that can be returned for each report type.
Column behaviors
The behavior of a column depends on the type of data that the column contains (the Report Types reference displays each column's behavior):
Attribute columns. An attribute column contains data that configures or identifies an entity in a campaign, such as the campaign name or a keyword bid. The Search Ads 360 API always returns the current value for an attribute column, regardless of any date or date range specified in a request. For example, if you changed a keyword's bid from 2.00 to 1.50 yesterday and then request a report for last month's data, the report will return a value of 1.50 for the keyword bid.
Metric columns. A metric column contains data about your campaign's performance, such as the number of clicks on an ad, the number of visits as recorded by a Floodlight tag, or revenue. Unless you specify a time range of a single day, the API returns an aggregate value for metric columns. For example, if you request a report for last month's data, the API will return the total number of clicks for last month.
Segment columns. A segment column splits data into separate rows. For example,
date
is a segment column that you can specify for many types of reports. If you specify thedate
column in a keyword report with a date range 2013-01-01 to 2013-01-07, the API would return seven rows for each keyword, each corresponding to one day and displaying metrics for that day. See Segmented Reports.
Currencies
Your report request is required to specify the currency of monetary data (both attributes like dailyBudget
and metrics like
cost
). You can specify one of the following:
- The agency's currency, if the report is scoped to an agency, advertiser, or engine account.
- The advertiser's currency, if the report is scoped to an advertiser or engine account.
- The engine account's currency, if the report is scoped to an engine account.
- USD
Use the Reports.request.statisticsCurrency
request property to specify a currency.
The report itself will indicate the currency in the Reports.statisticsCurrencyCode
property.
Time zone
Search Ads 360 metrics are stored in dates without time zones. These dates correspond to the engine
account time zone for engine metrics (such as clicks, impressions, and visits), and
Campaign Manager network time zone for conversion metrics (such as actions,
transactions and revenue). When every metric in a report comes from the same time zone,
that time zone will be returned in the request. Otherwise, no time zone will be returned.
Your requests can set Reports.request.verifySingleTimeZone: true
to fail reports that present metric from more than one time zone.
If all metrics present in a report are from one time zone, that time zone is
returned in Reports.statisticsTimeZoneReports
.