Skip to main content

GA4 Property Creation for a New Client SOP

Overview

  • What: Create a new GA4 Account, Property, and Web Data Stream for a client website under setup@symphonycore.com. Capture the Property ID and Measurement ID, grant the client Editor access, record the IDs in the client profile, and hand the Measurement ID off to the client's GTM container.
  • When: During onboarding, after the client's website domain (staging or production) is known, and before GTM Integration SOP runs. Stage 2 (SETUP) or early Stage 3 (ONBOARDING) per the Client Implementation Lifecycle.
  • Who: Implementation specialist operating in the Chrome profile bound to setup@symphonycore.com. Per KB-014 Shared Email Accounts, client analytics MUST be created under setup@, never admin@.
  • Time Required: 20–30 minutes per client.

GA4 terminology (one-time clarification)

GA4 has three nested objects, and this SOP creates one of each per client. Don't confuse them:

ObjectPurposeWhat we name it
AccountTop-level container that holds Properties<ClientName>_SC_GA4 (per KB-014)
PropertyA single website or app being measuredThe client's domain (e.g. mootslaw.com)
Web Data StreamThe per-platform feed that emits the Measurement IDThe client's domain

Casual conversation uses "GA4 account" to mean any of the three. This SOP uses the precise term in each step.

Prerequisites

  • Access to the Chrome profile signed into setup@symphonycore.com.
  • Client website domain — staging URL is acceptable for SOP execution, but the Web Data Stream URL must be set to the eventual production domain so the Measurement ID doesn't need rework at go-live.
  • Client primary contact email (for the Editor invite).
  • Client folder exists at 09-clients/<client-slug>/ with a populated client profile.
  • Client industry, reporting timezone, and currency confirmed (from the engagement brief).
  • GTM container already exists for the client (or will be created immediately after this SOP per GTM Integration SOP).

Procedure

  1. Sign in as setup@. Open the Chrome profile for setup@symphonycore.com and navigate to https://analytics.google.com. Confirm the avatar at the top-right is setup@. If it shows any other account, stop — do not proceed under the wrong identity. Switching identities mid-SOP creates GA4 properties under the wrong owner and is hard to undo cleanly.

  2. Create the GA4 Account. Click the Admin gear icon → Account column → Create. Set:

    • Account name: <ClientName>_SC_GA4 (use the client's display name; replace spaces with underscores or hyphens consistent with the slug — e.g. MootsPellegrini_SC_GA4)
    • Account data-sharing settings: accept defaults unless the client has opted out of a specific setting (capture any deviation in the client profile).
    • Click Next.
  3. Create the Property. When the property creation flow continues from Step 2:

    • Property name: the client's primary domain (e.g. mootslaw.com).
    • Reporting time zone: match the client's primary business location (NOT SC's home timezone).
    • Currency: match the client's billing currency.
    • Click Next, fill in business details (industry category from engagement brief, business size), then Create.
  4. Create the Web Data Stream. Admin → Data Streams → Add stream → Web.

    • Website URL: the eventual production domain (e.g. https://mootslaw.com) — not the staging URL. The Measurement ID is tied to the data stream, not the domain it currently resolves to; pre-setting production avoids needing to rework Measurement IDs at DNS cutover.
    • Stream name: the client's domain.
    • Enable Enhanced Measurement: leave defaults on (page views, scrolls, outbound clicks, site search, video, file downloads).
    • Click Create stream.
    • Capture the Measurement ID displayed at the top of the stream detail panel — format G-XXXXXXXXXX. This is the value GTM needs.
    • Capture the Stream ID (numeric, also on the stream detail panel).
  5. Configure data retention. Admin → Data Settings → Data Retention.

    • Event data retention: set to 14 months (max under the standard tier).
    • Reset user data on new activity: leave enabled.
    • Save.
  6. Grant client Editor access. Admin → Account Access Management (or Property Access Management for property-only scope — Account Access grants visibility across all properties in this account; for the single-property model documented here they're equivalent in scope, but Account-level invites are simpler to revoke).

    • Click Add (+) → Add users.
    • Email: client's primary contact.
    • Role: Editor — do not select Administrator. Per KB-014, SC retains Administrator so we don't lose access if client staff turns over.
    • Leave "Notify new users by email" checked.
    • Click Add.
  7. Record all IDs in the client profile. Open 09-clients/<client-slug>/<client-slug>-client-profile.md and add the following under the Technical Access section (create the section if absent):

    • GA4 Account Name: <ClientName>_SC_GA4
    • GA4 Property ID: numeric — find at Admin → Property Settings → Property ID
    • GA4 Measurement ID: G-XXXXXXXXXX (captured in Step 4)
    • GA4 Web Stream ID: numeric (captured in Step 4)
  8. Hand off the Measurement ID to GTM. In the client's GTM container (or create one per GTM Integration SOP if not yet provisioned):

    • Create or update the GA4 Configuration tag with the Measurement ID captured in Step 4.
    • Trigger: All Pages.
    • Submit and publish the container version with a clear description (e.g. "GA4 wired to property mootslaw.com (Measurement ID G-XXXXXXXXXX)").
    • Do NOT install the GTM container on the website at this step — that's the job of GTM WordPress Plugin SOP.
  9. Real-Time verification. In GA4: Reports → Realtime. In a separate browser window (incognito, no ad-blocker), load the client site at whichever URL has the GTM container live (staging or production). Confirm at least one Real-Time user appears within ~60 seconds.

Verification

  • GA4 home for setup@symphonycore.com shows an Account named <ClientName>_SC_GA4.
  • That Account contains one Property named for the client's domain.
  • That Property has one Web Data Stream pointing at the production URL, with a captured Measurement ID G-XXXXXXXXXX.
  • Client primary contact received the Editor invite email (or confirmed access via Admin → Account Access Management).
  • Client profile at 09-clients/<client-slug>/<client-slug>-client-profile.md shows all four IDs populated.
  • The client's GTM container has a published GA4 Configuration tag carrying the captured Measurement ID, triggered on All Pages.
  • GA4 Reports → Realtime shows ≥1 user within 60 seconds of a test load.
  • If Real-Time shows nothing: (a) confirm the GTM container is actually installed on the site (run GTM WordPress Plugin SOP verification); (b) confirm the Measurement ID in the GTM tag matches the GA4 Measurement ID character-for-character; (c) disable ad-blockers and retry.
  • Once Real-Time passes, run GTM and GA4 Validation SOP for production-grade confirmation.