Documentation

How to use ConversionLoop

Everything you need to wire your revenue data into Google Ads and Meta CAPI.

Getting started

How ConversionLoop works

ConversionLoop captures GCLIDs from your landing pages and matches them to real revenue events from your CRM, booking platform, or billing system. Matched conversions are sent to Google Ads and Meta CAPI automatically.

Install the tracking snippet

Paste this into the <head> of every page you run ads to. It captures GCLIDs on page load and stores them server-side for matching.

<script src="https://conversion-loop.com/cl.js?id=YOUR_INTEGRATION_ID&key=YOUR_INGEST_SECRET"></script>

Add your first integration

Go to Integrations → Add integration. Walk through the 7-step wizard to connect your source (CRM / booking platform) and destination (Google Ads / Meta).

Webhook integrations

Webhook URL format

Replace {source} with your platform (pabau, blvd, ghl, hubspot, salesforce, pipedrive, mindbody, stripe-client) and {id} with your integration ID.

https://conversion-loop.com/api/webhooks/{source}?integration_id={id}

Supported platforms

Pabau · Boulevard (BLVD) · Stripe · GoHighLevel (GHL) · HubSpot · Salesforce · Pipedrive · Mindbody

Custom / Zapier / Make

Use the ingest endpoint to send any conversion event from Zapier, Make, or your own backend.

POST https://conversion-loop.com/api/ingest/{integrationId}
Authorization: Bearer YOUR_INGEST_SECRET
Content-Type: application/json

{
  "event_type": "purchase",
  "email": "customer@example.com",
  "value": 1200,
  "currency": "USD"
}

GCLID capture

How GCLID matching works

cl.js reads the gclid URL parameter on page load and POSTs it to our server with a hashed email/phone fingerprint if available. When a conversion fires, we look up the matching GCLID and include it in the Google Ads upload.

Manual GCLID capture

Call this from your own JS after a lead form is submitted to associate the GCLID with the customer's email.

fetch("https://conversion-loop.com/api/cl/capture", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    integration_id: "YOUR_ID",
    gclid: new URLSearchParams(location.search).get("gclid"),
    email: "customer@example.com"
  })
})

Plan limits

Pay What You Want

3 integrations · Unlimited events · Google Ads + Meta CAPI · Standard match enrichment · Email support (24h SLA)

Unlimited

Unlimited integrations · Enhanced identity-graph match · White-label dashboards · Slack Connect (4h SLA)

Own the System

One-time payment. Everything in Unlimited, forever. No monthly fees.