
* Maximum improvement documented by Meta for advertisers with >75% Event ID coverage. Actual improvement depends on creative quality, audience and budget.
| Métrica | Before AFRUS | With AFRUS |
|---|---|---|
| Event ID coverage in Meta | 0% | 75–100% |
| Event Match Quality | ~4-5/10 | ~7-8/10 |
| Conteo usuarios en GA4 | Collapsed — all visitors counted as one person | Real visitors |
| Meta cost per result | Línea base | Hasta -54.9%* |
purchase event with transaction_id assigned. Confirm that the client_id remains stable across events from the same browser.purchase, generate_lead and funnel events firing in the dataLayer console.AFRUS landings do not automatically configure linker.domains. Bidirectional support (AFRUS landing → your site) is not implemented. Requires configuration on your side. Status: documented, not planned.
GA4 attribution works via the _ga cookie, but UTM parameters do not propagate in the final URL. If you need them in the URL, contact us. Status: documented, not planned.
start, add_to_cart, begin_checkout and add_payment_info do not expose deduplication keys in the dataLayer. Only generate_lead and purchase are deduplicatable from GTM. Status: pending, coordinated if there is demand.
The Processes → Analytics Events panel does not include the browser session ID. Correlating with Meta or Google logs requires manual matching. Status: under discussion, pending privacy decision.
Donor's name, email and phone are not published to the dataLayer. AFRUS sends them hashed directly to Meta CAPI. If your GTM tags need them for Advanced Matching, you must obtain them from your own data collection.
The Purchase event (or Donate). It fires when the gateway confirms the charge. In GA4: purchase with a unique transaction_id. In Meta: Purchase deduplicated against AFRUS CAPI with the real amount (value), currency and type (one_time or recurring). In GTM: purchase event available in the dataLayer. For asynchronous payments (Niubiz, PIX, boleto), AFRUS waits for real confirmation — rejected payments are never reported.
Custom Event trigger with name purchase. It fires when the gateway confirms the charge. Then create your tags (TikTok, LinkedIn, Google Ads…) using that trigger. Use ecommerce.transaction_gateway_code as eventID in Meta and as transaction_id in GA4.
Yes, through the _ga cookie. UTMs do not travel as parameters in the thank-you page URL — attribution lives in the cookie, not the URL.
In your gtag.js or GTM, add web.afrus.org to the linker.domains list. This allows the _ga cookie to be shared across domains. Without this, GA4 treats the cross-domain step as a new session and loses the visit origin.
event_id matches exactly the eventID of your tag — without number-to-text transformations.event_name has the same casing — Meta is case-sensitive: Lead ≠ lead.transaction_gateway_code and not transaction_id — they are different values.No. GA4 only deduplicates purchase events with the same transaction_id. For other events, GA4 has no native cross-channel deduplication. The recommendation is to disable those tags in GTM and trust what AFRUS sends.
Yes, always. The Purchase event includes the value (real amount) and currency without additional configuration. This enables value optimization campaigns in Meta Ads (Value-Based Lookalikes, ROAS) from the very first moment.
Widget only, no landing: AFRUS sends events, but without _fbc Meta attribution degrades, and GA4 uses a fallback session ID.
Landing only, no widget: the PageView is recorded, but conversion events (Purchase, Lead) are not sent.
The complete setup needs both.
Just fill in the fields in the widget (Pixel ID + Access Token for Meta, Measurement ID + API Secret for GA4) and in the landing (Facebook Pixel ID + Google Analytics ID). For GTM, events are published automatically to the dataLayer — just create your triggers and tags.

