GA4 · Daily · 07:00 your time

Your GA4 email, minus the script.

Users, sessions, page views, engagement and key events, each vs the previous day, last week and last month. Computed from the GA4 Data API, never generated. Viewer access is enough.

Free: 3 GA4 KPIs, no card. All seven sources, unlimited KPIs: from €4/mo.

Need GA4's own scheduled email instead? How to schedule GA4 email reports →

From
Morning Pulse <noreply@mail.morningpulse.app>
Subject
Morning Pulse — Fri, Oct 16
07:00

Morning Pulse App

Friday, October 16, 2026

Hello Alex,

Here are your numbers:

Fieldnote

Web

KPIPeriodValue
Active Users
activeUsers
Oct 15 2,418
Sessions
sessions
Oct 15 3,207
Page / Screen Views
screenPageViews
Oct 15 9,860
Engagement Rate
engagementRate
Oct 15 58.4%
Bounce Rate
bounceRate
Oct 15 41.6%
Real layout. Illustrative numbers. Bounce rate is lower-is-better, so a drop shows in green.

01 — Build vs run

The first runReport call takes an afternoon. Here's month six.

OAuth Your scriptGoogle access tokens last an hour. Forget the refresh and the 06:00 run gets a 401. Morning PulseRefreshed before they expire, on every call.
Days Your scriptWithout the date dimension, runReport returns one total for the whole range, not one per day. Morning PulseOne value per date, cut in the property's timezone, like the GA4 UI.
Quotas and timeouts Your scriptOne 429 or 503 from the Data API and the morning report is empty. Morning PulseRetried with jittered backoff, honoring Retry-After.
Numbers Your scriptAn LLM summarizing the JSON can round, swap or invent a percentage. Morning PulseArithmetic in code. No model writes a number.

02 — What's inside

Twenty GA4 metrics to pick from. Plus your own.

Quick setup starts with active users, sessions, new users and page views (the first three on Free). Any other metric your property exposes works too, custom metrics included. Aggregation is how days add up when you pick a weekly or monthly KPI instead of a daily one.

KPI Aggregation
Active UsersactiveUsersdaily average
New UsersnewUserssum
Total UserstotalUsersdaily average
Sessionssessionssum
Sessions Per UsersessionsPerUseraverage
Page / Screen ViewsscreenPageViewssum
Views Per SessionscreenPageViewsPerSessionaverage
Avg Session DurationaverageSessionDurationaverage
Bounce RatebounceRateaverage · lower is better
Engaged SessionsengagedSessionssum
KPI Aggregation
Engagement RateengagementRateaverage
Event CounteventCountsum
Key EventskeyEventssum
Total RevenuetotalRevenuesum
PurchasesecommercePurchasessum
User Engagement DurationuserEngagementDurationsum
DAU / MAUdauPerMauaverage
DAU / WAUdauPerWauaverage
Crash-Free Users RatecrashFreeUsersRateaverage
Crash-Affected UserscrashAffectedUsersdaily average

Lag · yesterday, in the property's timezone. Daily totals for the property: no breakdown by source, page or country.

03 — How it works

Set it up once. Read it every morning.

  1. 01

    Add your GA4 property ID

    The number from GA4 Admin, on the app you create in Morning Pulse.

  2. 02

    Sign in with Google

    Read-only analytics.readonly. Quick setup adds your KPIs with 90 days of history.

  3. 03

    Read it at 7:00

    Your latest GA4 day, usually yesterday, every morning at 7:00 your time.

Read-only. One scope.

analytics.readonly, nothing else.

Reads

  • Daily totals for the metrics you pick, on the property you add
  • The property's metric list, custom metrics included

Never

  • Changes your GA4 configuration
  • Reads data per user, page or traffic source
  • Keeps its token after you disconnect

Official APIs, read-only access wherever the API offers it. Morning Pulse never edits your apps, orders or payments.

Step-by-step GA4 guide →

04 — FAQ

GA4 questions, answered straight.

Which GA4 metrics are in the email?

The ones you pick: 20 GA4 metrics such as active users, sessions, page and screen views, engagement rate, bounce rate, key events and total revenue, or any other metric your property exposes, custom metrics included. Each one is a daily total for the property, compared with the previous day, last week and last month. There is no breakdown by traffic source, page or country.

Why not script it with the GA4 Data API?

You can, and the first runReport call takes an afternoon. Then it has to keep running: Google access tokens expire after an hour, quota errors and timeouts hit the morning run, and a model summarizing the JSON can round, swap or invent a percentage. Morning Pulse refreshes the token before it expires, retries with backoff, asks for one value per day, and does the arithmetic in code.

How is this different from GA4's own emailed reports?

GA4's scheduled emails need the Administrator role, arrive as a PDF or CSV file, and stop after 12 months at most unless an admin renews them; recipients must have access to the property. Morning Pulse needs only Viewer, puts the numbers in the email with each daily KPI compared with the previous day, last week and last month, has no end date, and on Starter and Pro adds six more sources. If GA4's own reports already work for you, you may not need Morning Pulse. Step by step: How to schedule GA4 email reports.

What access does Morning Pulse need to my Google account?

One scope: analytics.readonly. Morning Pulse reads daily totals for the property you add and can't change your GA4 configuration. Disconnecting GA4 in Morning Pulse revokes the grant at Google and deletes the stored token.

Can I track several GA4 properties?

One GA4 property per app. Free and Starter cover 1 app; Pro covers unlimited apps, so a website and a mobile app can each have their own property. Every app lands in the same morning email, in its own section.

How much does it cost?

Free is €0 forever: 1 app, 1 data source, 3 KPIs and the daily email, with no card. Starter is €4/month or €40/year: 1 app, unlimited KPIs, all seven sources. Pro is €8/month or €80/year: unlimited apps, anomaly alert emails, weekly, monthly and quarterly emails, unlimited recipients, read-only team access and a morning brief on WhatsApp (paid Pro by card only, not the trial or Shopify billing; EU, India and Canada numbers). Your first Starter or Pro subscription starts with a 14-day trial, and checkout asks for a card. See pricing.

Skip the script. Read your GA4 numbers tomorrow at 7:00.

Free: 3 KPIs from one source, no card.

Get tomorrow's 7:00 email — free