Server-Side Conversion Tracking
GA4 and Google Ads server-side. Sklik automatically. One setup for everything.
Recover 30–50 % of lost conversions.
Ad blockers and privacy-focused browsers silently discard 30–50 % of conversion data. JavaScript snippets (gtag.js) only work when the browser allows them. Sema Track sends conversion events directly from your server via Measurement Protocol and Conversion API — bypassing browser restrictions while staying fully GDPR compliant.
Why You Need a Measurement Plugin
What the plugin solves
- GA4 and Google Ads events delivered server-side (bypasses ad blockers)
- Sklik conversion code injected automatically (no template edits)
- GDPR consent integration with three-layer model
- Database queue with retry for reliable delivery
What you lose without it
- 30–50 % of conversions invisible in GA4
- Google Ads bidding on incomplete data
- Sklik tracking requires manual template changes
- No consent-aware measurement
Supported Platforms
Google Analytics 4
Server-side events via Measurement Protocol v2. Accurate session and conversion data even when client-side scripts are blocked.
Google Ads
Conversion API v23 with OAuth2 authentication. Enhanced conversions with hashed e-mail for better audience matching.
Sklik (Seznam.cz)
Automatic JavaScript injection — no template modifications. Conversion tracking for the leading Czech search engine.
Key Features
Conversion tracking
- AJAX form detection — supports jQuery, XMLHttpRequest and Fetch API
- PII hashing — SHA-256 hashing of e-mail and phone in the browser; plaintext never leaves the client
- Click ID capture — GCLID, GBRAID and WBRAID automatically stored
- Session persistence — cross-request session tracking via cookies
- Custom events — fire conversion events from any form submission
GDPR & cookie consent
- Three-layer consent model — L0 anonymous / L1 analytics / L2 marketing
- Multiple consent plugin support — compatible with StoreJExtensions, Sema Cookie Consent and CookieYes
- Automatic JS bridge — reads consent state and applies it server-side
- IP anonymisation — configurable masking for IPv4 and IPv6
Reliability
- Database queue with retry logic — failed server transmissions retry with exponential backoff
- Bot filtering — Googlebot and known crawlers excluded automatically
- Asynchronous delivery — cURL calls do not block page rendering
- Task Scheduler support — process the retry queue via Joomla’s built-in scheduler
How It Works
For the visitor
Page visit
The plugin detects consent level and injects appropriate scripts. Sklik rc.js is loaded automatically if consent allows.
Form submission
When a conversion form is submitted (contact, registration, purchase), the plugin captures the event with hashed PII data.
Server delivery
The event is sent server-side to GA4 and Google Ads. Sklik fires client-side. Failed deliveries are queued for retry.
For the website owner
- Configure API keys and conversion IDs once in the plugin settings
- Enable/disable each platform independently
- Monitor delivery status in the Joomla admin log
- Retry queue processes automatically via Task Scheduler or on next page load
Configuration
| Setting | Description |
|---|---|
| GDPR consent plugin | Select which consent plugin to integrate with |
| GA4 Measurement ID | Your GA4 property measurement ID |
| GA4 API Secret | Measurement Protocol API secret |
| Google Ads Customer ID | Your Google Ads account ID |
| Google Ads Conversion ID | Conversion action ID and label |
| Google Ads OAuth credentials | Client ID, Client Secret, Refresh Token |
| Sklik Conversion ID | Conversion ID for Seznam.cz Sklik |
| Sklik Retargeting ID | Retargeting pixel ID |
| Conversion value | Default or dynamic value from form data |
| Log retention | Days to keep delivery logs (default 30) |
| Retry queue | Enable/disable, max attempts, backoff interval |
| Task Scheduler | Enable queue processing via Joomla scheduler |
Technical Specifications
| Parameter | Value |
|---|---|
| Extension type | Joomla System Plugin |
| Compatibility | Joomla 4.x / 5.x / 6.x, PHP 8.1+ |
| Server-side APIs | GA4 Measurement Protocol v2, Google Ads Conversion API v23 |
| Client-side injection | Sklik conversion script (automatic) |
| Dependencies | None (vanilla JS, cURL) |
| Localisation | Czech, English |
| Installation | Single ZIP via Joomla Extension Installer |
| Updates | Fully automatic via Joomla Updater |
| Licence | GPL v2+ |
Frequently Asked Questions
Do I need to remove my existing gtag.js snippet?
No. The plugin works alongside existing tracking scripts. Server-side delivery fills in the gaps where client-side tracking fails due to ad blockers.
How does the three-layer GDPR model work?
L0 (anonymous) sends only page views without PII. L1 (analytics) enables GA4 with session data. L2 (marketing) enables Google Ads enhanced conversions and Sklik. Each level requires the corresponding consent category.
Can I use only some platforms?
Yes. Each platform (GA4, Google Ads, Sklik) can be enabled or disabled independently. Only configure what you need.
What happens if the server-side delivery fails?
The event is stored in a database queue and retried with exponential backoff. You can also process the queue via Joomla’s Task Scheduler for more reliable delivery.
Does it detect AJAX form submissions?
Yes. The plugin hooks into jQuery.ajax, XMLHttpRequest and the Fetch API to detect form submissions made via AJAX without page reload.
How is personal data protected?
E-mail addresses and phone numbers are hashed with SHA-256 in the browser before being sent to the server. Plaintext PII never leaves the visitor’s device. IP addresses can be anonymised in the plugin settings.
Is it compatible with Joomla 4?
Yes. The plugin works on Joomla 4.x, 5.x and 6.x.
What happens after the one-year licence expires?
The extension continues to work indefinitely. You stop receiving updates and support. Renew any time to resume.