Pam Ann Marketing
SEO/PPC/Analytics Services
You are here
Stealth Search & Analytics
Resell Pam Ann Services
Visit Site →
contElevate
Content Intelligence Platform
Visit Site →
Pam Ann AI
AI & Software Development
Visit Site →

GA4 Case Study: Rebuilding the Data Foundation for a Regional Electric Utility

Graphic of a stylized analytics dashboard with various data visualizations, including line graphs, donut charts, funnel charts, gauge charts, horizontal and vertical bar charts, and a map of the United States.

When a regulated electric utility serving hundreds of thousands of customers in a major metropolitan market came to us, their GA4 account had been running for years. Events were firing. Reports were populating. On the surface, everything looked fine. But when we started digging into where the data was actually coming from, and what it was actually measuring, a very different picture emerged: a patchwork of orphaned containers, competing properties, and a UTM tagging approach that was sending nearly 20,000 events per month into an untracked black hole.

The marketing team had been making decisions about digital campaigns, homepage content, and customer self-service tools without any reliable way to measure which actions customers were actually taking. Were bill-pay reminders driving customers to enroll in autopay? Were homepage carousel clicks leading anywhere meaningful? Was the new self-service guide page actually reducing calls to the contact center? Nobody could answer those questions with confidence, because the data underpinning the answers had never been properly organized.

This case study covers the full engagement: a structured audit of their Google Tag Manager setup and GA4 account, the creation of a UTM naming convention standard operating procedure, and the build of a Looker Studio reporting dashboard. By the end, the team had a single trusted data stream, a clear tracking standard shared across all internal teams and agency partners, and a live dashboard showing exactly how customers were moving through their website.

For a regulated utility, the business case for accurate analytics looks different than it does for a competitive company. Customers cannot choose a different provider. Brand awareness campaigns do not drive market share. But accurate data still has real stakes. Every customer who completes a self-service task online is a contact center interaction that does not happen. Every enrollment in budget billing, autopay, or a demand-response program represents an operational goal met. And the ability to demonstrate measurable improvement in digital service delivery has implications in the regulatory proceedings where utilities justify their investments. Without reliable data, none of that is quantifiable.

  • Industry: Electric Utilities
  • Client Type: Regional B2C/B2B Regulated Utility
  • Engagement: Project-Based
  • Timeline: 3 Months
  • Core Services: GA4 Audit, Google Tag Manager Audit, UTM Strategy and SOP, Looker Studio Dashboard

The Problem: Data That Looked Healthy and Wasn’t

The client’s GA4 account had not been set up all at once. It had accumulated over time: through a migration from Universal Analytics, through multiple vendor relationships, through internal IT changes, and through a marketing team that was doing its best with the tools it had inherited. The result was a setup that had never been reviewed as a whole.

We discovered four Google Tag Manager containers associated with the account. Only one was actively in use. One appeared to contain nothing but a developer’s test JavaScript, including a snippet that displayed “You Win” when a user typed the Konami code on the website. It had been modified two months before our audit. One contained a GA4 tag sending data to a property that was not owned by the client at all, suspected to belong to a former media buying agency. Two others, created for mobile app tracking in 2022, were completely empty. None of this had been documented or flagged.

The GA4 property landscape was equally tangled. There were multiple properties in the account: one auto-created during the Universal Analytics sunset, one that had been intentionally built but had incomplete configuration, several others created for purposes that the current team could no longer identify. Data was flowing into more than one property simultaneously, which meant no single report could be trusted as the full picture.

Nearly 19,531 events were falling into GA4’s “unassigned” channel bucket during a single 28-day period. Those events represented real customer interactions with marketing campaigns, billing communications, and offline materials. They were being recorded, but they were invisible for reporting purposes because the UTM tagging that generated them did not follow GA4’s channel grouping rules.

