GA4, Meta and the first conversions
Server-side dispatch to GA4 Measurement Protocol and Meta Conversions API with full PII hashing (em, ph, fn, ln, zp, ct, st, country, external_id). The same-origin pipeline that adblockers cannot touch.
Beaconry went from first commit to ten server-side channels, three commerce funnels and seven form plugins in a focused build. Below is the whole thing by area, so you can see exactly what you get today. Versions are real release tags. Next stop: v1.0.
Server-side dispatch to GA4 Measurement Protocol and Meta Conversions API with full PII hashing (em, ph, fn, ln, zp, ct, st, country, external_id). The same-origin pipeline that adblockers cannot touch.
TikTok Events API 2.0 with ttclid attribution, LinkedIn Conversions API with five conversion-rule slots and 60-day token renewal handled for you.
Google Ads CAPI and Microsoft Advertising OfflineConversions through Beaconry's OAuth broker, so your wp-config never holds a developer token. DMA-consent block on every Google upload, eight conversion-goal slots on Microsoft.
Four more server-side channels with vendor-specific dedup keys (epik, sc_click_id, rdt_cid, twclid), per-type metadata whitelists and admin test-event buttons. Channel count reaches ten.
Opt-in per channel for Meta, TikTok, LinkedIn, Microsoft, Pinterest, Snapchat, Reddit and X Ads. A same-origin browser pixel shares the server's stable event_id so the platform counts one conversion, not two, and picks the richer signal.
Server-side dispatch is mirrored to every loaded browser pixel with a shared event_id. Purchases reuse the stable per-order id, form submissions inject a matching hidden field at submit-time.
view_item, view_item_list, view_cart, add_to_cart, remove_from_cart, search, begin_checkout, add_payment_info, purchase and refund. Classic and block checkout. Every event carries GA4 items[] plus the Meta content_* catalog block for Dynamic Product Ads.
Both ship the standard funnel (view, cart, begin_checkout, purchase, refund) with line items and customer PII hashing into every channel's user_data. Purchase events use a stable per-order event_id so a thank-you-page refresh never double-counts.
A refund fires only where it has real meaning: GA4, which nets it against the purchase and corrects revenue. Ad channels have no native refund event, so Beaconry skips them rather than send a meaningless custom event. One consistent rule, documented against each vendor.
Fluent Forms, Kadence (Blocks and Advanced), Contact Form 7, WPForms, Gravity Forms, Elementor Pro Forms and Ninja Forms. Submissions auto-fire generate_lead with hashed PII. Per-form field mapping with a manual skip-marker for fields you want kept out of matching.
See exactly where visitors abandon a form. Beaconry tracks form_start, form_abandon (with the last-touched field name, never a value) and the lead submit, then shows per-form starts, leads, abandons, conversion rate and the top drop-off fields. PII-free by construction.
A ringbuffer of the last 50 events (channel, source, value, time), a 0-10 health score per channel and a daily cron that mails you on a 50 percent drop or a 4x spike. All from two autoload-off options, no extra database table.
A daily probe verifies every configured channel's credentials and mails you before a stale token silently drops conversions. One button fires a synthetic purchase through every channel and reports the status of each.
The bundled nl-data-gate banner blocks every event until the visitor accepts, then propagates the choice into GA Consent Mode v2, Meta and common consent surfaces. Fully accessible, WPML and Polylang ready for banner text and the per-language privacy URL.
A right-to-be-forgotten tool generates the per-vendor SHA-256 hashes for deletion requests, a privacy-policy snippet generator covers all ten channels, and every stored credential is AES-256-GCM authenticated-encrypted at rest using your WordPress salts.
Beaconry keeps its tracking script out of the JavaScript optimizations that would otherwise stop tracking on page load, automatically, for LiteSpeed, WP Rocket, SiteGround Speed Optimizer and Cloudflare Rocket Loader. Every exclusion verified against the vendor's own docs.
The security nonce refreshes client-side, so a tab left open for hours or a page served from full-page cache keeps tracking correctly instead of silently dropping events.
ECB daily rates normalise every transaction into one reporting currency before fan-out, with a durable fallback so dispatch never crashes. Five CSS-class click slots turn any tagged button into a server-side conversion without writing JavaScript.
One endpoint at /wp-json/beaconry/v1/event on your own domain, with a per-IP rate limit and a bot filter. Auto-detected attribution captures session-id, device-id, first-touch UTM and every channel's click-id.
English, German (du and Sie) and Spanish out of the box. A self-hosted updater polls a manifest every twelve hours, so updates land in the standard WordPress Plugins screen with no GitHub login or marketplace.
Ten channels, three commerce funnels, seven form plugins, hybrid mode and a live dashboard, all server-side, all today.