How to Monitor GA4 Tracking Issues from Multiple Accounts with Google Sheets
How to Monitor GA4 Tracking Issues from Multiple Accounts with Google Sheets
How to Monitor GA4 Tracking Issues from Multiple Accounts with Google Sheets

How to Monitor GA4 Tracking Issues from Multiple Accounts with Google Sheets

Enjoying this article?
Share it on social media!
Contents

If you manage multiple websites, the last thing you want is to discover that one of them hasn’t been tracking visitors for days. You can’t rely on manually checking each GA4 property; it’s inefficient and prone to human error.

The whole thing takes under an hour to set up and saves you from endless babysitting.

SyncWith

This guide will walk you through a step-by-step setup using Google Sheets and the SyncWith add-on to automatically detect and flag any tracking issues (like zero traffic) across multiple GA4 properties.

  • SyncWith to pull traffic data into Google Sheets
  • Google Apps Script to detect issues
  • Automated email alerts to notify your team

Step 1: Pull GA4 Traffic Data into Google Sheets

Use SyncWith to pull your traffic data into a Google Sheet. It connects directly to GA4 and updates automatically.

GA4 Traffic Data

How to set it up:

  1. Connect your Google Analytics account to SyncWith.
  2. Create a report grouped by:
    • Date
    • Property Name
  3. Add the metric: Total Users
  4. Filter the report to the last 3 days.
  5. Output the results to a sheet named something like 3 Day Report.

You’ll get a table that looks like this:

Total Users Property Display Name Date
52 Website Property 1 G4 2025-06-02
0 Website Property 2 G4 2025-06-05
218 Website Property 3 G4 2025-06-05

Each row represents a day of traffic for a GA4 property.

Step 2: Use Google Apps Script to Check for Zero Traffic

Now that your sheet is automatically updated, we’ll write a script to scan for any property with zero users in the past 3 days. If any are found, it sends an email alert.

Status Email - All Good

G4 Health Check

Status Email - Oh no, but check some accounts.

GA4 Tracking Issues

Here’s the script:

function sendG4HealthCheckAlert() {
  const SPREADSHEET_URL = 'https://docs.google.com/spreadsheets/d/Make_Sure_You_Use_Your_Sheets_ID/edit#gid=0';
  const SHEET_NAME = '3 Day Report';
  const EMAIL_TO = '[email protected], [email protected]';
  const EMAIL_FROM = '[email protected]';
  const EMAIL_SUBJECT = '⚠️ G4 Health Check';

  const ss = SpreadsheetApp.openByUrl(SPREADSHEET_URL);
  const sheet = ss.getSheetByName(SHEET_NAME);
  const data = sheet.getRange(3, 1, sheet.getLastRow() - 2, 3).getValues();

  const zeroAccounts = data
    .filter(row => row[0] === 0)
    .map(row => `• ${row[1]} - GA4 on ${row[2]}`);

  let messageBody;

  if (zeroAccounts.length > 0) {
    messageBody = `
⚠️ G4 Health Check

One or more accounts have not recorded visits in the last 3 days:

${zeroAccounts.join('
')}

Open Dashboard
    `;
  } else {
    messageBody = `
✅ G4 Health Check

All accounts are reporting data in the last 3 days.

Open Dashboard
    `;
  }

  GmailApp.sendEmail(EMAIL_TO, EMAIL_SUBJECT, '', {
    htmlBody: messageBody,
    name: 'Bright Vessel Reports',
    from: EMAIL_FROM
  });
}

You can add or remove emails in EMAIL_TO. The script pulls data from the sheet, filters for rows where the user count is zero, and sends a clean alert listing the offending properties.

Step 3: Automate It with a Time-Based Trigger

To make this check run daily:

  1. In your Sheet, go to Extensions > Apps Script
  2. Paste the script above
  3. Click the clock icon on the left (Triggers)
  4. Set sendG4HealthCheckAlert to run every day at a time of your choice

No manual checking. No forgotten data issues. If a property stops tracking, your team gets notified.

Common Error: "400 Bad Request" When Opening Apps Script

400 Bad Request

If you try to open Apps Script and get hit with a 400 Bad Request error, it’s because Google doesn't play nice when you're logged into multiple accounts at once.

Fix:

  • Sign out of all Google accounts
  • Log in with only the one who owns the Sheet
  • Or use an incognito window with a single account

This is a Google session issue, not your code or setup.

Final Thoughts

This setup is lean and fast. It does not use third-party dashboards or expensive tools. It uses data pulled via SyncWith and a simple script, ensuring everything runs properly.

If a site flatlines, you’ll know within 24 hours, not three weeks later when a client starts yelling.

Work with the Experts at Bright Vessel

At Bright Vessel, we specialize in building smart, scalable analytics systems for multi-location businesses, schools, and agencies. From Google Analytics 4 health monitoring to SEO performance alerts, we help our clients stay ahead of tracking failures and performance drops. Whether you're managing a handful of properties or hundreds, our team ensures your data flows seamlessly and your decision-making stays informed. Need a custom solution like

Get Your Free SEO Audit

Free SEO Audit Form

"*" indicates required fields

This field is for validation purposes and should be left unchanged.
Contents
Enjoying this article?
Share it on social media!
Get Your Free SEO Audit

Free SEO Audit Form

"*" indicates required fields

This field is for validation purposes and should be left unchanged.
Get Your Free SEO Audit

Free SEO Audit Form

"*" indicates required fields

This field is for validation purposes and should be left unchanged.
Enjoyed this article?
Share it on social media!

Check out another blog post!

Back to all Blog posts

Let’s work together!

© 2024 Bright Vessel. All rights reserved.
crossmenuchevron-downarrow-left