The marketing team also had no shared standard for how campaigns should be tagged. Different teams, different vendors, and different tools were all applying UTM parameters in different ways. Some were using mediums GA4 did not recognize. Some were applying UTM codes to internal links on the website, which corrupts session attribution. A paid social campaign on Snapchat had been tagged with a medium of “video,” which caused GA4 to classify it as organic social instead of paid social, making the campaign’s contribution invisible in paid channel reports.

The questions the team needed to answer, and could not, included:

  • Which homepage carousel slides were driving the most clicks?
  • Which campaigns were bringing customers to the website versus landing in the data void?
  • How were customers moving through the self-service enrollment flows?
  • Were customers arriving directly at targeted pages through email and billing communications, or were they bouncing?
  • What was the most-clicked content in the main navigation and page footer?

Why GA4 Tracking Problems Are So Common at Utilities and Enterprise Organizations

Organizations with long digital histories, multiple internal departments, and a roster of agency and technology vendors almost always accumulate tracking debt. Someone set up GA4 three years ago. A different team worked with a media agency that needed its own tag added. An IT developer tested something in a staging container and never cleaned it up. None of these decisions were wrong in the moment. But over time, the result is a GA4 account that no one person fully understands, and where “it seems to be working” is the best answer anyone can give.

The Universal Analytics-to-GA4 migration made this worse for nearly every organization. Google auto-created GA4 properties for accounts that had not yet set them up manually. Many organizations ended up with two GA4 properties collecting overlapping data, with neither team sure which one to trust. Configuration settings that existed in UA did not carry over automatically. Data retention defaulted to 2 months instead of the 14-month setting most organizations need for year-over-year comparisons.

UTM tagging problems compound on top of all of this. GA4’s default channel groupings depend on specific source and medium values to classify traffic correctly. Most teams do not know the rules. They use mediums like “bill,” “video,” or “website” because those words describe the channel accurately in plain English. But GA4 does not recognize them. The traffic ends up in the unassigned bucket, invisible for channel reporting, and the team assumes the data is there when it is not. Multiply this across a billing vendor, a media agency, an email platform, and an internal QR code program, and you can easily have tens of thousands of unattributed events every month.

There is a common assumption that regulated utilities have less at stake with digital analytics than competitive businesses do. That assumption is partly right: customer acquisition and brand differentiation metrics matter very little here. But the operational case for accurate data is real. A utility’s website is the primary self-service channel for customers who want to pay bills, enroll in programs, report outages, or start service without calling. The marketing team’s job is not to acquire customers but to move them toward self-service behaviors and program enrollments that reduce operational costs and meet regulatory targets. Without reliable data on what is and is not working, that job cannot be done with any precision.

What We Did: Our Analytics Foundation Approach

Phase 1: Account Inventory

Before recommending any changes, we needed a complete picture of what existed. We audited every GTM container associated with the account, documented each one’s purpose, status, and what was inside it, and built a master tracking spreadsheet that served as the single source of truth for all recommendations going forward.

This phase surfaced the orphaned containers described above, including the test script with the Konami code and the container sending data to a third-party property. We confirmed which container was the live production one, identified the mobile containers as empty holdovers from 2022, and flagged the media agency container for follow-up with the internal IT team. We also catalogued every GA4 property in the account and cross-referenced each one against actual data streams to identify which were receiving traffic and which were collecting dust.

The output of this phase was a clear recommendation: one master GTM container, one master GA4 property, and a documented plan for archiving or removing everything else.

Phase 2: Configuration Audit

With the master property and container identified, we conducted a deep-dive audit against GA4 and GTM best practices. We found several configuration gaps that were affecting data quality even within the production setup.

  • Data retention on the web property was set to 2 months. The mobile app property had already been updated to 14 months. We corrected the web setting immediately.
  • The main domain had not been configured in the Google Tag’s domain settings, which creates cross-domain tracking issues when users move between the main site and authentication or vendor subdomains.
  • Form interaction tracking was turned off in Enhanced Measurement despite the site containing multiple customer enrollment forms.
  • Personally identifiable information was confirmed absent from GA4 data, but query parameters carrying blank PII fields were not being excluded at the GTM level. We recommended adding exclusion rules as a second layer of protection.
  • Internal click tracking had not been implemented, meaning the team could see that users moved from page A to page B, but could not see which button or link they clicked to get there.

