PruuvDocs

Conversion Sending

Pruuv automatically sends matched conversions back to your ad platforms — Meta CAPI, Google Conversion Upload API, and TikTok Events API. This closes the attribution loop, so the platforms have accurate revenue data to optimise your campaigns against.

How it works

Conversion sending is fully automatic. Once a funnel event is received (via the Pixel SDK or webhook), Pruuv:

  1. Identifies which platform the lead came from based on the click ID present in the event
  2. Matches the event to the corresponding ad account connection for that client
  3. Sends the conversion to the platform's API with all available matching signals
  4. Records the send result (success or failure) in the conversion audit log

Conversion sends run on a scheduled basis (daily at 03:00 UTC) and automatically retry on failure. You can monitor individual conversion send statuses from the Pruuv dashboard.

Platform setup

Meta (Facebook) CAPI

Meta uses the Conversions API (CAPI) to receive server-side conversion events. This complements the Meta browser pixel and is required for accurate attribution in a world with browser tracking limitations.

SignalSourceImpact on match quality
Pixel IDConnections > [Meta account] > Conversion settingsRequired — identifies your Meta dataset
fbc cookiePruuv Pixel captures automatically from fbclid URL paramHigh — direct click match
fbp cookiePruuv Pixel generates on first visitMedium — browser identity
Email hashPruuv.track({ email }) or webhook email_hash fieldHigh — audience match signal
Phone hashPruuv.track({ phone }) or webhook phone_hash fieldHigh — audience match signal
IP addressCaptured server-side automatically from the webhook requestMedium
User agentPruuv Pixel captures navigator.userAgent automaticallyLow

The Pixel ID links the server-side event to your Meta dataset. Find it in your Meta Events Manager under the dataset connected to your ad account.

Meta CAPI works even without fbc — email and phone hash signals alone can produce good match rates. For best results, use all available signals together. The Pruuv Pixel captures fbc, fbp, and user_agent automatically; include email and phone in Pruuv.track() for the strongest match.

Google Ads — Conversion Upload

Google uses the Ads API Conversion Upload endpoint to receive click-matched conversions offline. This is the server-side equivalent of the Google Ads tag and is required for offline conversion tracking (e.g. leads that convert in a CRM after the initial form fill).

RequiredWhere to configure
Conversion Action IDConnections > [Google account] > Conversion settings > Conversion Action ID
OAuth tokenConnected automatically via Google OAuth — stored securely in Vault
gclid / wbraid / gbraidCaptured automatically by the Pruuv Pixel on landing page
click_timestampIncluded when available — required for the Google Conversion Upload API

The Conversion Action ID identifies which conversion action in your Google Ads account the event maps to. Create a conversion action of type "Import" in Google Ads and copy the ID from the action settings.

TikTok — Events API

TikTok's Events API allows server-side conversion events to be sent to your TikTok Pixel for attribution and campaign optimisation.

RequiredWhere to configure
Pixel CodeConnections > [TikTok account] > Conversion settings > Pixel Code
Access TokenConnected automatically via TikTok OAuth — stored securely in Vault
ttclidCaptured automatically by the Pruuv Pixel on landing page

The Pixel Code identifies your TikTok Pixel. Find it in TikTok Ads Manager under Assets > Events > Web Events.

Click ID requirements by platform

A conversion send is only attempted for a platform if at least one matching signal is present. Events with no eligible signals for a platform are skipped for that platform.

PlatformPrimary click IDWorks without click ID?Fallback signals
Metafbc (from fbclid)Yes — lower match scoreemail hash, phone hash, fbp, external_id, name/DOB/postcode hashes, city/state/country, gender, ip_address + user agent
Googlegclid or wbraid or gbraidNo — click ID is mandatoryNone
TikTokttclidPartialemail hash, phone hash

Using CRM and Pixel together

The best conversion data comes from combining a server-side CRM webhook (which has revenue, demographics, and a stable reference ID) with the Pruuv Pixel (which has fbc, fbp, gclid, ttclid, and hashed PII).

These can arrive in either order. If your CRM fires first and the pixel fires shortly after, Pruuv performs an enrichment merge: the pixel data fills in any click ID fields that the CRM event left blank — without overwriting anything already stored. The conversion sender then sees a complete row with both datasets.

This means there is no need to coordinate timing between your CRM integration and the pixel. Both can fire independently and Pruuv assembles the best possible conversion payload.

Per-stage conversion configuration

By default, Pruuv sends all conversion events as Lead to Meta and TikTok, and uses the connection-level Conversion Action ID for Google. You can override this per funnel stage — for example, to send a Purchase event from your Sale stage and a Lead event from your Enquiry stage.

You can also disable conversion sending entirely for a specific platform on a specific stage — useful if a stage represents an internal milestone you do not want sent to ad platforms.

Stage-level conversion config is set in Connections > Funnel stages > [Stage] > Conversion sending.

Deduplication

Conversion sends use the funnel event UUID as the deduplication key when calling platform APIs. If you also run a Meta browser pixel, ensure the event ID on both sides matches to prevent double-counting in Meta's reporting. Pruuv handles this automatically if you are using only the Pruuv Pixel (not a separate Meta browser pixel).

Audit log

Every outbound conversion send — whether successful or failed — is recorded in Pruuv's conversion audit log. Each record includes the platform, status, error message (if any), timestamp, and retry count. This log is available to agency staff in the Pruuv dashboard and can be used to diagnose attribution issues.

Conversion sending requires that the relevant ad account connection has a Pixel ID, Pixel Code, or Conversion Action IDconfigured (depending on the platform). Without these values, Pruuv cannot identify where to send the conversion. Configure them in Connections > [Account] > Conversion settings.