> ## 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.

# Create campaign

> Create a Google Ads campaign with an existing budget and bidding strategy.

Use `googleAds.createCampaign` to create a Google Ads campaign with an existing budget and bidding strategy.

## Example

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

export default automation("Create campaign", () => {
  onDashboardRun({ title: "Create campaign" })

  googleAds.createCampaign({
    customerId: "1234567890",
    name: "Brand search",
    campaignBudget: "customers/1234567890/campaignBudgets/111",
    advertisingChannelType: "SEARCH",
    biddingStrategy: { type: "manualCpc" },
    containsEuPoliticalAdvertising: "DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING",
    status: "PAUSED",
  })
})
```

## Inputs

Set `customerId`, `name`, a campaign-budget resource name, channel type, bidding strategy, and the required EU political-advertising declaration. Search, Display, Video, Demand Gen, and Performance Max campaigns accept the standard bidding strategies. Shopping campaigns also require `shoppingSetting` with `merchantId` and `campaignPriority`, and accept `manualCpc`, `targetSpend`, or `targetRoas` bidding. An optional feed label uses only uppercase letters, digits, hyphens, and underscores. Hotel campaigns require `hotelSetting.hotelCenterId` and `percentCpc` bidding. Optional `startDateTime` and `endDateTime` values use `YYYY-MM-DD HH:mm:ss` in the customer account's time zone. Status defaults to Google's enabled state, so use `PAUSED` when staging. All customer-scoped actions accept optional `loginCustomerId` for manager-account access and a named Google account binding.

## Output

Returns the created campaign resource name. Creation is not replay-safe.
