Fetches campaign-level callouts. Supports filtering and sorting.

Typical usage:

```
var campaignCalloutSelector = campaign.extensions()
    .callouts()
    .withCondition("metrics.impressions > 100")
    .forDateRange("LAST_MONTH")
    .orderBy("metrics.clicks DESC");

var campaignCalloutIterator = campaignCalloutSelector.get();
while (campaignCalloutIterator.hasNext()) {
  var campaignCallout = campaignCalloutIterator.next();
}
```
Related:

- [CampaignCalloutIterator](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncalloutiterator)
- [CampaignCallout](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncallout)

### Methods:

| Member | Type | Description |
|---|---|---|
| [forDateRange(dateRange)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncalloutselector#forDateRange_dateRange) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncalloutselector` | Sets a predefined date range onto the selector. |
| [forDateRange(dateFrom, dateTo)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncalloutselector#forDateRange_dateFrom-dateTo) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncalloutselector` | Sets a custom date range onto the selector. |
| [get()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncalloutselector#get) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncalloutiterator` | Fetches the requested campaign-level callouts and returns an iterator. |
| [orderBy(orderBy)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncalloutselector#orderBy_orderBy) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncalloutselector` | Specifies the ordering of the resulting entities. |
| [withCondition(condition)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncalloutselector#withCondition_condition) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncalloutselector` | Adds the specified condition to the selector in order to narrow down the results. |
| [withLimit(limit)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncalloutselector#withLimit_limit) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncalloutselector` | 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 |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncalloutselector` | 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 |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncalloutselector` | The selector with date range applied. |

## `get()`

Fetches the requested campaign-level callouts and returns an iterator.

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncalloutiterator` | Iterator of the requested campaign-level callouts. |

## `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 [CampaignCalloutSelector.withCondition(String)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncalloutselector#withCondition_condition)
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 [CampaignCalloutSelector.forDateRange(String)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncalloutselector#forDateRange_dateRange)
or [CampaignCalloutSelector.forDateRange(Object,
Object)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncalloutselector#forDateRange_dateFrom-dateTo).

`LabelNames` column cannot be used for ordering.

### Arguments:

| Name | Type | Description |
|---|---|---|
| orderBy | `String` | Ordering to apply. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncalloutselector` | 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");
```
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.trueview_average_cpv | Double | `withCondition("metrics.trueview_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 [CampaignCalloutSelector.forDateRange(String)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncalloutselector#forDateRange_dateRange)
or [CampaignCalloutSelector.forDateRange(Object,
Object)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncalloutselector#forDateRange_dateFrom-dateTo).

### Arguments:

| Name | Type | Description |
|---|---|---|
| condition | `String` | Condition to add to the selector. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncalloutselector` | 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 |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaigncalloutselector` | The selector with limit applied. |