> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt # Send PostHog conversion events to Google Ads Canonical URL: https://posthog.com/docs/data-pipelines/destinations/google-ads > **Cloud region:** This page uses US Cloud hosts. For an EU Cloud project, use `https://eu.i.posthog.com` instead of `https://us.i.posthog.com` (ingestion host), and use `https://eu.posthog.com` instead of `https://us.posthog.com` or `https://app.posthog.com` (app host for links). ## On this page - [Installation](#installation) - [Configuration](#configuration) - [FAQ](#faq) > **IMPORTANT:** This is an experimental destination that we do not provide official support for. Check out [this page](https://github.com/PostHog/posthog/issues/27712#issuecomment-2615849798) for more details on installing the integration. You'll also need access to the relevant Google Ads account. ## Installation 1. In PostHog, click the [Data pipeline](https://app.posthog.com/data-management/destinations) tab in the left sidebar. 2. Click the [Destinations](https://app.posthog.com/data-management/destinations?search=googleads) tab. 3. Search for **Google Ads Conversions** and click **\+ Create**. 4. Connect your Google account at the configuration step. 5. Select your Customer ID. 6. In Google Ads, go to [Goals settings](https://ads.google.com/aw/conversions/customersettings), enable enhanced conversions, set the method to `Google Ads API`, and click **Save**. 7. Create a conversion action inside Google Ads 1. Under [Goals > Conversions > Summary](https://ads.google.com/aw/conversions), you'll need to create a conversion action 2. Click **New conversion action** 3. Enable **Conversions offline** and click **Add data source** 1. Click **Skip this step and set up a data source later** 2. Click **Done** 4. Select the conversion type that you want to capture 5. Click **Add a conversion action** and select **Add data source later** 6. Click **Settings**, edit the **Conversion name** and click **Done** 7. Click **Save and continue** and **Finish** 8. Back in PostHog, select the conversion action in the destination configuration. 9. Set up your event and property filters to remove unnecessary events. You only want to send events that are conversions. Filter out unrelated events or ones missing data like `gclid`. 10. Press **Create & enable**, test your destination, and then watch your conversions get sent to Google Ads. ## Configuration | Option | Description | | --- | --- | | `Google Ads account` **Type:** integration **Required:** True | | | `Customer ID` **Type:** integration\_field **Required:** True | ID of your Google Ads Account. This should be 10-digits and in XXX-XXX-XXXX format. | How to create this via the API Using our REST API you can create this destination like so: ```bash # Create a new destination curl --location 'https://us.i.posthog.com/api/environments/:project_id/hog_functions' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer ' \ --data '{ "type": "destination", "name": "Google Ads Conversions", "inputs": { "oauth": { "value": "" }, "customerId": { "value": "" } }, "enabled": true, "template_id": "template-google-ads" }' ``` ## FAQ ### Why is person data missing from my ad destination events? Ad destinations filter the realtime event stream. This means they use person data as it exists at the exact moment the event is processed, not data added later. A common issue occurs when a backend event triggers the destination, but person properties are set by a frontend `identify` call that happens afterward. If the identify call merges with the person *after* the trigger event is processed, the destination won't have access to that data. To fix this, either: 1. **Include the data directly in the event** that triggers the destination (e.g., pass email, phone, or other required properties as event properties) 2. **Ensure the identify call happens before** the events you want to send to the ad platform ### Why aren't my conversions appearing inside of Google Ads? Note that it might take around 6-48 hours for Google to process conversions and make them visible inside of Google Ads. Additionally you'll need to wait around 6 hours before new conversion goals will accept incoming data. ### Is the source code for this destination available? PostHog is open-source and so are all the destination on the platform. The [source code](https://github.com/PostHog/posthog/blob/master/nodejs/src/cdp/templates/_destinations/google_ads/google.template.ts) is available on GitHub. ### Who maintains this? This is maintained by PostHog. If you have issues with it not functioning as intended, please [let us know](https://us.posthog.com/#panel=support%3Asupport%3Aapps%3A%3Atrue)! ### What if I have feedback on this destination? We love feature requests and feedback. Please [tell us what you think](https://us.posthog.com/#panel=support%3Afeedback%3Aapps%3Alow%3Atrue). ### What if my question isn't answered above? We love answering questions. Ask us anything via [our community forum](https://posthog.com/questions.md).