# Request Reports

The new Search Ads 360 Reporting API is now available. The new API provides enhanced flexibility to build custom reports and integrate the data into your reporting applications and processes. Learn more about migrating to and using the [new Search Ads 360 Reporting
API](https://developers.google.com/search-ads/reporting/overview).


After you've set up your client app as described in [My First App](https://developers.google.com/search-ads/v2/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](https://developers.google.com/search-ads/v2/how-tos/reporting/synchronous-requests)**

:   Requires just a single request and returns the report in a JSON-formatted response. Synchronous requests:

    - Can return only [advertiser](https://developers.google.com/search-ads/v2/report-types/advertiser) and [engine account](https://developers.google.com/search-ads/v2/report-types/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](https://developers.google.com/search-ads/v2/how-tos/reporting/asynchronous-requests)**

:   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](https://developers.google.com/search-ads/v2/report-types)
    - 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](https://developers.google.com/search-ads/v2/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](https://developers.google.com/search-ads/v2/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](https://developers.google.com/search-ads/v2/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](https://developers.google.com/search-ads/v2/reference/reports#request.timeRange) 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 the `date` 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](https://developers.google.com/search-ads/v2/how-tos/reporting/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](https://developers.google.com/search-ads/v2/reference/reports#request.reportScope) 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 `https://developers.google.com/search-ads/v2/reference/reports#request.statisticsCurrency`
request property to specify a currency.


The report itself will indicate the currency in the ` https://developers.google.com/search-ads/v2/reference/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 `https://developers.google.com/search-ads/v2/reference/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 `https://developers.google.com/search-ads/v2/reference/reports#statisticsTimeZone`.