AdsApp.​CampaignPhoneNumberSelector

Fetches campaign-level phone numbers. Supports filtering and sorting.

Typical usage:

var campaignPhoneNumberSelector = campaign.extensions()
    .phoneNumbers()
    .withCondition("metrics.impressions > 100")
    .forDateRange("LAST_MONTH")
    .orderBy("metrics.clicks DESC");

var campaignPhoneNumberIterator = campaignPhoneNumberSelector.get();
while (campaignPhoneNumberIterator.hasNext()) {
  var campaignPhoneNumber = campaignPhoneNumberIterator.next();
}
Related:

Methods:

MemberTypeDescription
forDateRangeAdsApp.CampaignPhoneNumberSelectorSets a predefined date range onto the selector.
forDateRangeAdsApp.CampaignPhoneNumberSelectorSets a custom date range onto the selector.
getAdsApp.CampaignPhoneNumberIteratorFetches the requested campaign-level phone numbers and returns an iterator.
orderByAdsApp.CampaignPhoneNumberSelectorSpecifies the ordering of the resulting entities.
withConditionAdsApp.CampaignPhoneNumberSelectorAdds the specified condition to the selector in order to narrow down the results.
withLimitAdsApp.CampaignPhoneNumberSelectorSpecifies limit for the selector to use.
withOnlyLegacyAdsApp.CampaignPhoneNumberSelectorFetches legacy campaign-level phone numbers.
withOnlyUpgradedAdsApp.CampaignPhoneNumberSelectorFetches upgraded campaign-level phone numbers.

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:

NameTypeDescription
dateRangeStringDate range to set onto the selector.

Return values:

TypeDescription
AdsApp.CampaignPhoneNumberSelectorThe 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:

NameTypeDescription
dateFromObjectStart date of the date range.
dateToObjectEnd date of the date range.

Return values:

TypeDescription
AdsApp.CampaignPhoneNumberSelectorThe selector with date range applied.

get()

Fetches the requested campaign-level phone numbers and returns an iterator.

Return values:

TypeDescription
AdsApp.CampaignPhoneNumberIteratorIterator of the requested campaign-level phone numbers.

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 CampaignPhoneNumberSelector.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 CampaignPhoneNumberSelector.forDateRange(String) or CampaignPhoneNumberSelector.forDateRange(Object, Object).

LabelNames column cannot be used for ordering.

Arguments:

NameTypeDescription
orderByStringOrdering to apply.

Return values:

TypeDescription
AdsApp.CampaignPhoneNumberSelectorThe 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");
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).

ColumnTypeExample
Stats
metrics.average_cpcDoublewithCondition("metrics.average_cpc < 1.45")
metrics.average_cpmDoublewithCondition("metrics.average_cpm > 0.48")
metrics.average_cpvDoublewithCondition("metrics.average_cpv < 0.23")
metrics.average_page_viewsDoublewithCondition("metrics.average_page_views > 0")
metrics.bounce_rateDoublewithCondition("metrics.bounce_rate < 0.5")
metrics.clicksLongwithCondition("metrics.clicks >= 21")
metrics.conversions_from_interactions_rateDoublewithCondition("metrics.conversions_from_interactions_rate > 0.1")
metrics.conversionsLongwithCondition("metrics.conversions <= 4")
metrics.cost_microsDoublewithCondition("metrics.cost_micros > 4480000"). The value is specified in micros. E.g. $4.48 = 4480000.
metrics.ctrDoublewithCondition("metrics.ctr > 0.01"). Note that metrics.ctr is returned in 0..1 range, so 5% metrics.ctr is represented as 0.05.
metrics.impressionsLongwithCondition("metrics.impressions != 0")

If a stats column is used in the condition, date range must be specified via CampaignPhoneNumberSelector.forDateRange(String) or CampaignPhoneNumberSelector.forDateRange(Object, Object).

Arguments:

NameTypeDescription
conditionStringCondition to add to the selector.

Return values:

TypeDescription
AdsApp.CampaignPhoneNumberSelectorThe 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:

NameTypeDescription
limitintHow many entities to return.

Return values:

TypeDescription
AdsApp.CampaignPhoneNumberSelectorThe selector with limit applied.

withOnlyLegacy()

Fetches legacy campaign-level phone numbers.

Return values:

TypeDescription
AdsApp.CampaignPhoneNumberSelectorThe selector with the condition applied.

withOnlyUpgraded()

Fetches upgraded campaign-level phone numbers.

Return values:

TypeDescription
AdsApp.CampaignPhoneNumberSelectorThe selector with the condition applied.