> ## 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 user-list members

> Add or remove Customer Match identifiers through Google Data Manager.

Use `googleAds.uploadUserListMembers` to add or remove Customer Match identifiers 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 user-list members", () => {
  onDashboardRun({ title: "Upload user-list members" })

  googleAds.uploadUserListMembers({
    customerId: "1234567890",
    customerMatchTermsAccepted: true,
    userList: "customers/1234567890/userLists/111",
    operation: "create",
    identifiers: [
      {
        type: "hashedEmail",
        hashedEmail:
          "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
      },
    ],
  })
})
```

## Inputs

Set customer, user-list resource name, operation, and 1–10,000 identifiers. Emails and phones must already be normalized and SHA-256 hashed. Send contact information, mobile IDs, and user IDs in separate requests. Adding members requires `customerMatchTermsAccepted: true`; you may also provide consent and use `validateOnly`. 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 and any immediate field warnings.
