Typical usage:
var campaignPriceSelector = campaign.extensions() .prices() .withCondition("metrics.impressions > 100") .forDateRange("LAST_MONTH") .orderBy("metrics.clicks DESC"); var campaignPriceIterator = campaignPriceSelector.get(); while (campaignPriceIterator.hasNext()) { var campaignPrice = campaignPriceIterator.next(); }
Methods:
| Member | Type | Description |
|---|---|---|
| forDateRange(dateRange) | AdsApp.CampaignPriceSelector |
Sets a predefined date range onto the selector. |
| forDateRange(dateFrom, dateTo) | AdsApp.CampaignPriceSelector |
Sets a custom date range onto the selector. |
| get() | AdsApp.CampaignPriceIterator |
Fetches the requested campaign-level prices and returns an iterator. |
| orderBy(orderBy) | AdsApp.CampaignPriceSelector |
Specifies the ordering of the resulting entities. |
| withCondition(condition) | AdsApp.CampaignPriceSelector |
Adds the specified condition to the selector in order to narrow down the results. |
| withLimit(limit) | AdsApp.CampaignPriceSelector |
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.CampaignPriceSelector |
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.CampaignPriceSelector |
The selector with date range applied. |
get()
Fetches the requested campaign-level prices and returns an iterator. Return values:
| Type | Description |
|---|---|
AdsApp.CampaignPriceIterator |
Iterator of the requested campaign-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 CampaignPriceSelector.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 CampaignPriceSelector.forDateRange(String) or CampaignPriceSelector.forDateRange(Object, Object).
LabelNames column cannot be used for ordering.
Arguments:
| Name | Type | Description |
|---|---|---|
| orderBy | String |
Ordering to apply. |
Return values:
| Type | Description |
|---|---|
AdsApp.CampaignPriceSelector |
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
IntegerandLongcolumns (e.g. metrics.clicks and metrics.impressions):< <= > >= = !=
- For
Doublecolumns (e.g. metrics.ctr):< >
- For
Stringcolumns (e.g. campaign.name):= != (NOT) (LIKE | CONTAINS | REGEXP_MATCH)
- For
Enumerationcolumns (ones that can only take one value from a predefined list, such as Status):= != IN () NOT IN ()
- For
StringSetcolumns (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).
| Column | Type | Example |
|---|---|---|
|
|
||
| metrics.average_cpc | Double | withCondition("metrics.average_cpc < 1.45") |
| metrics.average_cpm | Double | withCondition("metrics.average_cpm > 0.48") |
| metrics.average_cpv | Double | withCondition("metrics.average_cpv < 0.23") |
| metrics.average_page_views | Double | withCondition("metrics.average_page_views > 0") |
| metrics.bounce_rate | Double | withCondition("metrics.bounce_rate < 0.5") |
| metrics.clicks | Long | withCondition("metrics.clicks >= 21") |
| metrics.conversions_from_interactions_rate | Double | withCondition("metrics.conversions_from_interactions_rate > 0.1") |
| metrics.conversions | Long | withCondition("metrics.conversions <= 4") |
| metrics.cost_micros | Double |
withCondition("metrics.cost_micros > 4480000"). The
value is specified in micros. E.g. $4.48 = 4480000.
|
| metrics.ctr | Double |
withCondition("metrics.ctr > 0.01"). Note that
metrics.ctr is returned in 0..1 range, so 5% metrics.ctr
is represented as 0.05.
|
| metrics.impressions | Long | withCondition("metrics.impressions != 0") |
If a stats column is used in the condition, date range must be specified via CampaignPriceSelector.forDateRange(String) or CampaignPriceSelector.forDateRange(Object, Object).
Arguments:
| Name | Type | Description |
|---|---|---|
| condition | String |
Condition to add to the selector. |
Return values:
| Type | Description |
|---|---|
AdsApp.CampaignPriceSelector |
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.CampaignPriceSelector |
The selector with limit applied. |