Where we had edit access in GA4, we made the changes directly. Where GTM changes required the client’s IT team to review and publish, we set up the tags and triggers in a draft state and alerted the developer lead when each batch was ready for review.

Phase 3: UTM Naming Convention SOP

We built a comprehensive UTM standard operating procedure document customized to this client’s specific channels, vendors, and internal teams. The SOP covered the logic behind GA4’s default channel groupings, explained why the medium parameter is the most critical field to get right, and included worked examples for every channel the marketing team actively uses.

The 19,531 unassigned events traced back to several root causes. The billing vendor’s QR code campaigns were using “bill” as the medium, which GA4 does not recognize as any channel. We provided the correct convention: source of “qr” and medium of “offline.” The homepage carousel had UTM parameters applied to internal links, which is not a best practice. We documented how GTM-based click tracking would replace that approach. A Snapchat paid campaign had been tagged with medium “video,” causing it to appear as organic social in all reports. The fix was medium “paid_social.”

The SOP also addressed the two email platforms the team uses, the new media agency coming onboard, LinkedIn job ads, paid search, and any offline or print materials that drive traffic via special URLs. Our goal was to make it possible for any team member or external vendor to tag a campaign correctly without needing to understand the underlying GA4 channel logic themselves.

Phase 4: Internal Click Tracking Implementation

Because the site had no internal click tracking configured, large sections of customer behavior were invisible even though page-level data existed. We implemented a global internal click tracking tag in GTM that captures click text, click destination, and element identifiers for links across the site. This single tag addressed several tracking gaps at once: carousel slide clicks, navigation menu usage, homepage widget interactions, and footer link popularity.

For a handful of elements where unique identification was difficult due to shared button text or missing HTML IDs, we collaborated with the client’s development team to add identifiers. The developer lead reviewed each GTM change before it was published, following the team’s standard code review policy.

Phase 5: Looker Studio Dashboard Build

With the data collection layer cleaned up and new tracking in place, we built a custom Looker Studio dashboard designed around how the marketing team actually reports internally. Rather than reproducing the confusing default GA4 interface, we structured the dashboard around the questions the team had identified as priorities.

The homepage page includes a visual screenshot overlay showing click counts on key elements, supplemented by tables for dynamic content like the carousel. A site-wide overview page shows rolling 12-month traffic trends, top entry pages, and channel breakdown. The default date range is set to the most recently completed calendar month to support the team’s monthly reporting cycle, with comparison periods available on demand. Placeholder pages were created for the business homepage and key navigation reports as click data accumulates.

Services Delivered

  • GA4 Account Audit: Full inventory of all GA4 properties, identification of the master property, documentation of configuration gaps and recommendations for correction.
  • Google Tag Manager Audit: Inventory of all GTM containers, identification of orphaned or unknown containers, review of existing tags and triggers, implementation of corrected configuration in the production container.
  • Internal Click Tracking: GTM tag implementation capturing internal link clicks site-wide, including carousel slides, navigation menus, and page-level CTAs.
  • UTM Naming Convention SOP: Custom document covering all active channels, worked examples for every identified use case, appendix with GA4 channel grouping logic, and guidelines for onboarding new agency partners to the standard.
  • Looker Studio Dashboard: Custom reporting dashboard with homepage interaction visualization, site-wide traffic overview, rolling trend charts, and monthly reporting defaults.
  • Vendor Coordination Guidance: Written instructions for third-party vendors (newsroom platform, outage map provider) on how to add the GTM container code to their hosted pages.

Results: What the Team Could Finally See and Trust

