Builder for [PhoneNumber](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumber) objects.

Example usage:

```
// Create a phone number builder.
var phoneNumberBuilder = AdsApp.extensions().newPhoneNumberBuilder();

// Create a phone number operation.
var phoneNumberOperation = phoneNumberBuilder
  .withCountry("US")                  // required
  .withPhoneNumber("1234567891")      // required
  .withMobilePreferred(true)          // optional
  .build();

// Optional: examine the outcome. The call to isSuccessful()
// will block until the operation completes.
if (phoneNumberOperation.isSuccessful()) {
  // Get the result.
  var phoneNumber = phoneNumberOperation.getResult();
} else {
  // Handle the errors.
  var errors = phoneNumberOperation.getErrors();
}
```

### Methods:

| Member | Type | Description |
|---|---|---|
| [build(buildLegacy)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumberbuilder#build_buildLegacy) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumberoperation` | Creates a [PhoneNumber](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumber). |
| [withCallOnly(callOnly)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumberbuilder#withCallOnly_callOnly) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumberbuilder` | If set to `true`, only the advertiser's phone number will get displayed. |
| [withCountry(country)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumberbuilder#withCountry_country) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumberbuilder` | Sets the two character country code of the advertiser's phone number. |
| [withEndDate(date)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumberbuilder#withEndDate_date) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumberbuilder` | Sets the phone number's end date from either an object containing year, month, and day fields, or an 8-digit string in `YYYYMMDD` format. |
| [withMobilePreferred(isMobilePreferred)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumberbuilder#withMobilePreferred_isMobilePreferred) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumberbuilder` | Sets the phone number's device preference to mobile or clears it. |
| [withPhoneNumber(phoneNumber)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumberbuilder#withPhoneNumber_phoneNumber) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumberbuilder` | Sets the advertiser's phone number that gets appended to the ad. |
| [withSchedules(schedules)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumberbuilder#withSchedules_schedules) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumberbuilder` | Sets the phone number scheduling. |
| [withStartDate(date)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumberbuilder#withStartDate_date) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumberbuilder` | Sets the phone number's start date from either an object containing year, month, and day fields, or an 8-digit string in `YYYYMMDD` format. |

## `build(buildLegacy)`

Creates a [PhoneNumber](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumber). Returns a [PhoneNumberOperation](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumberoperation) that can be used to get the new phone number (or access any associated errors if creation failed).

Defaults to building the type of phone number that is currently
serving. If there are upgraded phone numbers, then an upgraded
phone number will be built by default. If there are only legacy
phone numbers, then a legacy phone number will be built
by default. If there are neither, then an upgraded phone number will
be built by default.

### Arguments:

| Name | Type | Description |
|---|---|---|
| buildLegacy | `boolean` | If `true`, builds a legacy phone number. If `false`, builds an upgraded phone number. If unspecified, defaults to building whichever type is currently serving. |

### Return values:

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

## `withCallOnly(callOnly)`

If set to `true`, only the advertiser's phone number will get displayed. If set to `false`, the link to the advertiser's website will be shown as well.

> [!WARNING]
> **Deprecated.** This functionality has been deprecated. Please see the [announcement blog post](https://ads-developers.googleblog.com/2015/02/new-callonly-creative-type-in-adwords.html) for more information.

### Arguments:

| Name | Type | Description |
|---|---|---|
| callOnly | `boolean` | The value for call only setting. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumberbuilder` | A phone number builder with the specified value for call only. |

## `withCountry(country)`

Sets the two character country code of the advertiser's phone number. This field is required.

### Arguments:

| Name | Type | Description |
|---|---|---|
| country | `String` | The country code for the phone number. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumberbuilder` | A phone number builder with the specified country code. |

## `withEndDate(date)`

Sets the phone number's end date from either an object containing year, month, and day fields, or an 8-digit string in `YYYYMMDD` format. This field is optional.

For instance, `phoneNumberBuilder.withEndDate("20130503");` is equivalent to `phoneNumberBuilder.withEndDate({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}`),
- the start date now comes after the end date, or
- it's a date in the past

> [!WARNING]
> **Deprecated.**

### Arguments:

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

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumberbuilder` | A phone number builder with the specified end date. |

## `withMobilePreferred(isMobilePreferred)`

Sets the phone number's device preference to mobile or clears it. This field is optional and defaults to `false`.

> [!WARNING]
> **Deprecated.**

### Arguments:

| Name | Type | Description |
|---|---|---|
| isMobilePreferred | `boolean` | Whether or not this phone number should be mobile preferred. If `true` is passed in, device preference will be set to mobile. If `false` is passed in, device preference will be set to none. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumberbuilder` | A phone number builder with the specified mobile preference. |

## `withPhoneNumber(phoneNumber)`

Sets the advertiser's phone number that gets appended to the ad. This field is required.

### Arguments:

| Name | Type | Description |
|---|---|---|
| phoneNumber | `String` | The phone number as a string. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumberbuilder` | A phone number builder with the specified phone number. |

## `withSchedules(schedules)`

Sets the phone number scheduling. Scheduling of a phone number allows you to control the days of week and times of day during which the phone number will show alongside your ads.

Passing in an empty array clears the scheduling field, causing the phone number to run at all times.

The following example sets the phone number to run on Mondays and
Tuesday from 8:00 to 11:00.

```
 var mondayMorning = {
   dayOfWeek: "MONDAY",
   startHour: 8,
   startMinute: 0,
   endHour: 11,
   endMinute: 0
 };
 var tuesdayMorning = {
   dayOfWeek: "TUESDAY",
   startHour: 8,
   startMinute: 0,
   endHour: 11,
   endMinute: 0
 };

phoneNumberBuilder.withSchedules([mondayMorning, tuesdayMorning]);
```

### Arguments:

| Name | Type | Description |
|---|---|---|
| schedules | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_extensionschedule` | The new phone number schedules. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumberbuilder` | A phone number builder with the specified schedules. |

## `withStartDate(date)`

Sets the phone number's start date from either an object containing year, month, and day fields, or an 8-digit string in `YYYYMMDD` format. This field is optional.

For instance, `phoneNumberBuilder.withStartDate("20130503");` is equivalent to `phoneNumberBuilder.withStartDate({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}`),
- the given date is after the phone number's end date,

> [!WARNING]
> **Deprecated.**

### Arguments:

| Name | Type | Description |
|---|---|---|
| date | `Object` | The new phone number start date. |

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_phonenumberbuilder` | A phone number builder with the specified start date. |