This guide provides a list of the different types of conversion actions you can
create using the Google Ads API, and information on how these map to the Google Ads web
interface.

## Choose the right conversion action type

To help select the correct conversion action type and setup guide for your
integration, use the following decision path:

1. **Where does the conversion event occur?**

   - **In the offline world** (for example, at your office, business location, or over the phone): Go to [**step 2**](https://developers.google.com/google-ads/api/docs/conversions/categories#step-2).
   - **Directly on your website** (for example, website purchases, sign-ups, or form submissions): Go to [**step 3**](https://developers.google.com/google-ads/api/docs/conversions/categories#step-3).
   - **Within a mobile app** : Go to [**step 4**](https://developers.google.com/google-ads/api/docs/conversions/categories#step-4).
   - **Over a phone call dialed directly from your ads** : Use [**Calls from
     ads (`AD_CALL`)**](https://developers.google.com/google-ads/api/docs/conversions/categories#ad-call) (using `CallAsset`).
2. **Offline Conversions:**

   - *Is it a phone call?*

     - **Yes:** Use

       [**Call Conversions Import
       (`UPLOAD_CALLS`)**](https://developers.google.com/google-ads/api/docs/conversions/upload-calls) to track
       call outcomes.
   - *Is it a physical store sale?*

     - **Yes:** Use

       [**Store Sales Conversions
       (`STORE_SALES`)**](https://developers.google.com/google-ads/api/docs/conversions/upload-store-sales-transactions).
   - *Is it an offline sale or lead progression resulting from a website
     visit?*

     - **Yes:** Use **Enhanced Conversions for Leads** using the [Data
       Manager API](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline) (recommended), or see [Manage offline
       click conversions](https://developers.google.com/google-ads/api/docs/conversions/upload-offline) for existing Google Ads API integrations. *(Note: Starting June 15, 2026, uploading click
       conversions using [`UploadClickConversions`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionUploadService/UploadClickConversions)
       is restricted to developer tokens that have previously uploaded
       offline click conversions).*
3. **Online (Website) Conversions:**

   - *Do you want to track page loads (purchases, receipts) or user clicks?*
     - **Yes:** Use [**Website Conversions**](https://developers.google.com/google-ads/api/docs/conversions/categories#online-website-conversions) with the tag snippet set to `WEBPAGE` or `WEBPAGE_ONCLICK`.
   - *Do you want to track calls prompted by a phone number listed on your*
     *website?*

     - **Track actual call durations?**

       - **Yes:** Use

         [**Calls from a website
         (`WEBSITE_CALL`)**](https://developers.google.com/google-ads/api/docs/conversions/categories#website-call) with a
         dynamic Google forwarding number and tag event snippet.
       - **No (just track button/link clicks on mobile site)?** Use

         [**Clicks on your mobile phone number
         (`CLICK_TO_CALL`)**](https://developers.google.com/google-ads/api/docs/conversions/categories#click-to-call).
4. **Mobile App Conversions:**

   - *Is tracking installs or purchases from the Google Play Store
     sufficient?*
     - **Yes:** Use [**App conversions**](https://developers.google.com/google-ads/api/docs/conversions/categories#app-conversions) (`GOOGLE_PLAY_DOWNLOAD` or `GOOGLE_PLAY_IN_APP_PURCHASE`).
   - *Do you track app actions using Google Analytics (GA4) or third-party
     app*
     *analytics?*

     - **Yes:** Use

       [**Firebase and third-party app
       analytics**](https://developers.google.com/google-ads/api/docs/conversions/categories#firebase-third-party-app-analytics) (by enabling
       `FIREBASE_*` or `THIRD_PARTY_*` conversion actions).

## Offline conversions

> [!WARNING]
> **Warning:** Starting **June 15, 2026** , [`UploadClickConversions`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionUploadService/UploadClickConversions) requests will fail if the developer token hasn't previously sent requests to upload offline conversions or enhanced conversions for leads. Use the [Data Manager API](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline) instead; see [Feature deprecations](https://developers.google.com/google-ads/api/docs/deprecations#feature-deprecations) for details.

> [!NOTE]
> **Note:** Developer tokens have since been deprecated in favor of Google Cloud projects, but this historical access restriction remains in effect.

[Offline conversions](https://support.google.com/google-ads/answer/2998031) help you track conversion events that
occur in the offline world, such as at your office, business location, or over
the phone.

The following table shows the equivalent
[`ConversionActionType`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionTypeEnum.ConversionActionType) API parameters to use for each
**Source** in the Google Ads web interface and a link to the documentation for each
specific conversion action type:

| Conversion Action Type | Google Ads Source | API Setup Guide |
|---|---|---|
| `UPLOAD_CLICKS` | Track conversions from clicks and enhanced conversions for leads | Use the [Data Manager API](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline) (recommended) or see [Manage offline click conversions](https://developers.google.com/google-ads/api/docs/conversions/upload-offline) for existing Google Ads API integrations |
| `UPLOAD_CALLS` | Track conversions from calls | [Import Call Conversions Guide](https://developers.google.com/google-ads/api/docs/conversions/upload-calls) |
| `STORE_SALES` | Track conversions from store sales | See [Store sales: import to conversion action with reporting](https://developers.google.com/google-ads/api/docs/conversions/categories#store-sales) for details |

## Online (website) conversions

A website conversion lets you track website actions such as online sales, link
clicks, page views, and sign-ups.

To track conversions on your website, you must create a
[`ConversionAction`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAction) with the
[`ConversionActionType`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionTypeEnum.ConversionActionType) set to `WEBPAGE`, and add a code
snippet called a [**tag**](https://support.google.com/google-ads/answer/7548399) to the conversion page on your website.

The [`ConversionAction`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAction) encompasses several types of website
conversions, distinguished within the API by the [`type`](https://developers.google.com/google-ads/api/reference/rpc/v26/TagSnippet#type) field in each
[`TagSnippet`](https://developers.google.com/google-ads/api/reference/rpc/v26/TagSnippet) listed in the [`tag_snippets`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAction#tag_snippets) field of
a `ConversionAction`.

A [`TagSnippet`](https://developers.google.com/google-ads/api/reference/rpc/v26/TagSnippet) provides the tracking code that must be included in
your website in order to track your conversion actions.
**Website** and **Phone number click** conversions require the
[`event_snippet`](https://developers.google.com/google-ads/api/reference/rpc/v26/TagSnippet#event_snippet), which should be placed on web pages that
indicate a conversion action such as a checkout confirmation or lead form
submission page, and [`global_site_tag`](https://developers.google.com/google-ads/api/reference/rpc/v26/TagSnippet#global_site_tag), which must be
installed on every page of your website. You can retrieve both of these
attributes with the [`ConversionActionService`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionService). Check
out our [Help Center](https://support.google.com/google-ads/answer/7548399) for more information on how to tag your pages.

The following table shows the equivalent API parameters to use for each
**Source** in the Google Ads web interface:

| [Tracking Code Type](https://developers.google.com/google-ads/api/reference/rpc/v26/TrackingCodeTypeEnum.TrackingCodeType) | Google Ads Source |
|---|---|
| `WEBPAGE` | Website, Website (Google Analytics (GA4)) |
| `WEBPAGE_ONCLICK` | Website, Website (Google Analytics (GA4)) |
| `CLICK_TO_CALL` | Phone number clicks |

> [!NOTE]
> **Note:** `WEBPAGE` and `WEBPAGE_ONCLICK` have the same sources as **Website** . The difference is in the [**Event snippet**](https://support.google.com/google-ads/answer/7548399#Eventsnippet) option in the web interface. `WEBPAGE` corresponds to **Page load** for this option, whereas `WEBPAGE_ONCLICK` corresponds to **Click** . See this [Help Center](https://support.google.com/google-ads/answer/6331304#zippy=%2Cset-up-conversion-tracking-using-the-google-tag) article for more information.

## App conversions

An app conversion lets you track mobile app installs or in-app purchases from
the [Google Play Store](https://support.google.com/google-ads/answer/6255257).

The following table shows the equivalent
[`ConversionActionType`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionTypeEnum.ConversionActionType) API parameters to use for each
**Source** in the Google Ads web interface:

| Conversion Action Type | Google Ads Source |
|---|---|
| `GOOGLE_PLAY_DOWNLOAD` | Google Play \> Installs |
| `GOOGLE_PLAY_IN_APP_PURCHASE` | Google Play \> In-app purchases |

To track other mobile app actions using
[Google Analytics 4 properties](https://support.google.com/google-ads/answer/13823256) or [third-party
app analytics](https://support.google.com/google-ads/answer/7382633), see [Additional Conversion Action
Types](https://developers.google.com/google-ads/api/docs/conversions/categories#additional-conversion-action-types).

> [!NOTE]
> **Note:** If you're also specifying the [`category`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAction#category) field, set it to [`DOWNLOAD`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionCategoryEnum.ConversionActionCategory#download) only if the conversion type is [`GOOGLE_PLAY_DOWNLOAD`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionTypeEnum.ConversionActionType#google_play_download).

## Phone call conversions

[Phone call conversion tracking](https://support.google.com/google-ads/answer/6100664) lets you track
calls from ads, calls to a number on your website, and clicks on numbers on
mobile sites.

The following table shows the equivalent
[`ConversionActionType`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionTypeEnum.ConversionActionType) API parameters to use for each
**Source** in the Google Ads web interface:

| Conversion Action Type | Google Ads Source |
|---|---|
| `AD_CALL` | Calls from ads using call extensions or call-only ads |
| `WEBSITE_CALL` | Calls to a phone number on your website |
| `CLICK_TO_CALL` | Clicks on a number on your mobile website |

### `AD_CALL`

An [`AD_CALL`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionTypeEnum.ConversionActionType#ad_call) conversion action appears as a
[**Calls from ads**](https://support.google.com/google-ads/answer/6095882) conversion in the Google Ads web interface.
After you create your `AD_CALL` conversion action, specify its resource name in
the `call_conversion_action` field when you create a [`CallAsset`](https://developers.google.com/google-ads/api/reference/rpc/v26/CallAsset).
[Call assets](https://support.google.com/google-ads/answer/2453991) let you show a phone number directly in your ads.

A call is reported as a conversion if it lasts longer than a specified duration.
The default is 60 seconds.

### `WEBSITE_CALL`

A [`WEBSITE_CALL`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionTypeEnum.ConversionActionType#website_call) conversion action appears as a [**Calls from a
website**](https://support.google.com/google-ads/answer/6095883) conversion in the Google Ads web interface.

Unlike [`AD_CALL`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionTypeEnum.ConversionActionType#ad_call), this tracker requires
[`event_snippet`](https://developers.google.com/google-ads/api/reference/rpc/v26/TagSnippet#event_snippet) and [`global_site_tag`](https://developers.google.com/google-ads/api/reference/rpc/v26/TagSnippet#global_site_tag) to be
added to your website to retrieve the
[dynamic Google forwarding number](https://support.google.com/google-ads/answer/2382961) for call
tracking on numbers listed on your website. In addition, you must set up a [call
asset](https://support.google.com/google-ads/answer/2453991) and

[link it at the customer, campaign, or ad group
level](https://developers.google.com/google-ads/api/docs/assets/overview).

### `CLICK_TO_CALL`

A [`CLICK_TO_CALL`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionTypeEnum.ConversionActionType#click_to_call) conversion action appears as a [**Clicks on
your number on your mobile website**](https://support.google.com/google-ads/answer/6095878) conversion in the
Google Ads web interface.

The [`CLICK_TO_CALL`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionTypeEnum.ConversionActionType#click_to_call) type differs from the [`AD_CALL`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionTypeEnum.ConversionActionType#ad_call)
type in that it does not track actual phone calls. Instead, `CLICK_TO_CALL` only
tracks clicks on a phone number from a mobile device. This is useful when you're
unable to use a Google forwarding number for tracking phone calls.

## Enhanced conversions

> [!WARNING]
> **Warning:** Starting **June 15, 2026** , [`UploadClickConversions`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionUploadService/UploadClickConversions) requests will fail if the developer token hasn't previously sent requests to upload offline conversions or enhanced conversions for leads. Use the [Data Manager API](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline) instead; see [Feature deprecations](https://developers.google.com/google-ads/api/docs/deprecations#feature-deprecations) for details.

> [!NOTE]
> **Note:** Developer tokens have since been deprecated in favor of Google Cloud projects, but this historical access restriction remains in effect.

[Enhanced conversions](https://support.google.com/google-ads/answer/9888656) help you to improve the accuracy of
your conversion measurement by supplementing your existing conversion tags with
first-party conversion data, like email address, name, home address, and phone
number.

The following table shows the equivalent API parameters to use for each
**Enhanced Conversion Type**:

| Conversion Action Type | Enhanced Conversion Type | API Setup Guide |
|---|---|---|
| `UPLOAD_CLICKS` | **Enhanced conversions for leads** Improves measurement of offline transactions that came from a website lead or visitor | Use the [Data Manager API](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline) (recommended) or see [Manage offline click conversions](https://developers.google.com/google-ads/api/docs/conversions/upload-offline) for existing Google Ads API integrations |
| `WEBPAGE` | **Enhanced conversions for web** Improves measurement of online conversions | [API Setup Guide](https://developers.google.com/google-ads/api/docs/conversions/upload-online) |

## Additional conversion action types

The Google Ads API makes additional types of conversion actions available in reports,
but may limit or prohibit creation or modification of those actions. You can
query your conversion actions and their types using `GoogleAdsService`:

    SELECT
      conversion_action.id,
      conversion_action.name,
      conversion_action.type,
      conversion_action.status
    FROM conversion_action

### SKAdNetwork conversions

If you run [iOS App campaigns](https://support.google.com/google-ads/answer/6247380) and have implemented
[SKAdNetwork](https://support.google.com/google-ads/answer/14892597), you can access SKAdNetwork data provided to Google
at the `Customer` and `Campaign` level using the following resources:

| Report field | Description |
|---|---|
| `metrics.sk_ad_network_installs` | The number of installs reported by Apple. This metric can only be segmented by any combination of `segments.sk_ad_network_conversion_value` and date-related segments. |
| `metrics.sk_ad_network_total_conversions` | The total number of conversions, including installs and other types of conversions reported by Apple. This metric can only be segmented by SKAdNetwork-related segments and date-related segments. |
| `segments.sk_ad_network_ad_event_type` | The type of event that occurred for a particular conversion. |
| `segments.sk_ad_network_attribution_credit` | How attribution is credited for a particular conversion. |
| `segments.sk_ad_network_fine_conversion_value` | The value of a conversion reported by Apple. This segment cannot be applied to any metrics other than `metrics.sk_ad_network_installs`, `metrics.sk_ad_network_total_conversions`, and can only be combined with date-related segments. A value of `0` is returned if Apple reports a value of `0` and no value otherwise. Check the [field presence](https://protobuf.dev/programming-guides/field_presence/) to distinguish between the two cases. |
| `segments.sk_ad_network_coarse_conversion_value` | The coarse value for an individual conversion. |
| `segments.sk_ad_network_postback_sequence_index` | The position of the postback, in sequence, for a particular conversion. |
| `segments.sk_ad_network_source_app.sk_ad_network_source_app_id` | The app id where the ad that drove the iOS Store Kit Ad Network install was shown. |
| `segments.sk_ad_network_source_domain` | The website where the ad that drove the iOS Store Kit Ad Network install was shown. A null value means this segment is not applicable---for example, a non-iOS campaign---or was not present in any postbacks sent by Apple. |
| `segments.sk_ad_network_source_type` | The source type where the ad that drove the iOS Store Kit Ad Network install was shown. A null value means this segment is not applicable---for example, non-iOS campaign---or that neither the source domain nor source app were present in any postbacks sent by Apple. |
| `segments.sk_ad_network_user_type` | The type of user that generated a particular conversion. |
| `segments.sk_ad_network_redistributed_fine_conversion_value` | The conversion values in this segment include null values that were redistributed to conversion values. This segment represents the sum of observed fine conversion values returned by Apple and modeled null values from Google. |
| `segments.sk_ad_network_version` | The iOS Store Kit Ad Network API version that was used. |

### Google Analytics

Conversions from a
[linked Google Analytics property](https://support.google.com/google-ads/answer/2375435) have one of
the following [`type`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAction#type) values:

- GA4 property conversion:

  - `GOOGLE_ANALYTICS_4_CUSTOM`
  - `GOOGLE_ANALYTICS_4_PURCHASE`

  You can also retrieve the GA4 property ID, property name, and event name
  from the [`google_analytics_4_settings`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAction#google_analytics_4_settings)
  field.

You can make the following changes to a GA4 property conversion:

- Import the conversion from your GA4 property into your Google Ads account by modifying its `status` field from `HIDDEN` to `ENABLED`.
- Modify its `primary_for_goal` and `category` fields to [indicate how it
  should impact Google Ads bidding and reports](https://developers.google.com/google-ads/api/docs/conversions/goals/overview).
- Update its `name` or `value_settings`.
- Remove the conversion from your Google Ads account using a `remove` operation.

Any attempt to modify other attributes of an imported GA4 conversion or
*any* attributes of an imported Universal Analytics conversion results in a
`MUTATE_NOT_ALLOWED` error. You can only make those changes using the Google Ads UI.

### Firebase and third-party app analytics

To import [third-party app analytics](https://support.google.com/google-ads/answer/7382633) or
[Firebase](https://support.google.com/google-ads/answer/6366292) conversions, change the [`status`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAction#status) of the
`ConversionAction` from `HIDDEN` to `ENABLED` using the `mutate` method of
[`ConversionActionService`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionActionService). Updating the
[`app_id`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAction#app_id) is not supported for these conversion actions.

- `FIREBASE_ANDROID_APP_AD_IMPRESSION`
- `FIREBASE_ANDROID_FIRST_OPEN`
- `FIREBASE_ANDROID_IN_APP_PURCHASE`
- `FIREBASE_ANDROID_CUSTOM`
- `FIREBASE_IOS_APP_AD_IMPRESSION`
- `FIREBASE_IOS_FIRST_OPEN`
- `FIREBASE_IOS_IN_APP_PURCHASE`
- `FIREBASE_IOS_CUSTOM`
- `THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN`
- `THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE`
- `THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM`
- `THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN`
- `THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE`
- `THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM`

### Store sales: import to conversion action with reporting

> [!IMPORTANT]
> **Important:** [Upgrade your store sales
> workflows](https://developers.google.com/data-manager/api/devguides/events/google-ads/store-sales/upgrade) to the Data Manager API for an improved developer experience and access to additional features. We don't recommend implementing new store sales workflows using the Google Ads API.

Although you cannot create `STORE_SALES` or `STORE_SALES_DIRECT_UPLOAD`
conversion actions using the Google Ads API, the API does support [importing store
sales transactions](https://developers.google.com/google-ads/api/docs/conversions/upload-store-sales-transactions).

- `STORE_SALES`
- `STORE_SALES_DIRECT_UPLOAD`

### Read-only conversion action types

The following conversion action types are read-only in the Google Ads API and provided
for reporting purposes.

- `ANDROID_APP_PRE_REGISTRATION`
- `ANDROID_INSTALLS_ALL_OTHER_APPS`
- `FLOODLIGHT_ACTION`
- `FLOODLIGHT_TRANSACTION`
- `GOOGLE_HOSTED`
- `LEAD_FORM_SUBMIT`
- `SALESFORCE`
- `SEARCH_ADS_360`
- `SMART_CAMPAIGN_AD_CLICKS_TO_CALL`
- `SMART_CAMPAIGN_MAP_CLICKS_TO_CALL`
- `SMART_CAMPAIGN_MAP_DIRECTIONS`
- `SMART_CAMPAIGN_TRACKED_CALLS`
- `STORE_VISITS`
- `WEBPAGE_CODELESS`

### Unknown

If your Google Ads account includes other types of conversion actions, you may find
that queries and reports return conversion actions where the
[`ConversionAction.type`](https://developers.google.com/google-ads/api/reference/rpc/v26/ConversionAction#type) is `UNKNOWN`. The API does not support managing
these conversion actions, but returns them in reports in order to provide
complete results for key conversion metrics such as `metrics.conversions` and
`metrics.conversions_value`.