GA4 Measurement Protocol Setup Guide

Advanced DataLayer Tracker – Server-Side Tracking Configuration

Table of Contents

  1. What is GA4 Measurement Protocol?
  2. Why Use Server-Side Tracking?
  3. Prerequisites
  4. Quick Setup (5 Minutes)
  5. Detailed Setup Instructions
  6. Configuration Options
  7. Testing Your Setup
  8. Dual Tracking Mode
  9. Troubleshooting
  10. 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:

  1. User action occurs on your site (e.g., purchase, form submission)
  2. ADT captures the event data
  3. Data is sent from your WordPress server to GA4’s servers
  4. 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

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

  1. Open Google Analytics
  2. Click Admin (bottom left gear icon)
  3. Select your Property
  4. Click Data Streams
  5. Click your website data stream
  6. Copy the Measurement ID (format: G-XXXXXXXXXX)

Example:

Measurement ID: G-ABC123XYZ

Step 3: Create API Secret

In the same GA4 Data Stream page:

  1. Scroll to Measurement Protocol API secrets section
  2. Click Create
  3. Enter nickname: WordPress ADT (or any name you prefer)
  4. Click Create
  5. 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:

  1. Paste your Measurement ID: G-XXXXXXXXXX
  2. Paste your API Secret: abc123DEF456...
  3. 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:

  1. Enable Debug Mode in ADT settings
  2. Trigger events on your site
  3. View events in GA4 DebugView: GA4 → Configure → DebugView
  4. Verify event structure and parameters
  5. 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:

  1. Click Test Connection button
  2. Wait for response (5-10 seconds)
  3. 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:

  1. Open Google Analytics
  2. Go to Configure → DebugView
  3. Trigger an event on your site (e.g., page view, add to cart)
  4. Watch DebugView for real-time events
  5. 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:

  1. Open GA4 Real-time reports
  2. Trigger events on your site
  3. Watch for events appearing in real-time (30-second delay)
  4. 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:

  1. Client-Side → dataLayer → GTM → GA4
  2. 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_id for each event
  • Same event_id used 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:

  1. Regenerate API Secret in GA4: GA4 → Admin → Data Streams → Your Stream → Measurement Protocol API secrets → Create New
  2. Copy the ENTIRE secret (no spaces before/after)
  3. Paste into ADT settings
  4. 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:

  1. Verify format: Must start with G- (not UA-)
  2. Get correct ID from GA4: GA4 → Admin → Data Streams → Your Stream → Measurement ID
  3. 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:

  1. Verify license key entered correctly: Settings → License → Enter License Key
  2. Activate license (click Activate button)
  3. Check license status (should show “Active”)
  4. 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_id parameter 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 load
  • session_start – New session begins
  • scroll – Scroll depth milestones (25%, 50%, 75%, 90%, 100%)
  • user_engagement – Active time on page

Form Events:

  • form_view – Form appears on page
  • form_start – User begins filling form
  • form_submit – Form submitted successfully

Video Events:

  • video_start – Video playback begins
  • video_progress – Progress milestones (10%, 25%, 50%, 75%, 90%)
  • video_complete – Video watched to end

Engagement Events:

  • click – Important element clicks
  • file_download – PDF/document downloads
  • outbound_click – External link clicks

E-Commerce Events (WooCommerce)

Automatic with WooCommerce:

  • view_item – Product page view
  • add_to_cart – Product added to cart
  • remove_from_cart – Product removed from cart
  • view_cart – Cart page viewed
  • begin_checkout – Checkout process started
  • add_payment_info – Payment method selected
  • add_shipping_info – Shipping info entered
  • purchase – Order completed
  • refund – 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:

  1. GA4 Cookie (if available): _ga cookie value
  2. Session ID: WordPress session ID
  3. 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)

  1. Ensure ADT premium license active
  2. Document current GA4 setup
  3. Note baseline event volumes
  4. Create test plan

Phase 2: Enable Dual Tracking (Week 2)

  1. Complete GA4 MP setup (this guide)
  2. Keep dual tracking enabled
  3. Enable debug mode for first 48 hours
  4. Monitor Stats Widget daily

Phase 3: Validation (Weeks 3-4)

  1. Compare GA4 reports: client vs. server vs. total
  2. Verify deduplication working (no double-counting)
  3. Check recovery rate (should see 20-40% lift)
  4. Test all critical events (purchases, leads, etc.)

Phase 4: Optimization (Week 5+)

  1. Decide: Keep dual tracking or go pure server-side?
  2. Document recovery rate and business impact
  3. Update privacy policy if needed
  4. Disable debug mode (production)

Phase 5: Ongoing (Monthly)

  1. Review Stats Widget
  2. Check for failed requests
  3. Monitor GA4 data quality
  4. 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:

Community:

  • Support Forum: [Link to forum]
  • GitHub Issues: [Link to repo]

Additional Resources

Google Analytics 4:

Server-Side Tracking:

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.

Was this article helpful?