By the end of the engagement, the client had moved from a fragmented, inherited setup with no clear owner to a single documented, audited data foundation with clear standards for everyone who touches it.

  • One trusted GA4 property: A designated master property, renamed and documented, serves as the single source of truth for all website reporting. Competing and orphaned properties have been identified and slated for archiving.
  • One clean GTM container: The production container is the only active one. Orphaned containers have been identified, the unknown test script has been removed, and the media agency container has been clarified and resolved.
  • Data retention corrected: The web property data retention was updated from 2 months to 14 months, enabling year-over-year comparisons that were previously impossible to build.
  • 19,531 monthly unassigned events now attributable: With the UTM SOP in place and shared with all relevant teams and vendors, the traffic that was previously invisible in channel reports can now be correctly classified as offline, email, or paid social.
  • Homepage click behavior visible for the first time: Internal click tracking captures which carousel slides, homepage widgets, navigation items, and footer links customers interact with, giving the team data to support content and navigation decisions.
  • Enrollment funnel events tracked: Key self-service actions including budget billing enrollment, autopay setup, and service requests now fire correctly against the production GA4 property rather than disappearing into a deprecated Universal Analytics stream.
  • A reporting dashboard built for the actual team: The Looker Studio dashboard defaults to the most recently completed calendar month, shows rolling 12-month trends, and is designed so the marketing team can pull monthly numbers without navigating GA4’s native interface.

Key Takeaways for Your Organization

An inherited GA4 account is not the same as a working GA4 account

If you have never done a formal audit of a GA4 setup that was configured before you arrived, you do not know what you have. Tags may be firing. Data may be flowing into the wrong property, an old test property, or a third-party account that no longer has a relationship with your organization. The number on the dashboard is not proof that anything is working correctly. It is only proof that something is being counted.

The unassigned bucket is where your campaign data goes to disappear

Most teams discover the unassigned channel problem only when they go looking for campaign data and cannot find it. If you are using any channel where you set the UTM medium yourself, including email, billing communications, QR codes, print materials, or paid social campaigns, and you have not checked whether GA4 recognizes those medium values, you almost certainly have events disappearing. The fix is not complicated, but it requires knowing the specific medium values GA4 accepts and updating every team and vendor who tags links to your site.

Your tracking is only as good as the vendors who touch your site

A utility or enterprise organization typically has 5 to 10 third-party vendors hosting tools on their domain or subdomain. Billing platforms, outage maps, self-service portals, newsrooms, survey tools: each one is a potential gap in your analytics. Some of them can accept a GTM container code. Some cannot. Some are iframed and will never be trackable through GA4. Knowing which is which, and having a clear path to working with the ones that can be tracked, is part of having a real data strategy rather than an aspiration toward one.

Reporting tools your team will not use are reporting tools that do not exist

GA4 is powerful and genuinely difficult to navigate for people who did not configure it. If your reporting lives inside the GA4 interface and your marketing team spends 20 minutes clicking around to find monthly numbers, most of them will stop looking. A dashboard that defaults to the right date range, shows the metrics your team actually reports, and does not require GA4 training to open is not a luxury. It is the difference between data being used and data sitting untouched.


Ready to find out what your GA4 account is actually measuring? Pam Ann Marketing specializes in GA4 audits and implementation for organizations that need reliable data to make marketing decisions. Get in touch to start a conversation.

President & Chief Web Traffic Controller at Pam Ann Marketing at Pam Ann Marketing
Recently named one of the “Top 10 Best Women in SEO,” Pam Aungst Cronin, M.B.A. is widely recognized as an expert in SEO, PPC, Google Analytics, and WordPress. A self-proclaimed “geek”, Pam began studying computer programming at 6 years old, started creating websites in 1997 and has been working professionally in the field of e-commerce since 2005. Referred to by Sprout Social as a “Twitter Success Story,” she harnessed the power of social media to launch her own agency in 2011. Pam travels all over the country speaking at conferences and guest lecturing at universities. Click here to read her full bio.
Pam Aungst Cronin