Builder for a keyword under construction.

Typical usage:

```
var keywordOperation = adGroup.newKeywordBuilder()
   .withText("text")
   .withCpc(1.5)
   .withFinalUrl("http://www.example.com")
   .build();
var keyword = keywordOperation.getResult();
```

Note that it is only necessary to call [KeywordOperation.getResult()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordoperation#getResult)
if you need to access the actual keyword for further processing (for
instance, one can attach a label to the newly created keyword), otherwise,
calling [KeywordBuilder.build()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder#build) on the
`KeywordBuilder` is sufficient to ensure that the Keyword is
created.

### Methods:

| Member | Type | Description |
|---|---|---|
| [build()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder#build) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordoperation` | Creates a [Keyword](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keyword). |
| [withCpc(cpc)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder#withCpc_cpc) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder` | Sets the max CPC bid of the new keyword to the specified value. |
| [withCpm(cpm)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder#withCpm_cpm) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder` | Sets the CPM bid of the new keyword to the specified value. |
| [withCustomParameters(customParameters)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder#withCustomParameters_customParameters) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder` | Sets the custom parameters of the new keyword to the specified value. |
| [withFinalUrl(finalUrl)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder#withFinalUrl_finalUrl) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder` | Sets the final URL of the new keyword to the specified value. |
| [withFinalUrlSuffix(suffix)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder#withFinalUrlSuffix_suffix) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder` | Sets the final URL suffix of the new keyword to the specified value. |
| [withMobileFinalUrl(mobileFinalUrl)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder#withMobileFinalUrl_mobileFinalUrl) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder` | Sets the mobile final URL of the new keyword to the specified value. |
| [withText(text)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder#withText_text) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder` | Sets the text of the new keyword to the specified value. |
| [withTrackingTemplate(trackingTemplate)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder#withTrackingTemplate_trackingTemplate) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder` | Sets the tracking template of the new keyword to the specified value. |

## `build()`

Creates a [Keyword](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keyword). Returns a [KeywordOperation](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordoperation) that can be used to get the new keyword (or access any associated errors if creation failed).

### Return values:

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

## `withCpc(cpc)`

Sets the max CPC bid of the new keyword to the specified value.

### Arguments:

| Name | Type | Description |
|---|---|---|
| cpc | `double` | The max CPC bid of the keyword. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder` | The keyword builder with the specified max CPC. |

## `withCpm(cpm)`

Sets the CPM bid of the new keyword to the specified value.

See [Cost-per-thousand
impressions (CPM)](https://support.google.com/google-ads/answer/6310) for more information.

### Arguments:

| Name | Type | Description |
|---|---|---|
| cpm | `double` | The CPM bid of the keyword. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder` | The keyword builder with the specified CPM. |

## `withCustomParameters(customParameters)`

Sets the custom parameters of the new keyword to the specified value.

Custom parameters enable you to create your
own [ValueTrack](https://support.google.com/google-ads/answer/2375447)
parameters that you can assign your own IDs to.

The name of a custom parameter can contain only alphanumeric characters,
and custom parameter values may not contain white space. When referring to
the custom parameter in final URLs and tracking template, you should
surround the custom parameter in braces, and prefix an underscore to its
name, e.g. `{_param}`.

You can have up to 8 custom parameters for an entity. The key and value
must not exceed 16 and 200 bytes respectively.

Custom parameters specified at a lower level entity will override the
setting specified at a higher level entity, e.g., setting custom parameters
at the ad group level overrides the setting at the campaign level, and
custom parameters specified at the ad level override the setting at the ad
group level.

See [Using
Upgraded URLs](https://support.google.com/google-ads/answer/6049217) for more information.

### Arguments:

| Name | Type | Description |
|---|---|---|
| customParameters | `Object` | The custom parameters of the keyword as a map of the following form: `{key1: 'value1', key2: 'value2', key3: 'value3'}`. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder` | The keyword builder with the specified custom parameters. |

## `withFinalUrl(finalUrl)`

Sets the final URL of the new keyword to the specified value.

The final URL represents the actual landing page for your keyword. The final URL must be the URL of the page that the user
ends up on after clicking on your ad, once all the redirects have taken
place.

See [Using
Upgraded URLs](https://support.google.com/google-ads/answer/6049217) for more information.

### Arguments:

| Name | Type | Description |
|---|---|---|
| finalUrl | `String` | The final URL for the keyword. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder` | The keyword builder with the specified final URL. |

## `withFinalUrlSuffix(suffix)`

Sets the final URL suffix of the new keyword to the specified value.

When [parallel
tracking](https://support.google.com/google-ads/answer/7544674) is enabled, the final URL suffix gets appended to the final
URL.

### Arguments:

| Name | Type | Description |
|---|---|---|
| suffix | `String` | The final URL suffix to set on the keyword. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder` | The keyword builder with the specified final URL suffix. |

## `withMobileFinalUrl(mobileFinalUrl)`

Sets the mobile final URL of the new keyword to the specified value.

The mobile final URL represents the actual landing page for your keyword on a mobile device. The final mobile URL must be the URL of
the page that the user ends up on after clicking on your ad on a mobile
device, once all the redirects have taken place.

See [Using
Upgraded URLs](https://support.google.com/google-ads/answer/6049217) for more information.

### Arguments:

| Name | Type | Description |
|---|---|---|
| mobileFinalUrl | `String` | The mobile final URL for the keyword. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder` | The keyword builder with the specified final URL. |

## `withText(text)`

Sets the text of the new keyword to the specified value. This field is required. Match type for the new keyword is specified as follows:

- `keywordBuilder.withText("shoes")` - broad match.
- `keywordBuilder.withText("\"shoes\"")` - phrase match.
- `keywordBuilder.withText("[leather shoes]")` - exact match.

### Arguments:

| Name | Type | Description |
|---|---|---|
| text | `String` | The text of the keyword. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder` | Keyword builder with the specified text. |

## `withTrackingTemplate(trackingTemplate)`

Sets the tracking template of the new keyword to the specified value.

You can optionally use the tracking template to specify additional
tracking parameters or redirects. Google Ads will use this template to
assemble the actual destination URL to associate with the ad.

A tracking template specified at a lower level entity will override the
setting specified at a higher level entity, e.g., a tracking template set
at the ad group level overrides the setting at the campaign level, and a
tracking template specified at the ad level overrides the setting at the ad
group level.

See [Using
Upgraded URLs](https://support.google.com/google-ads/answer/6049217) for more information.

### Arguments:

| Name | Type | Description |
|---|---|---|
| trackingTemplate | `String` | The tracking template for the keyword. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_keywordbuilder` | The keyword builder with the specified tracking template. |