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

# How to Set Up Google Ads Server-Side Conversions API in Upstack Data

> Connect Google Ads with OAuth and map your tracked events to conversion actions so Upstack forwards purchases server-side via the Google Ads Conversions API — independent of the browser pixel.

<Tip>
  **Quick Summary**

  * Open your Google Ads destination in Upstack and turn on **Enable Conversion API**.
  * Click **Connect Google Ads** and grant Upstack offline access during the Google consent screen.
  * Select the **Google Ads account** you want to forward conversions to.
  * In **Event Conversion Mappings**, link each tracked event to a conversion action — use **Create & Link** to create dedicated Upstack conversion actions automatically.
  * Save the configuration and confirm the destination shows **Healthy**.
</Tip>

## What the Conversions API path adds

The browser pixel (Conversion ID and Conversion Label) tracks your **primary** conversion from the visitor's browser. The server-side **Conversions API** runs alongside it: Upstack sends each tracked event directly to Google Ads server-to-server, attached to its own dedicated conversion action.

Server-side delivery reaches Google even when the browser pixel is blocked by ad blockers, ITP, or cookie restrictions, and it carries the original click identifier (`gclid`, `gbraid`, or `wbraid`) plus SHA-256 hashed customer data for Enhanced Conversions match-rate uplift.

<Note>
  The Conversions API and the browser pixel run **independently and in parallel**. Enabling server-side forwarding does not change or disable your pixel — the pixel keeps tracking your primary conversion using the **Conversion ID** on the destination.
</Note>

## Prerequisites

Before you start, you need:

