Represents a Google Ads budget. Budgets are used for managing the amount of money spent on Google Ads.

Budgets may be shared among a number of campaigns; use [Budget.campaigns()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_budget#campaigns) to find the
campaigns that are using the budget. For more information on Shared Budgets,
please see [Google Ads API
article](https://developers.google.com/google-ads/api/docs/campaigns/budgets/share-budgets).

### Methods:

| Member | Type | Description |
|---|---|---|
| [campaigns()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_budget#campaigns) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaignselector` | Returns the selector of all search and display campaigns that share this budget. |
| [getAmount()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_budget#getAmount) | `double` | Returns the amount of the budget, in the currency of the account. |
| [getDeliveryMethod()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_budget#getDeliveryMethod) | `String` | Returns the delivery method of the budget. |
| [getEntityType()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_budget#getEntityType) | `String` | Returns the type of this entity as a `String`, in this case, `"Budget"`. |
| [getId()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_budget#getId) | `String` | Returns the ID of the budget. |
| [getName()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_budget#getName) | `String` | Returns the name of the budget. |
| [getResourceName()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_budget#getResourceName) | `String` | Returns the resource name of the budget. |
| [getStatsFor(dateRange)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_budget#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_budget#getStatsFor_dateFrom-dateTo) | `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_stats` | Returns stats for the specified custom date range. |
| [getTotalAmount()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_budget#getTotalAmount) | `double` | Returns the total amount of the budget, in the currency of the account. |
| [getType()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_budget#getType) | `String` | Returns the type of the budget (also known as the period). |
| [isExplicitlyShared()](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_budget#isExplicitlyShared) | `boolean` | Returns `true` if the budget is explicitly shared, and `false` otherwise. |
| [setAmount(amount)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_budget#setAmount_amount) | `void` | Sets the budget's amount to the specified value, in the currency of the account. |
| [setDeliveryMethod(deliveryMethod)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_budget#setDeliveryMethod_deliveryMethod) | `void` | Sets the delivery method of the budget. |
| [setTotalAmount(totalAmount)](https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_budget#setTotalAmount_totalAmount) | `void` | Sets the total budget's amount to the specified value, in the currency of the account. |

## `campaigns()`

Returns the selector of all search and display campaigns that share this budget.

### Return values:

| Type | Description |
|---|---|
| `https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_campaignselector` | Selector of all search and display campaigns that share this budget. |

## `getAmount()`

Returns the amount of the budget, in the currency of the account. Will return 0 if the budget has a total amount rather than a daily amount.

To learn more about daily and total budgets see [About campaign
budgets](https://support.google.com/google-ads/answer/6385083).

### Return values:

| Type | Description |
|---|---|
| `double` | Amount of the budget. |

## `getDeliveryMethod()`

Returns the delivery method of the budget. Possible return values:

`STANDARD`, `ACCELERATED`.

### Return values:

| Type | Description |
|---|---|
| `String` | Delivery method of the budget. |

## `getEntityType()`

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

### Return values:

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

## `getId()`

Returns the ID of the budget.

### Return values:

| Type | Description |
|---|---|
| `String` | The ID of the budget. |

## `getName()`

Returns the name of the budget. Every budget must have a non-empty name; all budget names in an account are distinct.

### Return values:

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

## `getResourceName()`

Returns the resource name of the budget.

### Return values:

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

## `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 = budget.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. |

## `getTotalAmount()`

Returns the total amount of the budget, in the currency of the account. Will return 0 if the budget has a daily amount rather than a total amount. Total budgets refer to the total amount that a specific campaign can spend from start to end date and as such cannot be shared.

To learn more about daily and total budgets see [About campaign
budgets](https://support.google.com/google-ads/answer/6385083).

### Return values:

| Type | Description |
|---|---|
| `double` | Total amount of the budget. |

## `getType()`

Returns the type of the budget (also known as the period). Possible return values:

`DAILY`, `TOTAL`. To learn more about daily and
total budgets see [About campaign
budgets](https://support.google.com/google-ads/answer/6385083).

### Return values:

| Type | Description |
|---|---|
| `String` | Type of the budget. |

## `isExplicitlyShared()`

Returns `true` if the budget is explicitly shared, and `false` otherwise.

- If `true`, this budget was created through the BudgetService or through the UI shared library with the purpose of sharing this budgets across one or more campaigns.
- If `false`, this budget was created with the intention to be used with a single campaign, and the Budget's name will stay in the sync with the associated Campaign's name.

### Return values:

| Type | Description |
|---|---|
| `boolean` | `true` if the budget is explicitly shared. |

## `setAmount(amount)`

Sets the budget's amount to the specified value, in the currency of the account.

This value represents an average daily budget amount; the actual daily
costs might vary. See [Charges and your
daily budget](https://support.google.com/google-ads/answer/1704443).

This method will throw an error if the budget has a total amount rather
than a daily amount. To learn more about daily and total budgets see [About campaign
budgets](https://support.google.com/google-ads/answer/6385083).

Returns nothing.

### Arguments:

| Name | Type | Description |
|---|---|---|
| amount | `double` | The amount of the budget. |

## `setDeliveryMethod(deliveryMethod)`

Sets the delivery method of the budget.

Delivery method cannot be changed for campaign total budgets.

To learn more about daily and total budgets see [About campaign
budgets](https://support.google.com/google-ads/answer/6385083).

Returns nothing.

### Arguments:

| Name | Type | Description |
|---|---|---|
| deliveryMethod | `String` | The delivery method of the budget. Must be one of `"STANDARD"`, `"ACCELERATED"`. |

## `setTotalAmount(totalAmount)`

Sets the total budget's amount to the specified value, in the currency of the account.

This value represents a total budget amount. Campaign total budgets are
only available for video campaigns with a specific start and end date and
cannot be shared amongst multiple campaigns. Also, one can't change the
budget type once a campaign is created. As such, this method will throw an
error if the budget has a daily amount rather than a total amount.

To learn more about daily and total budgets see [About campaign
budgets](https://support.google.com/google-ads/answer/6385083).

Returns nothing.

### Arguments:

| Name | Type | Description |
|---|---|---|
| totalAmount | `double` | The total amount of the budget. |