Typical usage:
var accountPriceSelector = AdsApp . currentAccount () . extensions () . prices () . withCondition ( "metrics.impressions > 100" ) . forDateRange ( "LAST_MONTH" ) . orderBy ( "metrics.clicks DESC" ); var accountPriceIterator = accountPriceSelector . get (); while ( accountPriceIterator . hasNext ()) { var accountPrice = accountPriceIterator . next (); }
Methods:
Member | Type | Description |
---|---|---|
AdsApp.AccountPriceSelector
|
Sets a predefined date range onto the selector. | |
AdsApp.AccountPriceSelector
|
Sets a custom date range onto the selector. | |
AdsApp.AccountPriceIterator
|
Fetches the requested account-level prices and returns an iterator. | |
AdsApp.AccountPriceSelector
|
Specifies the ordering of the resulting entities. | |
AdsApp.AccountPriceSelector
|
Adds the specified condition to the selector in order to narrow down the results. | |
AdsApp.AccountPriceSelector
|
Specifies limit for the selector to use. |
forDateRange(dateRange)
Sets a predefined date range onto the selector. Supported values: TODAY, YESTERDAY, LAST_7_DAYS, LAST_14_DAYS, LAST_30_DAYS,
LAST_BUSINESS_WEEK, LAST_WEEK_SUN_SAT, LAST_WEEK_MON_SUN,
THIS_WEEK_MON_TODAY, THIS_WEEK_SUN_TODAY, LAST_MONTH, THIS_MONTH,
ALL_TIME
. Example:
selector.forDateRange("THIS_WEEK_SUN_TODAY");
Date range must be specified if the selector has conditions or ordering for a stat field. Note that only the last date range specified for the selector will take effect.
Arguments:
Name | Type | Description |
---|---|---|
dateRange
|
String
|
Date range to set onto the selector. |
Return values:
Type | Description |
---|---|
AdsApp.AccountPriceSelector
|
The selector with date range applied. |
forDateRange(dateFrom, dateTo)
Sets a custom date range onto the selector. Both parameters can be either
an object containing year, month, and day fields, or an 8-digit string in YYYYMMDD
form. For instance, March 24th, 2013
is
represented as either {year: 2013, month: 3, day: 24}
or "20130324"
. The date range is inclusive on both ends, so forDateRange("20130324", "20130324")
sets the range of one
day. Date range must be specified if the selector has conditions or ordering for a stat field. Note that only the last date range specified for the selector will take effect.
Arguments:
Name | Type | Description |
---|---|---|
dateFrom
|
Object
|
Start date of the date range. |
dateTo
|
Object
|
End date of the date range. |
Return values:
Type | Description |
---|---|
AdsApp.AccountPriceSelector
|
The selector with date range applied. |
get()
Fetches the requested account-level prices and returns an iterator. Return values:
Type | Description |
---|---|
AdsApp.AccountPriceIterator
|
Iterator of the requested account-level prices. |
orderBy(orderBy)
Specifies the ordering of the resulting entities. orderBy
parameter can have one of the following forms: -
orderBy("metrics.cost_micros")
- orders results by metrics.cost_micros, in ascending order. -
orderBy("metrics.ctr ASC")
- orders results by metrics.ctr, in ascending order. -
orderBy("ad_group_criterion.cpc_bid_micros DESC")
- orders results by ad_group_criterion.cpc_bid_micros, in descending order.
See AccountPriceSelector.withCondition(String) for enumeration of columns that can be used.
orderBy()
may be called multiple times. Consider the
following example:
selector = selector.forDateRange("LAST_14_DAYS") .orderBy("metrics.clicks DESC") .orderBy("metrics.ctr ASC");
The results will be ordered by metrics.clicks in descending order. Results with equal metrics.clicks value will be ordered by metrics.ctr in ascending order.
If a stats column is used in the ordering, date range must be specified via AccountPriceSelector.forDateRange(String) or AccountPriceSelector.forDateRange(Object, Object) .
LabelNames
column cannot be used for ordering.
Arguments:
Name | Type | Description |
---|---|---|
orderBy
|
String
|
Ordering to apply. |
Return values:
Type | Description |
---|---|
AdsApp.AccountPriceSelector
|
The selector with ordering applied. |
withCondition(condition)
Adds the specified condition to the selector in order to narrow down the
results. Multiple conditions may be added to the same selector:
selector = selector.forDateRange("LAST_MONTH") .withCondition("metrics.clicks > 5") .withCondition("metrics.impressions > 100");
AND
-ed together. The above
example will retrieve entities that observed over 100 metrics.impressions
AND more than 5 clicks. The parameter to be passed into this method must be of the following form:
"COLUMN_NAME OPERATOR VALUE"
Operators
The operator that can be used in a condition depends on the type of column.- For
Integer
andLong
columns (e.g. metrics.clicks and metrics.impressions):< <= > >= = !=
- For
Double
columns (e.g. metrics.ctr):< >
- For
String
columns (e.g. campaign.name):= != (NOT) (LIKE | CONTAINS | REGEXP_MATCH)
- For
Enumeration
columns (ones that can only take one value from a predefined list, such as Status):= != IN () NOT IN ()
- For
StringSet
columns (e.g. campaign.labels):CONTAINS ALL () CONTAINS ANY () CONTAINS NONE ()
IN
, NOT IN
, CONTAINS
ALL
, CONTAINS ANY
and CONTAINS NONE
operators look as follows: withCondition("resource.column_name IN (Value1, Value2)")
Columns
All column names are case-sensitive, and so are all values of enumerated columns (such as Status).
withCondition("metrics.average_cpc < 1.45")
withCondition("metrics.average_cpm > 0.48")
withCondition("metrics.average_cpv < 0.23")
withCondition("metrics.average_page_views > 0")
withCondition("metrics.bounce_rate < 0.5")
withCondition("metrics.clicks >= 21")
withCondition("metrics.conversions_from_interactions_rate > 0.1")
withCondition("metrics.conversions <= 4")
withCondition("metrics.cost_micros > 4480000")
. The
value is specified in micros. E.g. $4.48 = 4480000.withCondition("metrics.ctr > 0.01")
. Note that
metrics.ctr is returned in 0..1
range, so 5% metrics.ctr
is represented as 0.05.withCondition("metrics.impressions != 0")
If a stats column is used in the condition, date range must be specified via AccountPriceSelector.forDateRange(String) or AccountPriceSelector.forDateRange(Object, Object) .
Arguments:
Name | Type | Description |
---|---|---|
condition
|
String
|
Condition to add to the selector. |
Return values:
Type | Description |
---|---|
AdsApp.AccountPriceSelector
|
The selector with the condition applied. |
withLimit(limit)
Specifies limit for the selector to use. For instance, withLimit(50)
returns only the first 50 entities. Arguments:
Name | Type | Description |
---|---|---|
limit
|
int
|
How many entities to return. |
Return values:
Type | Description |
---|---|
AdsApp.AccountPriceSelector
|
The selector with limit applied. |