The filters
query string parameter restricts the data returned
in an AdSense Management API report. When you use the filters
parameter, you
supply a dimension you want to filter on, followed by the filter expression.
Filtered queries restrict the rows that get included in the result. Each row in the result is tested against the filter: if the filter matches, the row is retained and if it doesn't match, the row is dropped.
- URL Encoding: The client libraries automatically encode the filter operators. However, if you make requests directly to the protocol, you must explicitly encode filter operators as indicated in the table below.
- Filtering priority: Filtering occurs before any dimensions are aggregated, so that the returned metrics represent the total for only the relevant dimensions.
Filter Syntax
A single filter uses the form:
name operator expression
In this syntax:
- name — the name of the dimension on which to filter.
For example:
AD_CLIENT_ID
will filter on the ad client ID. - operator — defines the type of filter match to use.
- expression — states the values included in the results.
All dimensions that
apply to the metrics being reported on can be used as filters, with the
exception of the date-related dimensions (DATE
, WEEK
,
and MONTH
). To filter by date, specify the
date range for the report instead.
Filter Operators
There are two filter operators. The operators must be URL encoded in order to be included in URL query strings.
Operator | Description | URL Encoded Form | Example |
---|---|---|---|
== |
Exact match | %3D%3D |
Aggregate metrics where the country name is Canada:
filters=COUNTRY_NAME%3D%3DCanada |
=@ |
Contains substring | %3D@ |
Aggregate metrics where the country name contains United, this
matches United States and United Kingdom for example:
filters=COUNTRY_NAME%3D@United |
Filter Expressions
There are a couple of important rules for filter expressions:
- URL-reserved characters — Characters such as
&
must be url-encoded in the usual way. Client libraries take care of this for you, so you only have to worry about this encoding if you are making direct calls to the protocol. - Reserved characters — The comma and backslash must
be backslash escaped when they appear in an expression.
- backslash
\\
- comma
\,
- backslash
Note: Make sure you escape backslashes before commas, in order to avoid double escaping.
Combining Filters
Filters can be combined using OR
and AND
boolean
logic.
OR logic
OR
logic is defined using a comma (,
) inside the
filter expression.
Example: (each must be URL encoded)
Country code is either (US OR UK):
COUNTRY_CODE==US,COUNTRY_CODE==UK
AND logic
AND
logic is achieved by providing multiple filter parameters,
which translates into providing an array of filters in the client libraries.
Example:
Country code is US AND product code is AFC:
filters=COUNTRY_CODE%3D%3DUS&filters=PRODUCT_CODE%3D%3DAFC
Combining AND and OR logic
It's possible to combine AND and OR logic into a single expression.
Note: Each filter is evaluated individually before all filters are combined into an AND logical expression.
Example:
Country code is (US OR UK) AND product code is AFC:
filters=COUNTRY_CODE%3D%3DUS,COUNTRY_CODE%3D%3DUK&filters=PRODUCT_CODE%3D%3DAFC