AdPilot Conversion API Setup
Conversion tracking is a launch-readiness requirement for AdPilot. Pixel-only or dashboard-only tracking is not enough for paid acquisition monitoring because AdPilot needs a verified server-side event path before it can optimize, monitor CPA/ROAS, or trust no-conversions states.
Use this guide to prepare the provider-specific tracking pieces that setup verification expects before AdPilot launches or optimizes campaigns.
What You Need
| Requirement | Why it matters |
|---|---|
| Meta Business access | Lets you select the Business, ad account, Pixel ID, and dataset. |
| Meta Pixel installed on the landing site | Provides browser-side event collection and dedupe pairing for Meta. |
| Meta server-side CAPI endpoint | Sends the same conversion event from your server or approved event source. |
| Google Ads customer ID | Routes Google conversion events to the correct customer account. |
| Google conversion action details | Identifies the conversion action AdPilot should report against. |
LinkedIn rw_conversions scope | Allows LinkedIn conversion-rule management and Conversions API event delivery. |
| LinkedIn conversion rule details | Identifies the LinkedIn conversion AdPilot should report against. |
| Conversion event name | Tells AdPilot what to optimize toward, such as signup, trial_start, lead, or purchase. |
| Consent handling | Blocks events that cannot legally be sent to Meta. |
| Privacy policy and source URL | Lets AdPilot verify the event source and compliance context. |
Meta Pixel And CAPI Requirements
Install the Meta Pixel on the landing page and every page that can trigger the configured conversion event.
The Pixel event should include:
- The same event name configured in AdPilot.
- A stable
event_idthat your server-side CAPI event also uses for dedupe. - The landing page URL as the event source.
fbpandfbcbrowser identifiers when available and allowed by consent.- Value and currency for revenue events when applicable.
Keep the Pixel active even when you send CAPI events. Meta uses the Pixel and CAPI pair to dedupe events and improve match quality. Pixel ID plus server-side CAPI verification are required before approving Meta spend.
Google Conversion Requirements
Google Ads conversion delivery requires:
- The selected Google Ads customer ID.
- Login customer ID or MCC access when the account is managed through an MCC.
- The conversion action ID or name that matches the configured AdPilot conversion event.
- A server-side event payload that includes timestamp, value and currency when applicable, order or dedupe identifier when available, and consent metadata.
If the connected Google user cannot see the customer account, AdPilot cannot verify conversion setup or deliver Google conversion events.
LinkedIn Conversions API Requirements
LinkedIn conversion delivery requires:
- LinkedIn Ads OAuth with
r_ads,rw_ads,r_ads_reporting, andrw_conversions. - Campaign Manager access to the target ad account.
- The conversion rule or conversion setup details for the event AdPilot should report against.
- Server-side event data with a stable dedupe identifier and consent metadata.
Existing LinkedIn Ads customers connected before rw_conversions was added must reconnect before AdPilot can send LinkedIn conversion events.
Server-Side Event Requirements
Your site or server-side tag manager must be able to send the configured conversion event through the provider’s server-side conversion path. The endpoint can be implemented in your application backend, a server-side tag manager, or another approved event source that you control.
The server-side event must provide:
| Field | Requirement |
|---|---|
event_name | Matches the AdPilot conversion event exactly. |
event_time | Unix timestamp for when the conversion happened. |
event_id | Stable dedupe key shared with the browser Pixel event. |
event_source_url | The page where the conversion happened. |
action_source | website for site conversions when the provider requires it. |
user_data | Hashed identifiers such as email or phone when consent allows. |
consent | Consent status, jurisdiction, GPC state, and policy source. |
AdPilot stores only normalized, hashed identifiers for provider dispatch. Events without publishable consent are kept out of the provider publishing path.
Consent And Privacy Rules
Before sending conversion events to ad providers, confirm that:
- The customer has permission to use the event for ad measurement and optimization.
- EEA, UK, and CH events have granted consent before hashed identifiers leave Opius.
- California events with Global Privacy Control or sale/share opt-out are not sent.
- Unknown jurisdiction events are treated as not publishable until jurisdiction and consent are known.
- Sensitive categories and restricted verticals are reviewed before launch.
If consent is missing or revoked, AdPilot can record the blocked state but does not publish the event to Meta, Google, or LinkedIn.
Verification Step
During setup, AdPilot verification is expected to check:
- Meta Ads is connected and the selected Business, ad account, and Pixel are visible.
- Google Ads is connected and the selected customer ID can be reached.
- LinkedIn Ads is connected with
rw_conversionswhen LinkedIn conversion delivery is enabled. - The configured conversion event name is present in the customer setup.
- The Pixel is installed on the landing URL for Meta campaigns.
- A server-side conversion test event can be received or confirmed for the same event name.
- The browser event and server event share a dedupe
event_idwhen the provider supports dedupe. - Consent metadata is present and publishable for the test event.
- The event source URL matches the configured landing URL or an approved domain.
- The provider response does not show a hard error, missing permission, blocked dataset, missing customer ID, or missing conversion scope.
Verification should fail fast if the required provider asset is missing, the server-side event path is unreachable, the event names do not match, consent is not publishable, or the provider returns a permission error. Fix the issue, reconnect the affected provider if needed, then run verification again.
What Happens If Verification Fails
| Failure | Recovery |
|---|---|
| Pixel missing | Install the Pixel on the landing URL and conversion page, then verify again. |
| CAPI or conversion endpoint unreachable | Check your server or tag manager endpoint, then send another test event. |
| Google customer ID missing | Select the correct Google Ads customer account and verify MCC access. |
LinkedIn rw_conversions missing | Reconnect LinkedIn Ads and approve the full permission prompt. |
| Event name mismatch | Update AdPilot or your site so both use the same event name. |
| Missing dedupe key | Send the same event_id in Pixel and CAPI events. |
| Consent not publishable | Update consent capture or exclude the event from provider publishing. |
| Provider permission error | Reconnect the provider or confirm account, asset, and conversion permissions. |
After Verification Passes
AdPilot can use the verified event for launch planning, daily monitoring, no-conversions checks, CPA/ROAS reporting, and auto-pause guardrails. If the Pixel, conversion endpoint, customer ID, conversion rule, event name, or consent policy changes later, rerun verification before approving new spend.
Related docs: