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

# Upload click conversions

> Upload offline click conversions to Google Ads.

Use `googleAds.uploadClickConversions` to upload offline click conversions through Google's Data Manager API.

## Example

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

export default automation("Upload click conversions", () => {
  onDashboardRun({ title: "Upload click conversions" })

  googleAds.uploadClickConversions({
    customerId: "1234567890",
    items: [
      {
        conversionAction: "customers/1234567890/conversionActions/111",
        conversionDateTime: "2026-08-10 10:05:00-07:00",
        gclid: "click-id",
      },
    ],
  })
})
```

## Inputs

Upload 1–2,000 records. Each must contain exactly one of `gclid`, `gbraid`, or `wbraid`, plus the conversion action and a time with a UTC offset. `eventSource` defaults to `WEB`; set it to `APP`, `IN_STORE`, `MESSAGE`, `OTHER`, or `PHONE` when appropriate. Optional value, currency, and order ID support revenue and deduplication. Set `validateOnly` to check a request without applying it. This action requests Google's Data Manager OAuth scope. All customer-scoped actions accept optional `loginCustomerId` for manager-account access and a named Google account binding.

## Output

Returns the Data Manager request ID. Use it when diagnosing asynchronous processing results with Google support.
