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

# Send Conversion Event

> Documentation for the Send Conversion Event action for Google

![images/google.svg](https://mintcdn.com/morfhealth/EU2WCxuXGIUQcziR/images/google.svg?fit=max\&auto=format\&n=EU2WCxuXGIUQcziR\&q=85\&s=3baaab9ce0dfd622797f2a1acd4c5309)

## Getting Started

Track Google Ads conversion events directly from Morf workflows. Before you begin, you'll need to grant Morf access to your Google Ads account.

### In Google Ads

1. Go to your Google Ads account dashboard — **not** the manager account.
2. Navigate to **Admin > Access and Security** and click **+** to add a new user.

![](https://mintcdn.com/morfhealth/4zxfvotdFqBvkrFr/images/google_ads_add_morf.png?fit=max\&auto=format\&n=4zxfvotdFqBvkrFr\&q=85\&s=92f6fff5df23c90e067e9471226bcb61)

3. Fill in the following:
   * **Email:** `morf-google-ads@morf-prod-5f7d.iam.gserviceaccount.com`
   * **Access Expires:** Never
   * **Account access level:** Standard

### Conversion Action Setup

When using the conversion API to send conversions to Google Ads, you will need to create new `import` conversion actions.

1. In your Google Ads account go to [Tools > Conversions](https://ads.google.com/aw/conversions).
2. Click **+ New Conversion Action** to create a new conversion action.
3. Select **Import**.

   ![](https://mintcdn.com/morfhealth/nPXB9VnqEsa3Ru-D/images/google_ads_setup2.png?fit=max\&auto=format\&n=nPXB9VnqEsa3Ru-D\&q=85\&s=3672b4564b126d38a76e8028b0a37d9e)
4. Select **Other data sources or CRMs** and **Track conversions from clicks**, then click **Continue**.
5. Configure your conversion action within Google Ads. This configuration is the same as any other action in Google Ads.
6. Update the **Count** setting to only count conversion actions once. *This allows you to replay events if there are any issues without double counting conversions.*

   ![](https://mintcdn.com/morfhealth/nPXB9VnqEsa3Ru-D/images/google_ads_setup1.png?fit=max\&auto=format\&n=nPXB9VnqEsa3Ru-D\&q=85\&s=59d8ad490744441dd0cc25df2a3eb701)
7. Get the **Conversion Action ID** for this new action from the `ctId` param in the URL.
   * Example: if the URL is `https://ads.google.com/aw/conversions/detail?ocid=00000000&ctId=576882000`, your Conversion Action ID is `576882000`.

### In the Morf Dashboard

1. Navigate to **Integrations** and add a new integration.
2. Select **Google Ads**.
3. Enter your Google Ads account ID (found in the top-right of your Google Ads dashboard, e.g. `123-456-7891`) — **not** the manager account ID.

You can now use the Send Conversion Event action in your workflows.

### FAQ and Testing

> [accordion] Customer ID and Conversion Action ID should always be different values
>
> **Customer ID** is an account-level ID that is the same for all conversion actions in your Google Ads account.
>
> **Conversion Action ID** is unique to each conversion action and is configured per mapping. It can only be found in the browser URL of your given conversion action under the `ctId` parameter. For example, if the URL is `https://ads.google.com/aw/conversions/detail?ocid=00000000&ctId=576882000`, your Conversion Action ID is `576882000`.

> [accordion] Seeing events coming through
>
> To debug and validate that events are going through, look at the metric **all conv. (at conv. time)** — this shows the number of events coming through. It can take up to 24 hours for events to appear in the Google dashboard.

> [accordion] "The required field was not present., at conversions\[0].gclid" error
>
> Events sent to Google require a `GCLID`, an `email`, or a `phone_number`. If one of those identifiers is not being sent, you may see this error. Double-check that at least one of those fields is being passed on each payload.

# Parameters

**Action** `Parameters`

**parameters**

**Action ID** `string` *required*

This field maps to the destination API `conversionAction` field.

**Event Time** `timing.v1.Timestamp` *required*

This field maps to the destination API `conversionDateTime` field.

**Google Click ID** `string`

`ID` `PII`
This field maps to the destination API `gclid` field.

**Google Braid** `string`

`ID`
This field maps to the destination API `gbraid` field.

**Web Braid** `string`

`ID`
This field maps to the destination API `wbraid` field.

**Ad User Data Consent State** `string`

This field maps to the destination API `consent.adUserData` field.

**Ad Personalization Consent State** `string`

This field maps to the destination API `consent.adPersonalization` field.

**Value** `float64 (double)`

This field maps to the destination API `conversionValue` field.

**Order ID** `string`

This field maps to the destination API `orderId` field.

**Currency** `string`

This field maps to the destination API `currencyCode` field.

**Environment** `string`

This field maps to the destination API `conversionEnvironment` field.

**User Source** `string` *required*

This field maps to the destination API `userIdentifiers.userIdentifierSource` field.

**Email** `string`

`PII`
This field maps to the destination API `userIdentifiers.hashedEmail` field.

**Phone Number** `string`

`PII`
This field maps to the destination API `userIdentifiers.hashedPhoneNumber` field.

**Third Party User ID** `string`

`ID`
This field maps to the destination API `userIdentifiers.thirdPartyUserId` field.

**Debug Enabled** `bool`

This field maps to the destination API `debugEnabled` field.

```json Result Object Example theme={null}
{
  "$result_object_key": {
    "job_id": "1335925420095247666",
    "results": [
      {
        "conversion_action": "customers/123456789/conversionActions/987654321",
        "conversion_date_time": "2025-01-17T10:57:05Z",
        "gbraid": "EAIaIQobChMI4_3o8Yze9QIVjLfICh2QaQjKEAAYASAAEgLvIPD_BwE",
        "gclid": "EAIaIQobChMI4_3o8Yze9QIVjLfICh2QaQjKEAAYASAAEgLvIPD_BwE",
        "user_identifiers": [
          {
            "hashed_email": "6b583232e99af45c3b436798f32800a4dd6f3524624ba6507ed8269b53ce82a3",
            "hashed_phone_number": "b49f9168e8a886ffd61a090b51a26e117717f5f6fa804af49ea67043a2bfa4f0",
            "mobile_id": "1234567890",
            "source": "THIRD_PARTY",
            "third_party_user_id": "1234567890"
          }
        ],
        "wbraid": "CP7ToZIG_7oCFQsHiAkdzZoKWg"
      }
    ]
  }
}
```

```json Result Object Description theme={null}
{
  "$result_object_key": {
    "job_id": "Job ID",
    "results": {
      "conversion_action": "Conversion Action",
      "conversion_date_time": "Conversion DateTime",
      "gbraid": "Google Braid",
      "gclid": "Google Click ID",
      "user_identifiers": {
        "hashed_email": "Hashed Email",
        "hashed_phone_number": "Hashed Phone Number",
        "mobile_id": "Mobile ID",
        "source": "User Identifier Source",
        "third_party_user_id": "Third Party User ID"
      },
      "wbraid": "Web Braid"
    }
  }
}
```

### Result Object Field Details

You can use the result of the action's data as inputs to downstream workflow actions.

Each fetch action requires an object name, which nests the action's result data inside the downstream data context in the workflow. See [Passing Data Between Actions](https://docs.morf.health/docs/knowledge_base/passing_data_between_actions.md) for how to set it and reference the result from downstream nodes.

Here we demonstrate how to refer to this data using the prefix `$result_object_key`.

**GoogleAdsSendConversionEventResponse** `Fetch Action Response Object`

**fields**

**job\_id** `string` *required*

Job ID

```json CEL theme={null}
$result_object_key.job_id
```

```json Example theme={null}
"1335925420095247666"
```

**results** `[]object` *required*

Conversion Event Results

```json CEL theme={null}
$result_object_key.results
```

```json Example theme={null}
[
{
"conversion_action": "customers/123456789/conversionActions/987654321",
"conversion_date_time": "2025-01-17T10:57:05Z",
"gbraid": "EAIaIQobChMI4_3o8Yze9QIVjLfICh2QaQjKEAAYASAAEgLvIPD_BwE",
"gclid": "EAIaIQobChMI4_3o8Yze9QIVjLfICh2QaQjKEAAYASAAEgLvIPD_BwE",
"user_identifiers": [
{
  "hashed_email": "6b583232e99af45c3b436798f32800a4dd6f3524624ba6507ed8269b53ce82a3",
  "hashed_phone_number": "b49f9168e8a886ffd61a090b51a26e117717f5f6fa804af49ea67043a2bfa4f0",
  "mobile_id": "1234567890",
  "source": "THIRD_PARTY",
  "third_party_user_id": "1234567890"
}
],
"wbraid": "CP7ToZIG_7oCFQsHiAkdzZoKWg"
}
]
```

**results.map(x, x.gclid)** `[]string` *required*

Mapped array of: Google Click ID

```json CEL theme={null}
$result_object_key.results.map(x, x.gclid)
```

```json Example theme={null}
[
"EAIaIQobChMI4_3o8Yze9QIVjLfICh2QaQjKEAAYASAAEgLvIPD_BwE"
]
```

**results.map(x, x.gbraid)** `[]string` *required*

Mapped array of: Google Braid

```json CEL theme={null}
$result_object_key.results.map(x, x.gbraid)
```

```json Example theme={null}
[
"EAIaIQobChMI4_3o8Yze9QIVjLfICh2QaQjKEAAYASAAEgLvIPD_BwE"
]
```

**results.map(x, x.wbraid)** `[]string` *required*

Mapped array of: Web Braid

```json CEL theme={null}
$result_object_key.results.map(x, x.wbraid)
```

```json Example theme={null}
[
"CP7ToZIG_7oCFQsHiAkdzZoKWg"
]
```

**results.map(x, x.user\_identifiers)** `[]bool` *required*

Mapped array of: User Identifiers

```json CEL theme={null}
$result_object_key.results.map(x, x.user_identifiers)
```

```json Example theme={null}
[
[
{
"hashed_email": "6b583232e99af45c3b436798f32800a4dd6f3524624ba6507ed8269b53ce82a3",
"hashed_phone_number": "b49f9168e8a886ffd61a090b51a26e117717f5f6fa804af49ea67043a2bfa4f0",
"mobile_id": "1234567890",
"source": "THIRD_PARTY",
"third_party_user_id": "1234567890"
}
]
]
```

**results.map(x, x.conversion\_action)** `[]string` *required*

Mapped array of: Conversion Action

```json CEL theme={null}
$result_object_key.results.map(x, x.conversion_action)
```

```json Example theme={null}
[
"customers/123456789/conversionActions/987654321"
]
```

**results.map(x, x.conversion\_date\_time)** `[]timing.v1.Timestamp` *required*

Mapped array of: Conversion DateTime

```json CEL theme={null}
$result_object_key.results.map(x, x.conversion_date_time)
```

```json Example theme={null}
[
"2025-01-17T10:57:05Z"
]
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.