Wednesday, October 28, 2026

Fixing Broken Blogger Telemetry: Upgrading to GA4, Cross-Domain Linking, and Excluding Admin Visits

If you've been running a legacy technical blog on Google Blogger, chances are your traffic telemetry is either dead or wildly distorted. Older Blogger templates relied on Universal Analytics (UA-XXXXX-Y), which stopped recording hits when Google permanently sunsetted the platform. Additionally, Blogger’s native "Stats" tab counts every scraping bot, RSS scanner, and search crawler as a legitimate human visit.

Here is an end-to-end guide on migrating your Blogger instance to modern Google Analytics 4 (GA4), configuring multi-domain tracking if you run a separate business or portfolio site, filtering out your own admin pageviews, and injecting clean, XML-safe templates.


1. Provisioning a Modern GA4 Measurement ID

GA4 properties identify websites via a Measurement ID starting with a G- prefix instead of the obsolete UA- tags.

  1. Navigate to Google Analytics.
  2. In the bottom-left corner, click Admin (gear icon).
  3. Under Data collection and modification, select Data streams.
  4. Click into your Web stream. In the top-right corner of the Web stream details pane, locate and copy your Measurement ID (e.g., G-DN6TEYJ52G).

2. Deploying the Tag to the Blogger Dashboard

Blogger features a native integration field that injects the required gtag.js headers across your entire site structure without manually modifying XML headers:

  1. Open your Blogger Dashboard.
  2. From the left-hand navigation rail, click Settings → Basic.
  3. Locate Google Analytics Measurement ID.
  4. Clear out any expired UA- code, paste your new G-XXXXXXXXXX tag, and click Save.

3. Configuring Cross-Domain Measurement

If your blog serves as a funnel to your primary company website, agency, or portfolio, sending users from your blog to your main domain typically splits the session into two disconnected visits. Cross-domain measurement keeps attribution intact:

  1. In GA4, return to Data streams → click your web stream → click Configure tag settings.
  2. Under the Settings card, click Configure your domains.
  3. Click Add condition:
    • Match type: Contains
    • Domain: Your primary site domain (e.g., yourcompany.com)
  4. Click Add condition again:
    • Match type: Contains
    • Domain: Your blog domain (e.g., yourblog.com)
  5. Click Save. GA4 will now automatically append linking query parameters across cross-domain anchor tags, preserving initial session origin, referrer sources, and conversion funnels.

4. Eliminating Self-Traffic & Bringing Filters Out of Testing

Frequent editing and testing will corrupt your metrics if your internal views aren't excluded. You should drop self-traffic at both the GA4 level and Blogger level:

A. GA4 Internal IP Exclusion
  1. In GA4 Admin, navigate to Data streams → Configure tag settings → Show all → Define internal traffic.
  2. Click Create, assign a name (e.g., Office IP), set Match type to IP address equals, and enter your public WAN IP.
Crucial Step: Taking Filters Out of Testing Mode

By default, GA4 creates the Internal Traffic data filter in Testing mode. In this mode, GA4 evaluates the traffic and flags it with a dimension, but does not actually exclude it from your metrics. You must manually activate it:

  1. Return to the Admin panel under Data collection and modification → Data filters.
  2. Click the Internal Traffic row.
  3. Scroll down to Filter state, select Active, and click Save.
  4. Confirm by clicking Activate filter. Only now will your internal visits be permanently filtered from live analytics data.
B. Blogger Dashboard Native Blocker

In the Blogger left sidebar, click Stats → scroll to the very bottom → click Manage tracking your own pageviews → check "Don't track my views for this blog". This drops a client-side tracking cookie in your browser to stop Blogger's internal counter from registering your session.

5. XML-Safe In-Article Conversion Cards & Obfuscation

When adding conversion elements or lead capture boxes under individual blog posts, standard HTML can cause compilation errors inside Blogger's XML parser. Common pitfalls include:

  • Reserved Entities: Characters like right arrows (→) will crash the XML compiler with a SAXParseException. Always use numeric entities (→) or raw UTF-8 characters (→).
  • CDATA Block Wrapping: Any JavaScript containing logical operators (like && or <) must be encapsulated within //<![CDATA[ ... //]]> blocks.
  • Scraper Obfuscation: Avoid hardcoding raw phone numbers or email addresses in post bodies. Storing contact points in Base64 and unmasking them via DOM replacement on user interaction shields you from scraping crawlers:
<!-- Lightweight Obfuscated Reveal Component -->
<span style="font-size: 13px;">Direct Support: 
  <strong id="lead-ph" style="cursor: pointer; color: #0284c7; text-decoration: underline;" 
          onclick="revLead(this)" onmouseover="revLead(this)">
    Reveal Contact Line
  </strong>
</span>

<script type="text/javascript">
//<![CDATA[
function revLead(el) {
  if (!el || el.getAttribute('data-unmasked') === '1') return;
  try {
    // Encoded '555-555-0199' in Base64
    var p = atob('NTU1LTU1NS0wMTk5');
    var a = document.createElement('a');
    a.href = 'tel:' + p.replace(/-/g, '');
    a.textContent = p;
    a.style.color = '#0284c7';
    a.style.fontWeight = '700';
    a.style.textDecoration = 'none';
    el.setAttribute('data-unmasked', '1');
    el.parentNode.replaceChild(a, el);
  } catch(e) {}
}
//]]>
</script>

6. Testing Realtime Telemetry

Once configured, verify transmission:

  1. Open a clean Incognito or Private browsing window (ensuring it's outside your filtered IP or on a mobile carrier connection).
  2. Load an article on your blog.
  3. In your Google Analytics panel, select Reports → Realtime.
  4. Within 30 seconds, you will see a live session record in the geographic distribution map alongside automatic telemetry for user engagement, scroll depth, and outbound link clicks.
Enterprise Infrastructure & Security Support

Need assistance hardening your network perimeter, orchestrating Hyper-V clusters, deploying SentinelOne EDR, or configuring multi-tenant Microsoft 365 environments? Pat's IT Solutions, LLC provides enterprise-grade co-managed IT, 24/7/365 monitoring, and weekend SLAs for commercial organizations across New Jersey.

Schedule an Infrastructure Audit → Phone: Reveal Direct Line

No comments: