Represents a Google Ads video campaign.

### Methods:

| Member | Type | Description |
|---|---|---|
| [addAdSchedule(adSchedule)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#addAdSchedule_adSchedule) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_adscheduleoperation` | Creates an ad schedule criterion from an ad schedule object. |
| [addAdSchedule(dayOfWeek, startHour, startMinute, endHour, endMinute, bidModifier)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#addAdSchedule_dayOfWeek-startHour-startMinute-endHour-endMinute-bidModifier) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_adscheduleoperation` | Creates an ad schedule criterion. |
| [addExcludedPlacementList(excludedPlacementList)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#addExcludedPlacementList_excludedPlacementList) | `void` | Adds a excluded placement list to this campaign. |
| [addLanguage(languageObject)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#addLanguage_languageObject) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_languageoperation` | Creates a language target in this campaign from a plain JavaScript object. |
| [addLanguage(languageId)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#addLanguage_languageId) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_languageoperation` | Creates a language target in this campaign from language ID. |
| [addLanguage(language)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#addLanguage_language) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_languageoperation` | Creates a language target in this campaign from an existing language object. |
| [addLocation(locationId)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#addLocation_locationId) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_targetedlocationoperation` | Creates a location target in this campaign from a location ID. |
| [addLocation(location)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#addLocation_location) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_targetedlocationoperation` | Creates a location target in this campaign from a location. |
| [addLocation(location)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#addLocation_location) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_targetedlocationoperation` | Creates a location target in this campaign from a location JSON. |
| [addLocation(locationId, bidModifier)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#addLocation_locationId-bidModifier) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_targetedlocationoperation` | Creates a location target in this campaign from a location ID and bid modifier. |
| [addNegativeKeywordList(negativeKeywordList)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#addNegativeKeywordList_negativeKeywordList) | `void` | Adds a negative keyword list to this campaign. |
| [addProximity(proximity)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#addProximity_proximity) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_targetedproximityoperation` | Creates a proximity target in this campaign from a proximity object. |
| [addProximity(latitude, longitude, radius, radiusUnits, optArgs)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#addProximity_latitude-longitude-radius-radiusUnits-optArgs) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_targetedproximityoperation` | Creates a proximity target in this campaign. |
| [applyLabel(name)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#applyLabel_name) | `void` | Applies a label to the video campaign. |
| [bidding()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#bidding) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaignbidding` | Provides access to this campaign's bidding fields. |
| [enable()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#enable) | `void` | Enables the video campaign. |
| [excludeContentLabel(contentLabelType)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#excludeContentLabel_contentLabelType) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_excludedcontentlabeloperation` | Creates a content label exclusion in this campaign from content label type. |
| [excludeContentLabel(contentLabelType)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#excludeContentLabel_contentLabelType) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_excludedcontentlabeloperation` | Creates a content label exclusion in this campaign. |
| [excludeContentLabel(contentLabel)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#excludeContentLabel_contentLabel) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_excludedcontentlabeloperation` | Creates a content label exclusion in this campaign from an existing content label object. |
| [excludeLocation(location)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#excludeLocation_location) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_excludedlocationoperation` | Creates a location exclusion in this campaign. |
| [excludeLocation(locationId)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#excludeLocation_locationId) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_excludedlocationoperation` | Creates a location exclusion in this campaign. |
| [excludeLocation(location)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#excludeLocation_location) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_excludedlocationoperation` | Creates a location exclusion in this campaign. |
| [excludedPlacementLists()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#excludedPlacementLists) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_excludedplacementlistselector` | Returns a selector of excluded placement lists associated with this campaign. |
| [getAdRotationType()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#getAdRotationType) | `String` | Returns the ad rotation type of the campaign. |
| [getBiddingStrategyType()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#getBiddingStrategyType) | `String` | Returns the bidding strategy type of the campaign. |
| [getBudget()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#getBudget) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_budget` | Returns the budget of the campaign. |
| [getEndDate()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#getEndDate) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_googleadsdate` | Returns the campaign's end date, or `null` if there is no end date. |
| [getEntityType()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#getEntityType) | `String` | Returns the type of this entity as a `String`, in this case, `"VideoCampaign"`. |
| [getFrequencyCaps()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#getFrequencyCaps) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_frequencycaps` | Returns frequency caps set for this campaign. |
| [getId()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#getId) | `String` | Returns the ID of the video campaign. |
| [getInventoryType()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#getInventoryType) | `String` | Returns the inventory type of the campaign. |
| [getName()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#getName) | `String` | Returns the name of the campaign. |
| [getResourceName()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#getResourceName) | `String` | Returns the resource name of the video campaign. |
| [getStartDate()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#getStartDate) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_googleadsdate` | Returns the campaign's start date. |
| [getStatsFor(dateRange)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#getStatsFor_dateRange) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_stats` | Returns stats for the specified date range. |
| [getStatsFor(dateFrom, dateTo)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#getStatsFor_dateFrom-dateTo) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_stats` | Returns stats for the specified custom date range. |
| [isEnabled()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#isEnabled) | `boolean` | Returns `true` if the video campaign is enabled. |
| [isPaused()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#isPaused) | `boolean` | Returns `true` if the video campaign is paused. |
| [isRemoved()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#isRemoved) | `boolean` | Returns `true` if the campaign is removed. |
| [labels()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#labels) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_labelselector` | Creates a selector of all labels applied to the video campaign. |
| [negativeKeywordLists()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#negativeKeywordLists) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_negativekeywordlistselector` | Returns a selector of negative keyword lists associated with this campaign. |
| [newVideoAdGroupBuilder()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#newVideoAdGroupBuilder) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videoadgroupbuilder` | Returns a new video ad group builder for this campaign. |
| [pause()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#pause) | `void` | Pauses the video campaign. |
| [removeExcludedPlacementList(excludedPlacementList)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#removeExcludedPlacementList_excludedPlacementList) | `void` | Removes a excluded placement list from this campaign. |
| [removeLabel(name)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#removeLabel_name) | `void` | Removes a label from the video campaign. |
| [removeNegativeKeywordList(negativeKeywordList)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#removeNegativeKeywordList_negativeKeywordList) | `void` | Removes a negative keyword list from this campaign. |
| [setAdRotationType(adRotationType)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#setAdRotationType_adRotationType) | `void` | Sets the ad rotation type of the campaign. |
| [setEndDate(date)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#setEndDate_date) | `void` | Sets the campaign's end date from either an object containing year, month, and day fields, or an 8-digit string in `YYYYMMDD` format. |
| [setInventoryType(inventoryType)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#setInventoryType_inventoryType) | `void` | Sets the inventory type of the campaign. |
| [setName(name)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#setName_name) | `void` | Sets the name of the campaign. |
| [setStartDate(date)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#setStartDate_date) | `void` | Sets the campaign's start date from either an object containing year, month, and day fields, or an 8-digit string in `YYYYMMDD` format. |
| [targeting()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#targeting) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaigntargeting` | Provides access to campaign-level targeting criteria: device, ad scheduling, location, language, and content label. |
| [videoAdGroups()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#videoAdGroups) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videoadgroupselector` | Returns the selector of all ad groups in the video campaign. |
| [videoAds()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#videoAds) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videoadselector` | Returns the selector of all ads in the video campaign. |
| [videoTargeting()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaign#videoTargeting) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaignvideotargeting` | Provides access to this campaign's video targeting criteria. |

## `addAdSchedule(adSchedule)`

Creates an ad schedule criterion from an ad schedule object. Once created, the campaign will start showing ads during the specified time.

When called with one argument, `addAdSchedule` supports two
kinds of input:

- Existing [AdSchedule](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_adschedule) objects, perhaps from another campaign:

  ```
  var campaigns = AdsApp.videoCampaigns().get();
  var campaign1 = campaigns.next();
  var campaign2 = campaigns.next();
  var schedule = campaign1.targeting().adSchedules().get().next();
  campaign2.addAdSchedule(schedule);
  ```
- Plain JavaScript objects describing an ad schedule. For instance, this will create an ad schedule covering Saturday mornings:

  ```
  var campaign = AdsApp.videoCampaigns().get().next();
  campaign.addAdSchedule({
    dayOfWeek: "SATURDAY",
    startHour: 7,
    startMinute: 0,
    endHour: 11,
    endMinute: 0,
    bidModifier: 1.1
  });
  ```
  This will look at the following properties of the given object:
  - `dayOfWeek`: **Required.** Must be one of `"MONDAY"`, `"TUESDAY"`, `"WEDNESDAY"`, `"THURSDAY"`, `"FRIDAY"`, `"SATURDAY"`, or `"SUNDAY"`.
  - `startHour` and `startMinute`: **Required.** The starting time of this segment of the ad schedule. `startHour` must be an integer between `0` and `23`, and `startMinute` must be either `0`, `15`, `30`, or `45`. For instance, a `startHour` of `18` and a `startMinute` of `30` would result in an ad schedule starting at 6:30PM. Acceptable starting times range from `00:00` to `23:45`.
  - `endHour` and `endMinute`: **Required.** The ending time of this segment of the ad schedule. `endHour` must be an integer between `0` and `24`, and `endMinute` must be either `0`, `15`, `30`, or `45`. For instance, a `endHour` of `18` and a `endMinute` of `30` would result in an ad schedule ending at 6:30PM. Acceptable ending times range from `00:15` to `24:00`.
  - `bidModifier`: **Optional.** The bid modifier for this segment of the ad schedule.

One thing to keep in mind is that, by default, campaigns have no ad
schedule criteria and hence serve ads at all times. Adding the first ad
schedule to a campaign will cause ads to be shown during that time only.

There is a limit of 6 ad schedules for each day of the week --- for
instance, splitting up each day into 6 4-hour-long periods is supported,
but splitting up each day into 24 1-hour-long periods is not.

### Arguments:

| Name | Type | Description |
|---|---|---|
| adSchedule | `Object` | The schedule to create. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_adscheduleoperation` | The associated ad schedule operation. |

## `addAdSchedule(dayOfWeek, startHour, startMinute, endHour, endMinute, bidModifier)`

Creates an ad schedule criterion. Once created, the campaign will start showing ads during the specified time.

For instance, this will create an ad schedule covering Saturday
mornings:

```
var campaign = AdsApp.videoCampaigns().get().next();
campaign.addAdSchedule("SATURDAY", 7, 0, 11, 0);
```

This will create the same schedule, but with a bid modifier of
`1.1`:

```
var campaign = AdsApp.videoCampaigns().get().next();
campaign.addAdSchedule("SATURDAY", 7, 0, 11, 0, 1.1);
```

One thing to keep in mind is that, by default, campaigns have no ad
schedule criteria and hence serve ads at all times. Adding the first ad
schedule to a campaign will cause ads to be shown during that time only.

There is a limit of 6 ad schedules for each day of the week --- for
instance, splitting up each day into 6 4-hour-long periods is supported,
but splitting up each day into 241-hour-long periods is not.

### Arguments:

| Name | Type | Description |
|---|---|---|
| dayOfWeek | `String` | The day of week. Must be one of `"MONDAY"`, `"TUESDAY"`, `"WEDNESDAY"`, `"THURSDAY"`, `"FRIDAY"`, `"SATURDAY"`, or `"SUNDAY"`. |
| startHour | `int` | The start hour. Must be an integer between `0` and `23`. Acceptable starting times range from `00:00` to `23:45`. |
| startMinute | `int` | The start minute. Must be either `0`, `15`, `30`, or `45`. Acceptable starting times range from `00:00` to `23:45`. |
| endHour | `int` | The end hour. Must be an integer between `0` and `24`. Acceptable ending times range from `00:15` to `24:00`. |
| endMinute | `int` | The end minute. Must be either `0`, `15`, `30`, or `45`. Acceptable ending times range from `00:15` to `24:00`. |
| bidModifier | `double` | **Optional.** The bid modifier to use for the newly created ad schedule. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_adscheduleoperation` | The associated ad schedule operation. |

## `addExcludedPlacementList(excludedPlacementList)`

Adds a excluded placement list to this campaign.

Returns nothing.

### Arguments:

| Name | Type | Description |
|---|---|---|
| excludedPlacementList | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_excludedplacementlist` | The excluded placement list to be added to this campaign. |

## `addLanguage(languageObject)`

Creates a language target in this campaign from a plain JavaScript object.

Use a plain JavaScript object to describe a language. For instance, this
would create a language target for German:

```
var campaign = AdsApp.videoCampaigns().get().next();
campaign.addLanguage({
  id: 1001,
});
```
This will look at the following properties of the given object:

- `id`: **Required.** The ID of the language to target. For a list of languages and their corresponding codes, see the [API
  documentation on languages](https://developers.google.com/google-ads/api/reference/data/codes-formats#languages).

### Arguments:

| Name | Type | Description |
|---|---|---|
| languageObject | `Object` | Plain JavaScript object describing the language to target. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_languageoperation` | The associated language operation. |

## `addLanguage(languageId)`

Creates a language target in this campaign from language ID.

For a list of languages and their corresponding codes, see the [API
documentation on languages](https://developers.google.com/google-ads/api/reference/data/codes-formats#languages). For instance, this will create a language
target for German:

```
var campaign = AdsApp.videoCampaigns().get().next();
campaign.addLanguage(1001);
```

### Arguments:

| Name | Type | Description |
|---|---|---|
| languageId | `int` | The language ID for the new language. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_languageoperation` | The associated language operation. |

## `addLanguage(language)`

Creates a language target in this campaign from an existing language object.

The existing [Language](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_language) objects can be
from another campaign:

```
var campaigns = AdsApp.videoCampaigns().get();
var campaign1 = campaigns.next();
var campaign2 = campaigns.next();
var language = campaign1.targeting().languages().get().next();
campaign2.addLanguage(language);
```

### Arguments:

| Name | Type | Description |
|---|---|---|
| language | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_language` | The language to target for this campaign. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_languageoperation` | The associated language operation. |

## `addLocation(locationId)`

Creates a location target in this campaign from a location ID. Once created, the campaign will start showing ads to the location with the given location ID.

You must specify a location ID. For a list of locations and their
corresponding IDs, see the [API documentation on
geotargeting](https://developers.google.com/google-ads/api/reference/data/geotargets).

### Arguments:

| Name | Type | Description |
|---|---|---|
| locationId | `int` | The location ID to target. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_targetedlocationoperation` | The associated targeted location operation. |

## `addLocation(location)`

Creates a location target in this campaign from a location. Once created, the campaign will start showing ads to the location with the given location ID.

You must specify an existing [TargetedLocation](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_targetedlocation) object, perhaps
from another campaign:

```
var campaigns = AdsApp.videoCampaigns().get();
var campaign1 = campaigns.next();
var campaign2 = campaigns.next();
var location = campaign1.targeting().targetedLocations().get().next();
campaign2.addLocation(location);
```

### Arguments:

| Name | Type | Description |
|---|---|---|
| location | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_targetedlocation` | The location to target. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_targetedlocationoperation` | The associated targeted location operation. |

## `addLocation(location)`

Creates a location target in this campaign from a location JSON. Once created, the campaign will start showing ads to the location with the given location ID.

You must specify a plain JavaScript object describing a location. For
instance, this would create a location target for Tennessee:

```
var campaign = AdsApp.videoCampaigns().get().next();
campaign.addLocation({
  id: 21175,
  bidModifier: 1.2,
});
```
This will look at the following properties of the given object:

- `id`: **Required.** The ID of the location to target. For a list of locations and their corresponding IDs, see the [API documentation
  on geotargeting](https://developers.google.com/google-ads/api/reference/data/geotargets).
- `bidModifier`: **Optional.** The bid modifier for this location.

### Arguments:

| Name | Type | Description |
|---|---|---|
| location | `Object` | JSON representation of the location to target. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_targetedlocationoperation` | The associated targeted location operation. |

## `addLocation(locationId, bidModifier)`

Creates a location target in this campaign from a location ID and bid modifier. Once created, the campaign will start showing ads to the location with the given location ID.

For instance, this will create a location target for Tennessee with a
bid modifier of `1.15`:

```
var campaign = AdsApp.videoCampaigns().get().next();
campaign.addLocation(21175, 1.15);
```

### Arguments:

| Name | Type | Description |
|---|---|---|
| locationId | `int` | The ID of the location to target. For a list of locations and their corresponding IDs, see the [API documentation on geotargeting](https://developers.google.com/google-ads/api/reference/data/geotargets). |
| bidModifier | `double` | The desired bid modifier for the new location target. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_targetedlocationoperation` | The associated targeted location operation. |

## `addNegativeKeywordList(negativeKeywordList)`

Adds a negative keyword list to this campaign.

Returns nothing.

### Arguments:

| Name | Type | Description |
|---|---|---|
| negativeKeywordList | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_negativekeywordlist` | The negative keyword list to be added to this campaign. |

## `addProximity(proximity)`

Creates a proximity target in this campaign from a proximity object. Once created, the campaign will start showing ads to geographical points within the specified radius of the specified central point.

When called with one argument, `addProximity` supports two
kinds of input:

- Existing [TargetedProximity](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_targetedproximity) objects, perhaps from another campaign:

  ```
  var campaigns = AdsApp.videoCampaigns().get();
  var campaign1 = campaigns.next();
  var campaign2 = campaigns.next();
  var proximity = campaign1.targeting().targetedProximities().get().next();
  campaign2.addProximity(proximity);
  ```
- Plain JavaScript objects describing a proximity. For instance, this would create a proximity targeting 20km around Google headquarters:

  ```
  var campaign = AdsApp.videoCampaigns().get().next();
  campaign.addProximity({
    latitude: 37.423021,
    longitude: -122.083739,
    radius: 20,
    radiusUnits: "KILOMETERS",
    bidModifier: 0.75,
    address: {
      streetAddress: "1600 Amphitheatre Parkway",
      cityName: "Mountain View",
      provinceName: "California",
      provinceCode: "CA",
      postalCode: "94043",
      countryCode: "US"
    }
  });
  ```
  This will look at the following properties of the given object:
  - `latitude` and `longitude`: **Required.** The central geographic point of the proximity to target.
  - `radius` and `radiusUnits`: **Required.** The radius around the central point to target. `radiusUnits` must be either `"MILES"` or `"KILOMETERS"`.
  - `bidModifier`: **Optional.** The bid modifier for this proximity.
  - `address`: **Optional.** The address associated with the central geographical point.

    If present, this is expected to be an object, which contains
    any of `streetAddress`, `streetAddress2`,
    `cityName`, `provinceName`,
    `provinceCode`, `postalCode`, and
    `countryCode` as properties with string values. This
    corresponds to the [Address](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_address)
    objects returned by existing proximity targets.

    There is no validation to check that the address actually
    belongs to the given latitude and longitude. It has no
    functionality except to change what shows up in the Campaign
    Management interface.

### Arguments:

| Name | Type | Description |
|---|---|---|
| proximity | `Object` | The proximity to target. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_targetedproximityoperation` | The associated targeted proximity operation. |

## `addProximity(latitude, longitude, radius, radiusUnits, optArgs)`

Creates a proximity target in this campaign. Once created, the campaign will start showing ads to geographical points within the specified radius of the specified central point.

For instance, this will create a proximity targeting 20km around Google
headquarters:

```
var campaign = AdsApp.videoCampaigns().get().next();
campaign.addProximity(37.423021, -122.083739, 20, "KILOMETERS");
```
Similarly, to create the same proximity target with a bid modifier and address:

```
campaign.addProximity(37.423021, -122.083739, 20, "KILOMETERS", {
  bidModifier: 1.15,
  address: {
    streetAddress: "1600 Amphitheatre Parkway",
    cityName: "Mountain View",
    provinceName: "California",
    provinceCode: "CA",
    postalCode: "94043",
    countryCode: "US"
  }
});
```

### Arguments:

| Name | Type | Description |
|---|---|---|
| latitude | `double` | The latitude of the central point. |
| longitude | `double` | The longitude of the central point. |
| radius | `double` | The radius of the proximity target. |
| radiusUnits | `String` | The units of the radius, either `"MILES"` or `"KILOMETERS"`. |
| optArgs | `Object` | **Optional.** Either a number, which will be interpreted as the desired bid modifier for the proximity, or an object containing extra additional arguments. For `TargetedProximities`, there are two supported optional arguments: - `bidModifier`: The bid modifier for this proximity. - `address`: The address associated with the central geographical point. If present, this is expected to be an object, which contains any of `streetAddress`, `streetAddress2`, `cityName`, `provinceName`, `provinceCode`, `postalCode`, and `countryCode` as properties with string values. This corresponds to the [Address](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_address) objects returned by existing proximity targets. There is no validation to check that the address actually belongs to the given latitude and longitude. It has no functionality except to change what shows up in the Campaign Management interface. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_targetedproximityoperation` | The associated targeted proximity operation. |

## `applyLabel(name)`

Applies a label to the video campaign. `name` of the label is case-sensitive. Operation will fail if the label with the specified name does not already exist in the account.

Note that the video campaign cannot have more than 50 labels.

Returns nothing.

### Arguments:

| Name | Type | Description |
|---|---|---|
| name | `String` | Name of the label to apply. |

## `bidding()`

Provides access to this campaign's bidding fields.

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaignbidding` | Access to this campaign's bidding fields. |

## `enable()`

Enables the video campaign.

Returns nothing.

## `excludeContentLabel(contentLabelType)`

Creates a content label exclusion in this campaign from content label type.

Acceptable values for content label types:

`VIDEO_RATING_DV_G, VIDEO_RATING_DV_PG, VIDEO_RATING_DV_T,
VIDEO_RATING_DV_MA, VIDEO_NOT_YET_RATED, EMBEDDED_VIDEO,
LIVE_STREAMING_VIDEO, GAMES, VIDEO_SENS_TRAGEDY,
VIDEO_SENS_SOCIAL_ISSUES`

```
var campaign = AdsApp.videoCampaigns().get().next();
campaign.excludeContentLabel('VIDEO_RATING_DV_G');
```

> [!WARNING]
> Sensitive content categories (`VIDEO_SENS_TRAGEDY, VIDEO_SENS_SOCIAL_ISSUES`) in Video campaigns are deprecated, and have been replaced by inventory types. Please see the [help
> article](https://support.google.com/google-ads/answer/7515513#InventoryTypes) for more details.

### Arguments:

| Name | Type | Description |
|---|---|---|
| contentLabelType | `String` | The type of content label to exclude. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_excludedcontentlabeloperation` | The associated content label operation. |

## `excludeContentLabel(contentLabelType)`

Creates a content label exclusion in this campaign.

Use a plain JavaScript objects to describe a content label. For
instance, this would create a content label exclusion for videos with
rating G:

```
var campaign = AdsApp.videoCampaigns().get().next();
campaign.excludeLocation({
  contentLabelType: 'VIDEO_RATING_DV_G'
});
```

### Arguments:

| Name | Type | Description |
|---|---|---|
| contentLabelType | `Object` | Plain JavaScript object describing the content label to exclude. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_excludedcontentlabeloperation` | The associated content label operation. |

## `excludeContentLabel(contentLabel)`

Creates a content label exclusion in this campaign from an existing content label object.

The existing [ExcludedContentLabel](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_excludedcontentlabel) objects
can be from another campaign:

```
var campaigns = AdsApp.videoCampaigns().get();
var campaign1 = campaigns.next();
var campaign2 = campaigns.next();
var contentLabel =
  campaign1.targeting().excludedContentLabels().get().next();
campaign2.excludeContentLabel(contentLabel);
```

### Arguments:

| Name | Type | Description |
|---|---|---|
| contentLabel | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_excludedcontentlabel` | The content label to exclude. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_excludedcontentlabeloperation` | The associated content label operation. |

## `excludeLocation(location)`

Creates a location exclusion in this campaign. Once created, the campaign will not show ads to the location with the given location ID.

You must specify an existing [ExcludedLocation](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_excludedlocation) object, perhaps
from another campaign:

```
var campaigns = AdsApp.videoCampaigns().get();
var campaign1 = campaigns.next();
var campaign2 = campaigns.next();
var location = campaign1.targeting().excludedLocations().get().next();
campaign2.excludeLocation(location);
```

### Arguments:

| Name | Type | Description |
|---|---|---|
| location | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_excludedlocation` | The location to exclude. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_excludedlocationoperation` | The associated excluded location operation. |

## `excludeLocation(locationId)`

Creates a location exclusion in this campaign. Once created, the campaign will not show ads to the location with the given location ID.

You must specify a location ID. For a list of locations and their
corresponding IDs, see the [API documentation on
geotargeting](https://developers.google.com/google-ads/api/reference/data/geotargets):

```
var campaign = AdsApp.videoCampaigns().get().next();
campaign.excludeLocation(21175);
```

### Arguments:

| Name | Type | Description |
|---|---|---|
| locationId | `int` | The ID of the location to exclude. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_excludedlocationoperation` | The associated excluded location operation. |

## `excludeLocation(location)`

Creates a location exclusion in this campaign. Once created, the campaign will not show ads to the location with the given location ID.

You must specify a plain JavaScript object describing a location. For
instance, this would create a location exclusion for Tennessee:

```
var campaign = AdsApp.videoCampaigns().get().next();
campaign.excludeLocation({
  id: 21175
});
```
The only field of the object which will be looked at is `id`, which represents the location ID.

### Arguments:

| Name | Type | Description |
|---|---|---|
| location | `Object` | JSON representation of the location to exclude. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_excludedlocationoperation` | The associated excluded location operation. |

## `excludedPlacementLists()`

Returns a selector of excluded placement lists associated with this campaign.

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_excludedplacementlistselector` | A selector of excluded placement lists associated with this campaign. |

## `getAdRotationType()`

Returns the ad rotation type of the campaign. Possible return values:

`OPTIMIZE, CONVERSION_OPTIMIZE, ROTATE`

### Return values:

| Type | Description |
|---|---|
| `String` | Ad rotation type of the campaign. |

## `getBiddingStrategyType()`

Returns the bidding strategy type of the campaign. Possible return values:

`MANUAL_CPV`

### Return values:

| Type | Description |
|---|---|
| `String` | Type of campaign's bidding strategy. |

## `getBudget()`

Returns the budget of the campaign. In order to change the campaign's budget, use [Budget.setAmount(double)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_budget#setAmount_amount).

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_budget` | Budget of the campaign. |

## `getEndDate()`

Returns the campaign's end date, or `null` if there is no end date.

For instance, if a campaign ended on May 3, 2013, this would return the
following object: `{year: 2013, month: 5, day: 3}`.

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_googleadsdate` | The campaign's end date, or `null` if there's no end date. |

## `getEntityType()`

Returns the type of this entity as a `String`, in this case, `"VideoCampaign"`.

### Return values:

| Type | Description |
|---|---|
| `String` | Type of this entity: `"VideoCampaign"`. |

## `getFrequencyCaps()`

Returns frequency caps set for this campaign. For details on frequency cap, please see [Frequency capping](https://support.google.com/google-ads/answer/117579).

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_frequencycaps` | A FrequencyCaps object to access frequency caps. |

## `getId()`

Returns the ID of the video campaign.

### Return values:

| Type | Description |
|---|---|
| `String` | The ID of the video campaign. |

## `getInventoryType()`

Returns the inventory type of the campaign. Possible return values:

`EXPANDED_INVENTORY, STANDARD_INVENTORY, LIMITED_INVENTORY`.

### Return values:

| Type | Description |
|---|---|
| `String` | Inventory type of the campaign. |

## `getName()`

Returns the name of the campaign.

### Return values:

| Type | Description |
|---|---|
| `String` | Name of the campaign. |

## `getResourceName()`

Returns the resource name of the video campaign.

### Return values:

| Type | Description |
|---|---|
| `String` | The resource name of the video campaign. |

## `getStartDate()`

Returns the campaign's start date.

For instance, if a campaign started on May 3, 2013, this would return
the following object: `{year: 2013, month: 5, day: 3}`.

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_googleadsdate` | The campaign's start date. |

## `getStatsFor(dateRange)`

Returns stats for the specified date range. Supported values:

`TODAY, YESTERDAY, LAST_7_DAYS, THIS_WEEK_SUN_TODAY, LAST_WEEK,
LAST_14_DAYS, LAST_30_DAYS, LAST_BUSINESS_WEEK, LAST_WEEK_SUN_SAT,
THIS_MONTH, LAST_MONTH, ALL_TIME`.

Example:

```
var stats = videoCampaign.getStatsFor("THIS_MONTH");
```

### Arguments:

| Name | Type | Description |
|---|---|---|
| dateRange | `String` | Date range for which the stats are requested. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_stats` | The stats for the specified date range. |

## `getStatsFor(dateFrom, dateTo)`

Returns stats for the specified custom date range. 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")` defines a range of a single day.

### Arguments:

| Name | Type | Description |
|---|---|---|
| dateFrom | `Object` | Start date of the date range. Must be either a string in `YYYYMMDD` form, or an object with `year`, `month` and `day` properties. |
| dateTo | `Object` | End date of the date range. Must be either a string in `YYYYMMDD` form, or an object with `year`, `month` and `day` properties. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_stats` | The stats for the specified date range. |

## `isEnabled()`

Returns `true` if the video campaign is enabled.

### Return values:

| Type | Description |
|---|---|
| `boolean` | `true` if the video campaign is enabled. |

## `isPaused()`

Returns `true` if the video campaign is paused.

### Return values:

| Type | Description |
|---|---|
| `boolean` | `true` if the video campaign is paused. |

## `isRemoved()`

Returns `true` if the campaign is removed.

### Return values:

| Type | Description |
|---|---|
| `boolean` | `true` if the campaign is removed. |

## `labels()`

Creates a selector of all labels applied to the video campaign.

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_labelselector` | Selector of all labels applied to the video campaign. |

## `negativeKeywordLists()`

Returns a selector of negative keyword lists associated with this campaign.

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_negativekeywordlistselector` | A selector of negative keyword lists associated with this campaign. |

## `newVideoAdGroupBuilder()`

Returns a new video ad group builder for this campaign. Once `builder.create()` is called, the ad group will be created in this campaign.

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videoadgroupbuilder` | Video ad group builder. |

## `pause()`

Pauses the video campaign.

Returns nothing.

## `removeExcludedPlacementList(excludedPlacementList)`

Removes a excluded placement list from this campaign.

Returns nothing.

### Arguments:

| Name | Type | Description |
|---|---|---|
| excludedPlacementList | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_excludedplacementlist` | The excluded placement list to be removed from this campaign. |

## `removeLabel(name)`

Removes a label from the video campaign. `name` of the label is case-sensitive. Operation will fail if the label with the specified name does not already exist in the account.

Returns nothing.

### Arguments:

| Name | Type | Description |
|---|---|---|
| name | `String` | Name of the label. |

## `removeNegativeKeywordList(negativeKeywordList)`

Removes a negative keyword list from this campaign.

Returns nothing.

### Arguments:

| Name | Type | Description |
|---|---|---|
| negativeKeywordList | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_negativekeywordlist` | The negative keyword list to be removed from this campaign. |

## `setAdRotationType(adRotationType)`

Sets the ad rotation type of the campaign.

For instance, `campaign.setAdRotationType("OPTIMIZE");`
instructs Google Ads to optimize ad serving based on the campaign's VTR.
For more information, see [Choose an ad delivery
method](https://support.google.com/google-ads/answer/2404248) help article.

Returns nothing.

### Arguments:

| Name | Type | Description |
|---|---|---|
| adRotationType | `String` | The new ad rotation type of the campaign. Must be one of `"OPTIMIZE"`, `"CONVERSION_OPTIMIZE"`, or `"ROTATE"`. |

## `setEndDate(date)`

Sets the campaign's end date from either an object containing year, month, and day fields, or an 8-digit string in `YYYYMMDD` format.

For instance, `campaign.setEndDate("20130503");` is
equivalent to `campaign.setEndDate({year: 2013, month: 5, day:
3});`.

The change will fail and report an error if:

- the given date is invalid (e.g., `{year: 2013, month: 5, day: 55}`),
- it's a date in the past, or
- it's a date after the latest allowed end date of December 30, 2037.

Returns nothing.

### Arguments:

| Name | Type | Description |
|---|---|---|
| date | `Object` | The new campaign end date. |

## `setInventoryType(inventoryType)`

Sets the inventory type of the campaign. The original inventory type will be overridden by the new setting.

For instance,
`campaign.setInventoryType("EXPANDED_INVENTORY");` instructs
Google Ads to show ads on all videos that meet our standards for
monetization. For more information, see [About content
exclusions for Video campaigns](https://support.google.com/google-ads/answer/7515513) help article.

Returns nothing.

### Arguments:

| Name | Type | Description |
|---|---|---|
| inventoryType | `String` | The new inventory type of the campaign. Must be one of `"EXPANDED_INVENTORY"`, `"STANDARD_INVENTORY"`, or `"LIMITED_INVENTORY"`. |

## `setName(name)`

Sets the name of the campaign.

Returns nothing.

### Arguments:

| Name | Type | Description |
|---|---|---|
| name | `String` | The new name for the campaign. |

## `setStartDate(date)`

Sets the campaign's start date from either an object containing year, month, and day fields, or an 8-digit string in `YYYYMMDD` format.

For instance, `campaign.setStartDate("20130503");` is
equivalent to `campaign.setStartDate({year: 2013, month: 5, day:
3});`.

The change will fail and report an error if:

- the campaign has already started,
- the given date is invalid (e.g., `{year: 2013, month: 5, day: 55}`),
- the given date is after the campaign's end date,
- it's a date in the past, or
- it's a date after the latest allowed end date of December 30, 2037.

Returns nothing.

### Arguments:

| Name | Type | Description |
|---|---|---|
| date | `Object` | The new campaign end date. |

## `targeting()`

Provides access to campaign-level targeting criteria: device, ad scheduling, location, language, and content label.

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videocampaigntargeting` | Access to certain kinds of targeting criteria in this campaign. |

## `videoAdGroups()`

Returns the selector of all ad groups in the video campaign.

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videoadgroupselector` | The selector of all ad groups in the video campaign. |

## `videoAds()`

Returns the selector of all ads in the video campaign.

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_videoadselector` | The selector of all ads in the video campaign. |

## `videoTargeting()`

Provides access to this campaign's video targeting criteria.

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaignvideotargeting` | Access to this campaign's video targeting criteria. |