GA4 Telegram reports

GA4 reports in Telegram. Scheduled from any Node.js job.

Monitor website traffic, countries, sources, pages, and custom events across one site or many without opening Google Analytics every morning.

Web Analytics Reporter is a small Node.js package for teams that want a clear daily analytics summary in Telegram using GA4, a service account, and the scheduler they already use.

npm install web-analytics-reporter
Preview of a daily GA4 report sent to Telegram from a scheduled Node.js job
Dependency-free No runtime npm dependencies.
Node.js 18+ Works in cron jobs, serverless functions, and app servers.
Multi-site One endpoint can report on many GA4 properties.
Secure cron Requires a secret by default.

Built for analytics summaries people actually read.

GA4 is powerful, but daily monitoring should be simple. This package turns the metrics you check most often into a concise Telegram message.

Daily GA4 traffic summary

Track users, sessions, page views, and previous-day change from the Google Analytics Data API.

Countries and sources

See where users came from and which countries drove the most traffic yesterday.

Custom event counts

Report important events such as downloads, signups, guide clicks, support clicks, or checkout starts.

Telegram destination

Send reports to a direct chat, private group, or team channel through a Telegram bot.

Scheduler ready

Run from Vercel Cron, GitHub Actions, Netlify, Railway, Express, or a plain Node.js cron job.

Type declarations

Use typed public APIs without a build step. The package stays CommonJS and deployment-friendly.

Set up a daily analytics report in four steps.

Use GA4 as the source, Telegram as the destination, and any Node.js scheduler as the runner.

1

Create GA4 access

Enable the Google Analytics Data API and give a service account Viewer access to the GA4 property.

2

Create Telegram bot

Use BotFather, get the bot token, start a chat, and save the target chat ID.

3

Add API route

Configure ga4Source, telegramDestination, one or more sites, and a long CRON_SECRET when exposing an endpoint.

4

Schedule report

Run with your scheduler, test with dryRun, then let the report send daily.

Example

One runner, many analytics reports.

Configure separate site IDs and GA4 property IDs, then send one report or every configured report from the same job.

daily-summary.js Node.js
const {
  ga4Source,
  runDailySummary,
  telegramDestination
} = require("web-analytics-reporter");

async function main() {
  await runDailySummary({
    source: ga4Source({
      clientEmail: process.env.GOOGLE_CLIENT_EMAIL,
      privateKey: process.env.GOOGLE_PRIVATE_KEY
    }),
    destination: telegramDestination({
      botToken: process.env.TELEGRAM_BOT_TOKEN
    }),
    sites: [
      {
        id: "marketing",
        name: "Marketing Site",
        ga4PropertyId: "123456789",
        telegramChatId: process.env.TELEGRAM_CHAT_ID
      }
    ]
  });
}

main();

Direct answers for common searches.

Short, specific answers help people and answer engines understand exactly what the package does.

How do I send GA4 reports to Telegram?

Install web-analytics-reporter, connect GA4 with a service account, add a Telegram bot token and chat ID, and schedule the report with your preferred Node.js runner.

Can I monitor multiple websites?

Yes. Add multiple site configs with separate GA4 property IDs. Run every report or select a single site ID such as marketing.

Is this a replacement for GA4?

No. It reads GA4 data and delivers a readable daily summary so you can monitor traffic without opening the GA4 interface every day.

Does it support custom events?

Yes. You can report custom GA4 events like downloads, signups, support clicks, and guide clicks with custom labels per site.

Why use this instead of a dashboard?

Dashboards are useful for investigation. A daily Telegram report is better for routine visibility.

Dashboard-only workflow

  • Requires someone to remember to open analytics.
  • Often hides simple daily signals behind many reports.
  • Harder to share consistently with small teams.

Daily report workflow

  • Arrives automatically where the team already talks.
  • Highlights traffic, sources, countries, pages, and actions.
  • Keeps the team aware without replacing deeper analysis.

Open source package

Start with a readable GA4 report tomorrow morning.

Install the package, add one API route, test with dryRun=1, then schedule your daily website analytics summary.

Questions or feedback: contact@analyticsreporter.xyz