Advanced DataLayer Tracker – Server-Side Tracking Configuration
Table of Contents
- What is GA4 Measurement Protocol?
- Why Use Server-Side Tracking?
- Prerequisites
- Quick Setup (5 Minutes)
- Detailed Setup Instructions
- Configuration Options
- Testing Your Setup
- Dual Tracking Mode
- Troubleshooting
- Best Practices
What is GA4 Measurement Protocol?
GA4 Measurement Protocol is Google’s server-side tracking API that allows you to send events directly from your WordPress server to Google Analytics 4, bypassing the browser entirely.
How It Works:
- User action occurs on your site (e.g., purchase, form submission)
- ADT captures the event data
- Data is sent from your WordPress server to GA4’s servers
- Event appears in your GA4 reports
Key Difference from Client-Side:
- Client-Side: Browser → dataLayer → GTM → GA4 (blocked by ad blockers, affected by consent)
- Server-Side: WordPress → GA4 API (unblockable, reliable, privacy-compliant)
Why Use Server-Side Tracking?
Business Benefits
Recover 30-40% of Lost Events
- Ad blockers can’t touch server-side events
- iOS 14+ ATT restrictions bypassed
- 100% tracking reliability
iOS 14+ Privacy Compliance
- App Tracking Transparency doesn’t affect server-side
- Maintain full visibility into iOS user behavior
- No attribution loss
Enterprise-Grade Reliability
- Events guaranteed to reach GA4
- No browser failures or timeouts
- Mission-critical data protected
GDPR & Privacy Compliant
- Respects user consent preferences
- Server-side hashing of PII
- Transparent data handling
Real-World Impact
E-Commerce Example:
Before Server-Side:
- 1,000 purchases/month tracked
- ~300 blocked by ad blockers (30%)
- Missing: $45,000 in attributed revenue
After Server-Side:
- 1,300+ purchases/month tracked (+30%)
- Full revenue attribution restored
- Better ROAS calculations
- Accurate customer lifetime value
Lead Generation Example:
Before: 40% of form submissions blocked
After: 100% form submission tracking
Result: Accurate cost-per-lead, better budget allocation
Prerequisites
Required Items
✅ GA4 Property
- Active Google Analytics 4 property
- Admin access to GA4 settings
- Found at: analytics.google.com
✅ WordPress Admin Access
- Ability to configure plugin settings
- Admin-level permissions
✅ ADT Premium License (Required)
- GA4 Measurement Protocol is a premium feature
- Upgrade at plugin settings page
Time Required
- Quick Setup: 5 minutes
- With Testing: 10-15 minutes
- Full Configuration: 20-30 minutes
Quick Setup (5 Minutes)
Step 1: Access Setup Wizard
Navigate to your WordPress admin:
WordPress Admin → Advanced DataLayer → GA4 Setup Wizard
Or click the “Configure GA4 Measurement Protocol” banner in the plugin settings.
Step 2: Get Your GA4 Measurement ID
- Open Google Analytics
- Click Admin (bottom left gear icon)
- Select your Property
- Click Data Streams
- Click your website data stream
- Copy the Measurement ID (format:
G-XXXXXXXXXX)
Example:
Measurement ID: G-ABC123XYZ
Step 3: Create API Secret
In the same GA4 Data Stream page:
- Scroll to Measurement Protocol API secrets section
- Click Create
- Enter nickname:
WordPress ADT(or any name you prefer) - Click Create
- Copy the Secret value immediately (you can’t view it again!)
Example:
API Secret: abc123DEF456ghi789JKL
⚠️ Important: Save this secret immediately! GA4 only shows it once.
Step 4: Enter Credentials in ADT
Back in the ADT Setup Wizard:
- Paste your Measurement ID:
G-XXXXXXXXXX - Paste your API Secret:
abc123DEF456... - Click Test & Save
Step 5: Verify Connection
The wizard will test your connection:
✅ Success: “Connection successful! Server-side tracking is active.”
❌ Failed: See Troubleshooting section below
You’re done! Events are now being sent server-side to GA4.
Detailed Setup Instructions
Manual Configuration (Alternative Method)
If you prefer to configure settings manually instead of using the wizard:
1. Navigate to Settings
WordPress Admin → Settings → Advanced DataLayer → Pixel Tracking Tab
2. Enable GA4 Measurement Protocol
Find the GA4 Server-Side Tracking section:
☑ Enable GA4 Measurement Protocol
3. Enter Credentials
Measurement ID:
Field: GA4 Measurement ID
Value: G-XXXXXXXXXX
Help: Find in GA4 → Admin → Data Streams → Your Stream
API Secret:
Field: GA4 API Secret
Value: [Your API secret from GA4]
Help: Generate in GA4 → Admin → Data Streams → Your Stream → Measurement Protocol API secrets
4. Save Settings
Click Save Changes at the bottom of the page.
Configuration Options
Essential Settings
Enable GA4 Measurement Protocol
Setting: ga4_mp_enabled
Default: Disabled
Premium: Yes
Purpose: Master switch for server-side tracking
When to Enable:
- You want maximum event tracking reliability
- You’re losing events to ad blockers
- You need iOS 14+ tracking recovery
- Enterprise-level data quality required
GA4 Measurement ID
Setting: ga4_measurement_id
Format: G-XXXXXXXXXX
Required: Yes
Premium: Yes
Where to Find:
Google Analytics 4 → Admin → Data Streams → [Your Site] → Measurement ID
GA4 API Secret
Setting: ga4_api_secret
Format: Alphanumeric string (20+ characters)
Required: Yes
Premium: Yes
Security: Stored encrypted
Where to Create:
Google Analytics 4 → Admin → Data Streams → [Your Site] →
Measurement Protocol API secrets → Create
Advanced Settings
Debug Mode
Setting: ga4_mp_debug_mode
Default: Disabled
Premium: Yes
Purpose: Validate events in GA4 DebugView
When to Enable:
- Initial setup and testing
- Troubleshooting event issues
- Validating event structure
When to Disable:
- Production environment
- After successful testing
- To avoid cluttering debug reports
How to Use:
- Enable Debug Mode in ADT settings
- Trigger events on your site
- View events in GA4 DebugView:
GA4 → Configure → DebugView - Verify event structure and parameters
- Disable when done testing
Dual Tracking Mode
Setting: ga4_mp_dual_tracking
Default: Enabled
Premium: Yes
Purpose: Send events to BOTH GTM (client-side) AND server-side
How It Works:
- Events fire to dataLayer (GTM sees them)
- Events also fire server-side (GA4 MP)
- Automatic deduplication prevents double-counting
- Best of both worlds: GTM flexibility + server-side reliability
Why Keep It Enabled:
- Maintain existing GTM tags and integrations
- No disruption to current setup
- Server-side acts as backup/recovery layer
- GTM Preview mode still works
When to Disable:
- Pure server-side only strategy
- Want to avoid any client-side tracking
- Simplified event flow preferred
See Dual Tracking Mode section for more details.
Testing Your Setup
Method 1: Use Built-In Connection Test
In the GA4 Setup Wizard or Settings page:
- Click Test Connection button
- Wait for response (5-10 seconds)
- Review results:
Success Response:
✓ Connection successful!
✓ Test event sent to GA4
✓ Server-side tracking is active
Error Response:
✗ Connection failed
Error: [specific error message]
→ See Troubleshooting section
Method 2: Check GA4 DebugView
Enable Debug Mode first:
Settings → Pixel Tracking → ☑ GA4 Debug Mode
View in GA4:
- Open Google Analytics
- Go to Configure → DebugView
- Trigger an event on your site (e.g., page view, add to cart)
- Watch DebugView for real-time events
- Look for events with server-side origin
What to Look For:
Event Name: page_view (or other event)
Origin: Measurement Protocol
Parameters: All expected parameters present
Method 3: Real-Time Reports
View in GA4:
GA4 → Reports → Realtime
Steps:
- Open GA4 Real-time reports
- Trigger events on your site
- Watch for events appearing in real-time (30-second delay)
- Verify event counts increase
Method 4: Check WordPress Logs
If you have debug logging enabled:
View Logs:
WordPress Admin → Advanced DataLayer → Debug Logs
Look for entries like:
[GA4 MP] Event sent successfully: page_view
[GA4 MP] Response code: 204 (success)
[GA4 MP] Dual tracking: client + server
Method 5: Stats Widget
After 24 hours of tracking, view the Server-Side Stats Widget:
Location:
Settings → Pixel Tracking → Server-Side Tracking Stats
Metrics Shown:
- Total server-side events (last 7 days)
- Client vs. server event comparison
- Recovery rate (% of events only captured server-side)
- Event breakdown by type
Dual Tracking Mode
What is Dual Tracking?
Dual Tracking sends every event to BOTH:
- Client-Side → dataLayer → GTM → GA4
- Server-Side → WordPress → GA4 Measurement Protocol
Result: Maximum reliability with zero disruption to existing setup.
How It Works
Event Flow:
User Action (e.g., Add to Cart)
↓
ADT Captures Event
↓
├─→ Push to dataLayer (GTM sees it) ← Client-side path
│
└─→ AJAX to WordPress backend (Server-side path)
↓
Send to GA4 MP API
↓
Both events tagged with event_id
↓
GA4 automatically deduplicates
Deduplication
How GA4 Prevents Double-Counting:
Every event includes an event_id parameter:
{
event: 'add_to_cart',
event_id: 'adt_1234567890_abc', // ← Same for both client + server
// ... other parameters
}
GA4 recognizes duplicate event_id values and counts each event only once, even when received from multiple sources.
Automatic Handling:
- ADT generates unique
event_idfor each event - Same
event_idused for both client and server sends - GA4 deduplicates automatically
- No configuration needed
Benefits of Dual Tracking
1. Zero Disruption
- Keep existing GTM tags running
- No changes to current setup
- Server-side acts as safety net
2. GTM Preview Mode Works
- GTM Preview still sees all events
- Debug and test as normal
- Server-side tracks silently in background
3. Maximum Event Recovery
Scenario: User has ad blocker
- Client-side blocked ✗
- Server-side succeeds ✓
- Event still captured!
Scenario: User has no ad blocker
- Client-side succeeds ✓
- Server-side succeeds ✓
- GA4 deduplicates automatically (counts once)
4. Gradual Migration Path
- Start with dual tracking enabled
- Verify server-side accuracy
- Eventually disable client-side if desired
- Or keep both for redundancy
When to Disable Dual Tracking
Disable If:
- You want pure server-side only
- Simplifying tracking architecture
- Reducing frontend JavaScript load
- Privacy-first approach (minimal client-side)
How to Disable:
Settings → Pixel Tracking → ☐ Enable Dual Tracking
Result:
- Events still fire to dataLayer (for GTM compatibility)
- But NO automatic GA4 MP send from client
- Pure server-side tracking only
Troubleshooting
Common Issues and Solutions
Issue 1: “Invalid API Secret”
Symptoms:
✗ Connection failed
Error: 401 Unauthorized - Invalid API Secret
Causes:
- API Secret copied incorrectly (extra spaces, partial copy)
- API Secret expired or deleted in GA4
- Wrong GA4 property
Solutions:
- Regenerate API Secret in GA4:
GA4 → Admin → Data Streams → Your Stream → Measurement Protocol API secrets → Create New - Copy the ENTIRE secret (no spaces before/after)
- Paste into ADT settings
- Save and test again
Issue 2: “Invalid Measurement ID”
Symptoms:
✗ Connection failed
Error: Measurement ID format invalid
Causes:
- Wrong format (must be
G-XXXXXXXXXX) - Copied from wrong GA4 property
- Using old UA tracking ID (UA-XXXXXXXX)
Solutions:
- Verify format: Must start with
G-(notUA-) - Get correct ID from GA4:
GA4 → Admin → Data Streams → Your Stream → Measurement ID - Double-check you’re in correct GA4 property
Issue 3: Events Not Appearing in GA4
Symptoms:
- Connection test succeeds
- But no events in GA4 reports
Diagnostic Steps:
Step 1: Check Debug Mode
Enable: Settings → Pixel Tracking → ☑ GA4 Debug Mode
View: GA4 → Configure → DebugView
Do events appear in DebugView?
- Yes → Events are reaching GA4 (wait 24-48 hours for reports)
- No → See Step 2
Step 2: Check WordPress Debug Logs
Advanced DataLayer → Debug Logs
Look for GA4 MP entries:
- Found, status 204 → Events sending successfully
- Found, error status → Check error message
- Not found → Events not being triggered (see Step 3)
Step 3: Verify Event Triggers
- Navigate to page/action that should trigger event
- Open browser console
- Type:
window.dataLayer - Verify event appears in array
- If not, event tracking may be disabled
Step 4: Check Premium Status
Settings → License → Verify premium active
GA4 MP requires premium license.
Issue 4: “AJAX Request Failed”
Symptoms:
Console error: adt_ga4_mp_track failed
Server error: 403 or 500
Causes:
- WordPress AJAX endpoint blocked
- Security plugin interference
- Server configuration issue
- Nonce verification failure
Solutions:
1. Check Security Plugin Settings Common plugins that may block AJAX:
- Wordfence
- Sucuri
- iThemes Security
Solution: Whitelist ADT AJAX actions:
Action: adt_ga4_mp_track
Type: AJAX (public + authenticated)
2. Check .htaccess Rules Some server configs block AJAX POST requests.
Test: Try GET request test mode (if available)
3. Verify Nonce Refresh the page and try again (nonce may have expired).
4. Check Error Logs
WordPress Admin → Tools → Site Health → Info → Server
Look for PHP errors related to AJAX requests.
Issue 5: Duplicate Events in GA4
Symptoms:
- Events appearing twice in GA4 reports
- Double-counting purchases, conversions
Causes:
- Dual tracking enabled without proper deduplication
- Multiple GA4 tags firing
- Custom code also sending events
Solutions:
1. Verify event_id Present Check browser console dataLayer:
// Should see:
{
event: 'purchase',
event_id: 'adt_1234567890_abc', // ← Must be present
// ...
}
2. Check Multiple GA4 Tags
- Review GTM container
- Ensure only ONE GA4 Config tag
- Disable duplicate GA4 tags if found
3. Check Custom Tracking Code
- Search theme/plugin code for
gtag()or GA4 calls - Disable duplicate tracking code
4. Disable Dual Tracking (If Needed)
Settings → Pixel Tracking → ☐ Enable Dual Tracking
Choose ONE path: client-side OR server-side (not both without deduplication).
Issue 6: Premium License Not Recognized
Symptoms:
Error: GA4 MP requires premium license
Solutions:
- Verify license key entered correctly:
Settings → License → Enter License Key - Activate license (click Activate button)
- Check license status (should show “Active”)
- Contact support if license won’t activate
Best Practices
Security
1. Protect API Secret
- Never commit API secret to version control
- Don’t share in public forums
- Rotate secret periodically (every 6-12 months)
- Use environment variables for staging/production
2. Use HTTPS
- Ensure WordPress site uses SSL certificate
- Server-side events sent over HTTPS
- Protects data in transit
3. Limit Access
- Only admins should access GA4 settings
- Don’t share GA4 admin credentials
- Use WordPress user roles appropriately
Performance
1. Use Async Sending
- ADT sends events asynchronously (default)
- No page load impact
- Events queued if server busy
2. Monitor Server Load
- GA4 MP adds minimal server load
- ~1 API call per event
- Negligible for most sites
3. Consider Event Volume
- High-traffic sites: Monitor outgoing requests
- Rate limits: 20 events per second (GA4 limit)
- ADT respects rate limits automatically
Data Quality
1. Test Before Production
- Always test with Debug Mode enabled first
- Verify event structure in DebugView
- Compare client vs. server data quality
2. Use Consistent Naming
- Keep event names consistent across client/server
- Use snake_case for parameter names
- Follow GA4 naming conventions
3. Monitor Deduplication
- Check GA4 reports for duplicate events
- Verify
event_idparameter present - Review Stats Widget for accuracy
4. Regular Audits
- Monthly: Review event volume and types
- Quarterly: Check API secret rotation
- Yearly: Audit entire tracking setup
Compliance
1. Respect User Consent
- ADT respects CMP consent preferences
- Server-side tracking pauses if consent denied
- Configurable consent behavior
2. Data Retention
- Configure GA4 data retention settings appropriately
- Document retention policies
- Comply with GDPR/CCPA requirements
3. Privacy Policy
- Update privacy policy to mention server-side tracking
- Explain data collection methods
- Provide opt-out mechanisms
Optimization
1. Start with Dual Tracking
- Enables comparison between client/server
- Safety net during transition
- No disruption to existing setup
2. Monitor Recovery Rate
- Check Stats Widget after 7 days
- Identify % of events only captured server-side
- Quantify ad blocker/iOS impact
3. Gradual Transition
Week 1-2: Enable server-side, keep dual tracking
Week 3-4: Verify data accuracy, compare reports
Week 5+: Consider disabling client-side if desired
4. Document Your Setup
- Note Measurement ID and where to find it
- Document which events are tracked server-side
- Keep changelog of configuration changes
What Events are Tracked Server-Side?
Automatic Events (No Configuration)
Core Events:
page_view– Every page loadsession_start– New session beginsscroll– Scroll depth milestones (25%, 50%, 75%, 90%, 100%)user_engagement– Active time on page
Form Events:
form_view– Form appears on pageform_start– User begins filling formform_submit– Form submitted successfully
Video Events:
video_start– Video playback beginsvideo_progress– Progress milestones (10%, 25%, 50%, 75%, 90%)video_complete– Video watched to end
Engagement Events:
click– Important element clicksfile_download– PDF/document downloadsoutbound_click– External link clicks
E-Commerce Events (WooCommerce)
Automatic with WooCommerce:
view_item– Product page viewadd_to_cart– Product added to cartremove_from_cart– Product removed from cartview_cart– Cart page viewedbegin_checkout– Checkout process startedadd_payment_info– Payment method selectedadd_shipping_info– Shipping info enteredpurchase– Order completedrefund– Order refunded (server-side only)
Full E-Commerce Data:
{
event: 'purchase',
event_id: 'adt_order_12345',
transaction_id: '12345',
value: 199.99,
currency: 'USD',
tax: 18.00,
shipping: 10.00,
items: [
{
item_id: 'SKU-001',
item_name: 'Product Name',
price: 99.99,
quantity: 2,
item_category: 'Category'
}
]
}
Custom Events
Send Custom Events Server-Side:
Use the ADT API in your custom code:
<?php
// PHP - WordPress Backend
if (function_exists('adt_track_event_serverside')) {
adt_track_event_serverside('custom_event', [
'parameter1' => 'value1',
'parameter2' => 123,
'user_type' => 'premium'
]);
}
Or trigger from JavaScript (will send both client + server):
// JavaScript - Frontend
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'custom_event',
parameter1: 'value1',
parameter2: 123,
user_type: 'premium'
});
Advanced Configuration
WooCommerce-Specific Settings
Refund Tracking:
Automatically enabled when GA4 MP is active
Sends refund events server-side immediately
Includes full refund details and reason
Order Data:
Customer type (new vs. returning)
Lifetime value
Order count
Product categories
Custom Event Mapping
Map Custom Events to GA4 MP:
In wp-config.php or theme functions:
// Define which events should be sent server-side
add_filter('adt_ga4_mp_events', function($events) {
$events[] = 'lead_generated';
$events[] = 'trial_started';
$events[] = 'subscription_upgraded';
return $events;
});
Client ID Management
How Client IDs Work:
ADT uses multiple strategies to maintain consistent client IDs:
- GA4 Cookie (if available):
_gacookie value - Session ID: WordPress session ID
- Generated UUID: Fallback unique identifier
Benefits:
- User journey continuity across client/server events
- Accurate user-level reporting
- Proper attribution
Custom Client ID:
// Override client ID generation
add_filter('adt_ga4_mp_client_id', function($client_id, $user_id) {
// Use your own user identifier
return 'custom_' . $user_id;
}, 10, 2);
User Properties
Send User Properties Server-Side:
// Set user properties for server-side events
add_filter('adt_ga4_mp_user_properties', function($properties, $user_id) {
$properties['user_tier'] = 'premium';
$properties['account_age_days'] = 365;
$properties['lifetime_value'] = 1999.99;
return $properties;
}, 10, 2);
Stats and Monitoring
Server-Side Tracking Stats Widget
Location:
Settings → Pixel Tracking → Server-Side Tracking Stats
Metrics Available:
1. Event Volume (Last 7 Days)
Total Events: 12,458
Client-Side: 8,234 (66%)
Server-Side Only: 4,224 (34%)
2. Recovery Rate
Events Blocked Client-Side: 34%
Ad Blocker Impact: ~30%
iOS ATT Impact: ~4%
3. Event Breakdown
page_view: 5,234 (42%)
add_to_cart: 1,456 (12%)
purchase: 234 (2%)
form_submit: 892 (7%)
[... other events ...]
4. Performance Metrics
Avg. Response Time: 145ms
Success Rate: 99.8%
Failed Requests: 24 (0.2%)
Interpreting Stats
Healthy Setup:
✓ 20-40% server-side recovery rate (typical)
✓ 99%+ success rate
✓ <500ms avg response time
✓ Client + server event counts align
Potential Issues:
⚠ <10% recovery rate → May indicate dual tracking off
⚠ <95% success rate → Check error logs
⚠ >1000ms response time → Server performance issue
⚠ Server events >> client events → Client-side may be broken
Migration Guide
Moving from Client-Side Only to Server-Side
Phase 1: Preparation (Week 1)
- Ensure ADT premium license active
- Document current GA4 setup
- Note baseline event volumes
- Create test plan
Phase 2: Enable Dual Tracking (Week 2)
- Complete GA4 MP setup (this guide)
- Keep dual tracking enabled
- Enable debug mode for first 48 hours
- Monitor Stats Widget daily
Phase 3: Validation (Weeks 3-4)
- Compare GA4 reports: client vs. server vs. total
- Verify deduplication working (no double-counting)
- Check recovery rate (should see 20-40% lift)
- Test all critical events (purchases, leads, etc.)
Phase 4: Optimization (Week 5+)
- Decide: Keep dual tracking or go pure server-side?
- Document recovery rate and business impact
- Update privacy policy if needed
- Disable debug mode (production)
Phase 5: Ongoing (Monthly)
- Review Stats Widget
- Check for failed requests
- Monitor GA4 data quality
- Rotate API secret (every 6-12 months)
FAQ
General Questions
Q: Is GA4 Measurement Protocol free? A: GA4 MP itself (Google’s API) is free. However, this ADT feature requires a premium license.
Q: Will this slow down my website? A: No. Events are sent asynchronously from your server. Zero impact on page load speed.
Q: Does this work with caching plugins? A: Yes. Server-side tracking works perfectly with caching (WP Rocket, W3 Total Cache, etc.).
Q: Can I use this without GTM? A: Yes! Server-side tracking works independently. You can send events directly to GA4 without GTM.
Q: Does this replace client-side tracking? A: It can, but we recommend dual tracking (both client + server) for maximum reliability and GTM compatibility.
Technical Questions
Q: How are client IDs maintained across client and server? A: ADT extracts the client ID from GA4’s _ga cookie and uses it for server-side events, ensuring consistent user tracking.
Q: What happens if the GA4 API is down? A: Events are queued and retried automatically. If GA4 is unreachable, events are logged for manual review.
Q: Can I send historical events retroactively? A: No. GA4 MP only accepts real-time or slightly delayed events (up to 72 hours old).
Q: How is PII handled in server-side events? A: ADT hashes PII before sending (email addresses, phone numbers). Raw PII is never sent to GA4.
Compliance Questions
Q: Is server-side tracking GDPR compliant? A: Yes, when configured properly. ADT respects CMP consent and allows users to opt out. However, you must update your privacy policy to disclose server-side tracking.
Q: Does this bypass user consent? A: No. ADT respects consent management platform (CMP) decisions. If user denies analytics consent, server-side tracking is paused.
Q: Do I need to update my privacy policy? A: Yes. You should disclose that analytics data is collected both client-side and server-side.
Business Questions
Q: What’s the typical ROI of server-side tracking? A: Most sites see 20-40% lift in tracked events, leading to more accurate attribution and better ad spend decisions. E-commerce sites often see 6-12 month ROI.
Q: How much does this cost compared to a server-side GTM container? A: Significantly less. Server-side GTM requires Google Cloud Platform hosting ($30-300/month). ADT GA4 MP uses your existing WordPress server (no additional hosting costs).
Q: Can this replace Google Tag Manager entirely? A: For basic GA4 tracking, yes. However, GTM is still valuable for complex tagging, A/B testing platforms, and third-party pixels.
Support and Resources
Getting Help
Plugin Support:
WordPress Admin → Advanced DataLayer → Support
Documentation:
- Complete Event Documentation
- GTM Setup Guide
- Developer Reference
Community:
- Support Forum: [Link to forum]
- GitHub Issues: [Link to repo]
Additional Resources
Google Analytics 4:
Server-Side Tracking:
- Understanding Server-Side Tracking
- Event Deduplication in GA4
Changelog
Version 1.1.0 (Current)
- Enhanced logging for troubleshooting
- Improved Stats Widget with 7-day metrics
- Better error messages for failed requests
- Keepalive support for page unload events
Version 1.0.0
- Initial GA4 Measurement Protocol release
- Dual tracking mode
- Automatic deduplication
- Setup wizard
- WooCommerce refund support
Glossary
API Secret: A credential generated in GA4 that authorizes server-side event submissions via the Measurement Protocol.
Client ID: A unique identifier for each user, stored in the _ga cookie, used to track users across sessions.
Deduplication: The process of preventing the same event from being counted twice when sent via both client-side and server-side methods.
DebugView: A real-time GA4 report that shows events as they’re received, useful for testing and validation.
Dual Tracking: Sending events simultaneously via client-side (browser/GTM) and server-side (Measurement Protocol) methods.
Event ID: A unique identifier for each event, used by GA4 to deduplicate events received from multiple sources.
Measurement Protocol: Google’s API for sending analytics data directly to GA4 from servers, bypassing the browser.
Recovery Rate: The percentage of events that were blocked client-side (by ad blockers or privacy tools) but successfully captured server-side.
Need Help? Contact support or visit our documentation site for more guides and tutorials.
Success with Server-Side Tracking? We’d love to hear your results! Share your wins in our community forum.