> ## Documentation Index
> Fetch the complete documentation index at: https://docs.automate.ax/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Automate.ax automations are TypeScript programs.
> Use Bun for installation and command examples.
> Use Automate.ax for the product name and automate.ax for the package, CLI, and domain.
> Treat documented public APIs as current; do not invent transitional or deprecated names.

# On campaign budget updated

> Run an automation when a campaign budget is updated in Google Ads.

`googleAds.onCampaignBudgetUpdated` emits changes observed after the trigger establishes its baseline. Existing changes aren't replayed.

## Example

```ts theme={null}
import { automation } from "automate.ax"
import { googleAds } from "automate.ax/google-ads"

export default automation("On campaign budget updated", () => {
  const change = googleAds.onCampaignBudgetUpdated({ customerId: "1234567890" })

  googleAds.getCustomer({ customerId: change.customerId })
})
```

## Options

Set the static `customerId` to the 10-digit Google Ads customer, with or without dashes. Set `loginCustomerId` when a manager account authorizes the client. `account` selects a named Google connection. Signals can't select these values at runtime.

## Trigger data

Returns `{ customerId, event }`. The event includes its stable resource name, changed resource name and type, operation, change time, changed-field mask, and available campaign, ad-group, asset, user, and client metadata. `oldResource` and `newResource` contain the changed fields Google provides.

Automate.ax polls once per minute. Google can delay change events, so delivery is not immediate. Google only exposes change history from the previous 30 days and caps a query at 10,000 rows.