* An active Upstack Data account ([sign up](https://app.upstackdata.com))
* An existing **Google Ads destination** in Upstack with the **Conversion ID** and **Pixel ID** already filled in. If you haven't set those yet, follow [How to Configure Google Ads Destination in Upstack Data →](/guides/google-ads/how-to-configure-google-ads-destination-in-upstack-data) first.
* **Admin** or **Manager** access to a **Google Ads** account, with permission to create or edit **conversion actions**
* The Google account you sign in with during OAuth must have access to the Google Ads account you want to forward to (including the manager/MCC account, if you use one)

## Setup Steps

<Steps>
  <Step title="Open your Google Ads destination">
    Sign in to Upstack Data at [app.upstackdata.com](https://app.upstackdata.com), navigate to **Events Destination** ([app.upstackdata.com/pixel/event-destinations](https://app.upstackdata.com/pixel/event-destinations)), and open your **Google Ads** destination.

    If you haven't created the destination yet, add it first using [How to Configure Google Ads Destination in Upstack Data →](/guides/google-ads/how-to-configure-google-ads-destination-in-upstack-data).
  </Step>

  <Step title="Enable the Conversion API">
    Turn on the **Enable Conversion API** toggle on the destination. The server-side connection panel appears below the pixel fields.
  </Step>

  <Step title="Connect Google Ads with OAuth">
    In the **Connect Google Ads** card, click **Connect Google Ads**. A Google consent screen opens.

    Sign in with a Google account that has access to your Google Ads account and grant the requested permissions.

    <Warning>
      You must grant **offline access** so Google returns a refresh token. If you skip or revoke that permission, Upstack shows the error *"Google did not return a refresh token. Make sure you grant offline access."* — reconnect and accept all requested scopes.
    </Warning>

    On success the panel updates to **Google Ads Server-Side Connected** with the connection timestamp.
  </Step>

  <Step title="Select your Google Ads account">
    Under **Google Ads Account**, choose the account you want to forward conversions to. The dropdown lists every account your connected Google login can access, shown as **Account Name (10-digit ID)**.

    <Note>
      If you manage accounts through a manager (MCC) account, pick the individual advertising account that owns the conversions — not the manager account itself.
    </Note>
  </Step>

  <Step title="Map events to conversion actions">
    The **Event Conversion Mappings** table loads pre-filled with common events so you can map them quickly:

    * **Purchase**
    * **NC Purchase** (new customer purchase)
    * **Subscription Initial Purchase**
    * **Subscription Recurring Purchase**
    * **Add to Cart**
    * **Initiate Checkout**

    For each row, set the **Conversion Action** the event should report to:

    * **Pick an existing action** from the dropdown, or
    * Choose **+ Create new in Google Ads** to create a dedicated conversion action for that event (named *"{Event} - Upstack (Server-side)"*).

    Use **+ Add Mapping** to add a row for a custom event (type the event name into the event combobox), and the trash icon to remove any event you don't want to forward.

    <Tip>
      To set up everything at once, fill in the event names you want and click **Create & Link**. Upstack creates a dedicated Google Ads conversion action for every row that doesn't have one yet and links it for server-side forwarding. Remove any rows you don't need **before** clicking it.
    </Tip>
  </Step>

  <Step title="Save the configuration">
    Save the destination. You need at least one complete mapping (an event name **and** a conversion action) for server-side forwarding to start.

    <Note>
      If no row has both an event and a conversion action, Upstack shows *"No server-side events will be forwarded yet."* The pixel keeps running regardless — only server-side forwarding is paused until you complete a mapping.
    </Note>
  </Step>
</Steps>

## Promote new conversion actions carefully

Conversion actions that Upstack creates start as **secondary** (observation-only) goals. As with any new Google Ads conversion, run them alongside your existing setup for **7–14 days** and confirm the volume reconciles before promoting one to **primary**. See [How to Enable the Google Ads Upstack Purchase Goal and Switch to Primary Optimization Goal →](/guides/google-ads/how-to-enable-the-google-ads-upstack-purchase-goal-and-switch-to-primary-optimization-goal).

## Verify the Setup

After saving:

* The Google Ads destination should show **Healthy** under **Events Destination** in the Upstack dashboard.
* Place a test order on your store, then check **Goals → Conversions → Summary** in Google Ads within 24–48 hours and confirm the mapped conversion action records the event.

## FAQ & Troubleshooting

<AccordionGroup>
  <Accordion title="Do I still need the pixel Conversion ID and Pixel ID?">
    Yes. The Conversion ID and Pixel ID power the browser pixel, which tracks your primary conversion and remains required on the destination. The Conversions API is an additional server-side path that forwards events to their own conversion actions — it does not replace the pixel.
  </Accordion>

  <Accordion title="Why does Upstack create separate conversion actions instead of using my pixel conversion?">
    Sending server-side events into the same conversion the pixel fires would mix two sources into one goal and make deduplication and quality comparison impossible. Dedicated server-side conversion actions keep the data clean and let you compare them against your existing goals before promoting any to primary.
  </Accordion>

  <Accordion title="I got an error that the conversion action name already exists.">
    Google reserves the names of conversion actions even after they're removed, so creating *"Purchase - Upstack (Server-side)"* can fail if one existed before (*"A Google Ads conversion action named … already exists in this account"*). Give the action a different display name and try again.
  </Accordion>

  <Accordion title="A conversion action shows '— removed in Google Ads'.">
    The action was deleted on the Google Ads side after it was mapped in Upstack. Pick a different existing action or create a new one for that event, then save.
  </Accordion>

  <Accordion title="I use a manager (MCC) account — does that work?">
    Yes. Connect with a Google login that can access the account through the manager account, then select the individual advertising account that owns the conversions. Upstack handles the manager-account context when it forwards events.
  </Accordion>

  <Accordion title="How do I turn off server-side forwarding?">
    Click **Disconnect** in the connection panel, or turn off **Enable Conversion API**. This clears the stored OAuth connection, the selected account, and all event mappings. The browser pixel keeps tracking your primary conversion.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="Configure destination" icon="sliders" href="/guides/google-ads/how-to-configure-google-ads-destination-in-upstack-data">
    Set the pixel Conversion ID and Pixel ID on the Google Ads destination.
  </Card>

  <Card title="Enable primary goal" icon="circle-check" href="/guides/google-ads/how-to-enable-the-google-ads-upstack-purchase-goal-and-switch-to-primary-optimization-goal">
    Promote a conversion to primary so Smart Bidding optimizes against it.
  </Card>

  <Card title="Conversion API forwarding" icon="lightbulb" href="/concepts/conversion-api-forwarding">
    How Upstack Signal forwards events to ad platforms via server-to-server APIs.
  </Card>

  <Card title="Events not reaching destination" icon="wrench" href="/troubleshooting/events-not-reaching-destination">
    End-to-end diagnostic guide when events aren't arriving at any destination.
  </Card>
</CardGroup>
