Back to Docsintegrations

Meta + LeadConnector Setup

Connect Meta ads to your LeadConnector (GoHighLevel) pipeline in about 15 minutes, keep your existing pixel, and send closed-deal value back to Meta.

Table of contents

What you get

By the end of this guide, Meta will know three things it almost certainly does not know today:

  • Who actually converted. Every conversion is sent server-side with the full identity set (hashed email, phone, name, click ID, browser ID, IP and user agent), not just whatever survived the browser.
  • What happened after the form. When a lead moves to a booked appointment or a closed deal in your CRM, Meta hears about it.
  • What the deal was worth. Closed deals are sent as a Purchase carrying the real commission or contract value, so Meta optimises toward buyers rather than form-fillers.

Time required: about 15 minutes. You do not need to remove or rewrite your existing Meta pixel.

Before you start

You will need:

  • Admin access to your Meta pixel — check under Business Settings → Data Sources → Datasets.
  • A LeadConnector (GoHighLevel) sub-account with the pipeline you actually use for sales.
  • The ability to add one line to your site''s <head> — a theme editor, a funnel builder setting, or a developer.

If your site is hand-built HTML, a single snippet in the head of every page is all that is required. No other markup changes.

Step 1 — Create your account

Sign up at app.dealoracle.io and pick the role that matches you. If you run your own ads, choose In-house Marketer; agencies managing several clients should choose the agency path instead.

The onboarding wizard then walks you through ad platforms, lead sources, CRM and pixel in order. You can leave and come back — nothing is lost.

Step 2 — Connect Meta

In the wizard (or later under Integrations → Ad Platforms), click Connect on Meta and authorise DealOracle. Grant the ads permissions when prompted.

You will then pick two things:

  • Ad account — the account whose spend you want measured.
  • Pixel / dataset — the same pixel your website already fires. Do not create a new one.

Choosing your existing pixel is what lets the browser and server events line up later.

Step 3 — Connect LeadConnector and map your stages

Under Integrations → CRM, click Connect on LeadConnector, authorise, and choose the sub-account holding your sales pipeline.

Once connected, DealOracle pulls in your pipeline stages and asks which Meta event each one should send. This mapping is the whole point of the integration: it is how an offline outcome becomes an ad-platform signal.

A typical pipeline maps like this.

Send the real number on the closed-deal stage. If your average commission is five figures, a Purchase carrying that value teaches Meta something a flat "1 conversion" never will: which of your leads were worth having.

Step 4 — Install the pixel

Copy the snippet from Tracking Pixel → Install and paste it into the <head> of every page. It looks like this, with your own key in place of YOUR_CLIENT_KEY:

<!-- dealoracle snippet -->
<script>
  (function(d,o){
    d.dealoracle=d.dealoracle||function(){var a=Array.prototype.slice.call(arguments);(d.dealoracle.q=d.dealoracle.q||[]).push({method:a[0],args:a.slice(1)})};
    if(o.getElementById('do-sdk-js'))return;
    var s=o.createElement('script');s.async=1;s.id='do-sdk-js';
    s.src='https://proxy.trc-kng.com/functions/v1/sdk-serve';
    o.head.appendChild(s);
  })(window,document);
  dealoracle('init', 'YOUR_CLIENT_KEY');
</script>

Where to paste it:

  • LeadConnector / GoHighLevel — Sites → your funnel or website → Settings → Tracking Code → Head Tracking Code.
  • WordPress — your theme''s header.php, or a headers-and-footers plugin.
  • A hand-built or AI-generated site — the <head> of every page. If an assistant maintains the site, "add this snippet to the head of every page" is the whole instruction.
  • Anywhere else — Google Tag Manager, as a Custom HTML tag firing on All Pages.

Step 5 — Why you can keep the browser pixel

Meta deduplicates a browser event against a server event when both carry the same event name and the same event ID.

The DealOracle snippet stamps an event ID onto the events your existing Meta pixel fires, and reuses that same ID on the server-side copy it sends. Meta sees the pair, recognises them as one conversion, and counts it once — while keeping the richer identity data from the server event.

That is why the browser pixel stays and a second server sender does not: two browser-and-server pairs sharing IDs is fine, two independent server senders is double counting.

Step 6 — Verify

  1. Open Meta Events Manager → your dataset → Test Events.
  2. Submit a test form on your own site.
  3. You should see the event arrive twice — once from the browser, once from the server — collapsed into a single deduplicated conversion.
  4. Move that test lead through your pipeline in the CRM and watch Schedule and Purchase land.

Then leave it alone for a week. Event Match Quality updates on real traffic, not on test events. After seven days of live volume, check the score on your Lead and Schedule events.

Common questions

Do I have to change my website''s code? One snippet in the head. Nothing else changes — no rewriting forms, no editing your existing pixel.

Will this double-count my conversions? Not if you follow step 5: keep the browser pixel, and make sure only one server-side sender is running per event name.

Does DealOracle replace my CRM? No. Your CRM stays where it is and keeps doing what it does. DealOracle reads outcomes from it and reports them to the ad platforms.

Does it connect to my email tool? Whatever feeds your email platform today keeps feeding it. If you also want new DealOracle leads pushed into an email list, use the Zapier integration — the New Lead trigger connects to most email platforms in a few clicks.

Is this only worth it at high lead volume? No. Because closed deals are sent with their real value, the signal improves with deal size, not lead count. Low-volume, high-ticket businesses often see the clearest change.