> ## 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 →](/destinations/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)
* **Enhanced conversions** switched on in the Google Ads account. Step 2 below shows what to check

## 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 →](/destinations/google-ads/how-to-configure-google-ads-destination-in-upstack-data).
  </Step>

  <Step title="Check enhanced conversions on the Google Ads account">
    In Google Ads, go to **Goals → Conversions → Settings** and open the **Enhanced conversions** section. Two things need to be true before Upstack can deliver anything:

    1. The **customer data terms** are accepted. If you see a prompt to review and agree, accept it.
    2. **Enhanced conversions for leads** is turned on.

    Both are one-time account settings and both are required, even if you only send purchases. Upstack attaches hashed email, phone, and address to every server-side event, and Google refuses the whole upload if either is missing.

    <Note>
      Using a manager (MCC) account? Check the account that owns the conversion actions, not the manager account.
    </Note>
  </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 →](/destinations/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="I finished setup but no conversions are arriving">
    Re-check step 2. The most common cause is the Google Ads account missing one of the two enhanced conversions settings. Google rejects the whole upload rather than individual events, so an account that is not fully set up receives nothing at all rather than a reduced number of conversions.
  </Accordion>

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

    They are only required while the browser pixel is on, which is the default. If you set the destination’s **Tracking Method** to **Server**, both fields become optional. See [Server-Only Destinations](/concepts/server-only-destinations).
  </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="/destinations/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="/destinations/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>
