Fetches campaign-level sitelinks. Supports filtering and sorting.
Typical usage:
var campaignSitelinkSelector = campaign.extensions()
.sitelinks()
.withCondition("metrics.impressions > 100")
.forDateRange("LAST_MONTH")
.orderBy("metrics.clicks DESC");
var campaignSitelinkIterator = campaignSitelinkSelector.get();
while (campaignSitelinkIterator.hasNext()) {
var campaignSitelink = campaignSitelinkIterator.next();
}
Related:
Methods:
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:
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:
get()
Fetches the requested campaign-level sitelinks and returns an iterator.
Return values:
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 CampaignSitelinkSelector.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 CampaignSitelinkSelector.forDateRange(String)
or CampaignSitelinkSelector.forDateRange(Object,
Object).
LabelNames
column cannot be used for ordering.
Arguments:
Name | Type | Description |
orderBy |
String |
Ordering to apply. |
Return values:
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");
All specified conditions are
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
and Long
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 ()
Conditions using
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 |
Stats
|
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 CampaignSitelinkSelector.forDateRange(String)
or CampaignSitelinkSelector.forDateRange(Object,
Object).
Arguments:
Name | Type | Description |
condition |
String |
Condition to add to the selector. |
Return values:
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:
withOnlyLegacy()
Fetches legacy campaign-level sitelinks.
Return values:
withOnlyUpgraded()
Fetches upgraded campaign-level sitelinks.
Return values: