ClickBeagle

Server-side conversion tracking for Meta CAPI and GA4 without a developer

ClickBeagle sends every website lead to Meta Conversions API (as a Lead event) and to GA4 Measurement Protocol (as generate_lead) from its own server, every 15 minutes. You paste a Meta pixel id and access token, or a GA4 measurement id and API secret, in the dashboard; there is no code to write. Match keys such as email and phone are normalized and SHA-256 hashed before they leave ClickBeagle.

Why pixel-only tracking misses leads

A browser pixel only reports a conversion if the pixel loads, the browser lets it send, and the thank-you event fires. Ad blockers, browser tracking protection, slow mobile connections and forms that redirect or live inside an iframe all break that chain. The ad platform then optimizes on fewer conversions than really happened. Server-side delivery sends the same lead from a server, which is not affected by blockers in the visitor's browser.

How it works in ClickBeagle

  1. The lead is captured. The ClickBeagle counter picks up contact forms automatically, without marking up fields, and detects completed submissions in many embedded form and booking widgets (their fields stay out of reach). Passwords, card numbers and hidden fields are never collected.
  2. Match data is saved at the moment of the lead. Along with the form values, ClickBeagle keeps the Meta _fbp and _fbc cookies, the GA4 client id and session id, the IP address and the user agent of that visit.
  3. Delivery runs every 15 minutes. Each lead goes to each connected destination once. Errors that may pass later are retried up to 5 times; every delivery keeps its status, the match keys it carried and the platform's response.
  4. Recent leads are not lost. When you connect a destination, you can also send the leads it can still accept: up to 7 days back for Meta, 72 hours for GA4.

Match keys: what is sent where

DataMeta Conversions APIGA4 Measurement ProtocolHow it is prepared
EmailemNot sentTrimmed, lower-cased, SHA-256
PhonephNot sentConverted to international format using the visit's country, SHA-256
First and last namefn, lnNot sentLower-cased, SHA-256
CountrycountryNot sentSHA-256
Visitor idexternal_idNot sentSHA-256 of the ${N} profile id
Click and browser idsfbc, fbpclient_id, session_idAs set by the Meta pixel and the GA4 tag
IP and user agentclient_ip_address, client_user_agentNot sentAs seen on the visit

Every Meta event carries the lead's id as event_id and the page URL as event_source_url. GA4 needs the site's own GA4 client id: if a visitor had no _ga cookie, the lead is skipped for GA4 with the reason shown, rather than sent with an invented id.

Setup without a developer

ClickBeagle checks the settings with Meta or Google before saving them, so a typo shows up immediately instead of as silent missing conversions.

Consent and privacy

In US notice mode the counter shows a notice at collection with an opt-out, and it treats Global Privacy Control as an automatic opt-out. In opt-in (banner) mode nothing is collected before the visitor accepts. When a visitor opts out, the choice is also passed to Google tags (consent mode) and the Meta pixel on the page, and ClickBeagle stops collecting for that browser, so there is no lead record to send.

Events from your CRM or backend carry their own consent fields (analytics, advertising, ad_user_data, ad_personalization). Unknown consent is treated as not granted, and test events never reach production destinations.

CRM events and Google Ads

Your CRM or backend can report later stages, such as lead qualified, appointment booked, sale completed or payment received, through a signed server events API. ClickBeagle links them to the original visit and shows their status in the dashboard and through the MCP tool server_events_status. For these events, delivery to Google Ads and Meta is currently a dry run: ClickBeagle validates and previews the payload without sending it.

Google Ads offline conversions from the CRM are uploaded by Ads Connector, the product ClickBeagle is part of. ClickBeagle deliberately does not send the same leads to Google Ads, because sending them twice would double-count.

Avoiding double counting with the pixel

If your Meta pixel already fires a Lead event on the thank-you page, decide which source is primary in Events Manager, or make sure both use the same event name and id, so Meta can deduplicate. In GA4, mark one event, either generate_lead from ClickBeagle or your existing tag event, as the key event.

Want to check whether your ad clicks are real before you feed them back to the platforms? See click fraud detection, or start with the 3-step setup.

FAQ

Do I need a developer to set up Meta CAPI with ClickBeagle?

No. Paste your pixel id and access token in the dashboard; ClickBeagle checks them with Meta and starts sending leads within 15 minutes.

Are emails and phone numbers sent in plain text?

No. Email, phone, name, country and visitor id are normalized and SHA-256 hashed before they are sent to Meta. GA4 receives no contact data.

Why was a lead skipped for GA4?

GA4 Measurement Protocol needs the site's own GA4 client id. If the visitor had no _ga cookie, ClickBeagle skips the lead and shows the reason instead of inventing an id.

Does ClickBeagle send conversions to Google Ads?

Not directly. Google Ads offline conversions are uploaded by Ads Connector, so the same lead is not counted twice.

What happens when a visitor opts out?

Collection stops for that browser, Google consent mode and the Meta pixel are told about the opt-out, and no lead is sent. Global Privacy Control counts as an opt-out.

See which ads bring real customers

Leads with their source, session replay, click checks and bot analytics. Set up in 2 minutes, free while in beta.

Start free

Related articles