The Search Ads 360 Reporting API is based on a modern platform and introduces a
number of new concepts. These are described in the following sections.

## Resources

Resource objects replace report types. Instead of requesting predefined report
types, you can now query all resources using a new SQL-like query language. See
[Search Ads 360 Reporting API structure](https://developers.google.com/search-ads/reporting/concepts/api-structure) to learn
more.

> [!NOTE]
> **Note:** The Search Ads 360 Reporting API provides metrics for most resources only at the client account level. Learn more about the [Search Ads 360 account hierarchy and resource ownership](https://developers.google.com/search-ads/reporting/concepts/account_level_resource).

## Search reporting

Search has its own service in the new API. The Search service replaces the
legacy Reports service. All queries go through
[`SearchAds360Service`](https://developers.google.com/search-ads/reporting/api/reference/rpc/google.ads.searchads360.v0.services#google.ads.searchads360.v0.services.SearchAds360Service)
that provides two methods, `SearchStream` and `Search`, for searching and
retrieving reporting data and metrics. Both search methods return all
`SearchAds360Row` objects that match your search query. See
[Create search reports](https://developers.google.com/search-ads/reporting/concepts/search-reports) for more information.

## Resource metadata

[`SearchAds360FieldService`](https://developers.google.com/search-ads/reporting/api/reference/rpc/google.ads.searchads360.v0.services#searchads360fieldservice)
allows you to dynamically request the catalog for resources, resource fields,
segmentation keys, and metrics available in the `SearchAds360Service` search
methods. See [Retrieve resource metadata](https://developers.google.com/search-ads/reporting/concepts/field-service) to learn
more.

## Field names

The API introduces nested field names separated with the dot notation. For
example, `campaign.id` and `ad_group.id`. You can also nest further, for
example,`ad_group.campaign.id`. See
[Search Ads 360 Reporting API structure](https://developers.google.com/search-ads/reporting/concepts/api-structure) to learn
more.

Reporting in the previous Search Ads 360 API is based on separate fields on
different entities for similar concepts. For example, both the
[`campaign`](https://developers.google.com/search-ads/v2/report-types/campaign) and
[`adgroup`](https://developers.google.com/search-ads/v2/report-types/adGroup) reports include a separate
`campaignId` field.

## Query language

The API introduces the Search Ads 360 Query Language. This is a flexible,
SQL-like language that allows you to define queries to retrieve the specific
reporting data that best suits your business. See
[Search Ads 360 Query Language](https://developers.google.com/search-ads/reporting/query/query-language) to learn more.

## Get requests

In the new API, searching has its own service (`SearchAds360Service`), but `GET`
requests still exist on each entity's specific service. For example, you can get
custom column information from the
[`CustomColumnService`](https://developers.google.com/search-ads/reporting/api/reference/rpc/google.ads.searchads360.v0.services#customcolumnservice).
See
[Format changes in the Search Ads 360 Reporting API](https://developers.google.com/search-ads/reporting/migrate/format-changes)
to learn more.

> [!NOTE]
> **Note:** `GET` requests serve a different purpose in the new API. You cannot filter as part of a get call. When you pass the entity's resource name as an identifier, the response includes every populated field (there is no need to list them).

## Custom columns

In the new Search Ads 360, *formula columns* and *custom conversions* are called
*custom columns* .
[Learn more about custom columns](https://support.google.com/sa360/answer/12177810?hl=en).
The new
[`CustomColumnService`](https://developers.google.com/search-ads/reporting/api/reference/rpc/google.ads.searchads360.v0.services#customcolumnservice)
enables custom columns. Provided you have the necessary permissions, you can
request `CustomColumn` resources owned by any account in the account tree.

## Account management

The new Search Ads 360 organizes accounts into a hierarchy of manager accounts,
sub-manager accounts, and client accounts. A manager account represents the
agency account, and sub-manager accounts represent advertiser accounts in the
previous Search Ads 360. See
[About Search Ads 360 manager accounts](https://support.google.com/sa360/answer/9158072)
to learn more.

You can
[query the account tree](https://developers.google.com/search-ads/reporting/concepts/account_level_resource#understanding_the_account_hierarchy)
and then submit requests for each account you would like reporting data from.

As a result of the change in the account hierarchy, fields related to the
advertiser/agency concept have been replaced with appropriate alternatives to
provide functional parity wherever possible. See
[Fields mappings](https://developers.google.com/search-ads/reporting/migrate/mappings/field-mappings) for a list of affected
fields and their substitutes.

## Login customer ID header

`login-customer-id` is a new header that is required when using a manager
account to access a sub-manager or client account. See
[Login customer ID header](https://developers.google.com/search-ads/reporting/concepts/call-structure#login_customer_id_header)
for more more information.

## Versioning

The Search Ads 360 Reporting API uses
[semantic versioning](https://semver.org/). There are major and minor versions,
formatted as `v*MAJOR*_*MINOR*`. See
[Versioning](https://developers.google.com/search-ads/reporting/concepts/versioning) to learn more.