MS Analytics
PRIVATE ANALYTICS PLATFORM

Welcome back.

Sign in to your private analytics workspace.

Cloudflare Turnstile protects this sign-in.
Sign in with MS Identity
STEP 2 · VERIFY IT'S YOU

Two-factor verification

Enter your six-digit authenticator code or one of your saved recovery codes.

Made With ❤️ By Mohamad AlSayed
MS ANALYTICSPRIVATE INTELLIGENCE
WORKSPACE
Overview Websites Alerts Pages Reports Traffic intelligence Goals Smart links Intelligence Visit log Operations API & Integrations Automations Notifications Settings Integration
SELF-HOSTED & PRIVATEv3.2.0
MS Analytics / Overview
Live dataMy Account
PERFORMANCE AT A GLANCE

Overview.

Your entire web presence. One clear view. All dates are UTC.

Unique visitors ↗
—
Estimated daily unique browsers
Pageviews ↗
—
Total pages viewed
Returning browsers ↻
—
Daily IDs with 2+ views
Repeat pageviews ↻
—
Views after first per ID
TRAFFIC OVER TIME

Visitor activity

Active now—
Events—
UTC · DAILY
No visits recorded for this period.
Pageviews —
TRAFFIC BREAKDOWN

Understand your audience

Everything important, without the empty boxes.
WHO VISITS

Audience

Devices

Browsers

Operating systems

HOW THEY FIND YOU

Acquisition

Top pages

Traffic sources

Referrers

VISITORS AROUND THE WORLD

Geography

Select a marker to filter the visit log by country.

Country inferred at collection. Older visits may show Unknown.

BEHAVIOR

Top events

Pseudonymous analytics · No tracking cookies · No raw IP storage↓ Export CSV
CONTENT PERFORMANCE

Pages.

See what people read most, with clean page-level metrics.

CONTENT EXPLORER

Page performance

Filtered pageviews for the selected property and period.

—Pageviews
—Last 30 days · UTC
PageTraffic shareViews
BRANDED URL MANAGEMENT

Smart links.

Create short links, track accepted clicks, and manage QR codes. Hosted privately on go.ms.sy.

ADMIN ONLY · HTTPS REDIRECTS
—Short links
—Total accepted clicks
—Last 7 days
—Daily unique / link · 7d
NEW BRANDED LINK

Create a smart link

No external shortener. Links redirect over HTTPS and are stored in your own database.

Campaign tags (UTM) Optional · source, medium and campaign

YOUR SHORT URLS

Link management

Search and manage each link without pop-ups.

Removing a group never removes its links. Additional branded domains appear only when explicitly configured with DNS and HTTPS.

Bulk CSV tools Export all links · Import up to 100 safely
↓ Export links CSV
↓ Download template

Admin only. Imports 1–100 links atomically: invalid URLs, duplicate slugs, or unconfigured domains reject the entire file. Existing links and click statistics are never overwritten. The exported statistics are read-only on reimport.

0 selected

Loading smart links…

Only accepted human-like clicks are recorded. DNT, GPC, HEAD, bot previews and prefetches are excluded. No raw IP addresses or tracking cookies.

RELIABILITY & OPERATIONS

Operations.

Read-only health and delivery signals from your own infrastructure. All timestamps are UTC.

Registered websites—Accepted collections
Accepted pageviews · 24h—Data reflects consent choices
Failed deliveries—From scheduled reports
API errors · 24h—Authenticated read-only APIs
SYSTEM READINESS

Platform health

Internal read-only measurements, not an external uptime guarantee.

—
DATA QUALITY

Collection quality

Accepted pageviews only, last 7 rolling days.

CONNECTED PROPERTIES

Website collection pulse

Zero activity is not an outage. DNT, GPC, consent and inactivity can suppress collections.

Manage websites
WebsiteState24h7dLast acceptedCollection signal
Loading…
DELIVERY HEALTH

Scheduled reports

Queue and schedule state, without exposing recipients or credentials.

Notifications
INTEGRATIONS & SECURITY

API & account signals

Aggregates only; no bearer tokens, passwords or visitor IPs.

API keys
READ-ONLY EXPORT

Operational snapshots

Download site activity, delivery queue or API summary as CSV. No maintenance actions are performed.

Sites CSVDelivery CSVAPI CSV

Read-only overview. PostgreSQL estimates, accepted tracking signals and queue metrics are not a substitute for external uptime monitoring or isolated backup restore tests. No IP addresses are stored by this page.

SECURE INTEGRATIONS

API & Integrations.

Connect your other projects without sharing your administrator password. Read-only access, scoped by permission and website.

API TOKEN MANAGEMENT

Issue a restricted key

Only GET endpoints are exposed. Keys are stored as hashes; the full secret is shown once.

Read-only scopes
Copy your key now — it will not be shown again.

Keep it in a secret manager. Never put API keys into website JavaScript, query strings or public source code.

ACTIVE & REVOKED KEYS

Manage access

Review usage, permissions and expiry. Revoke a key instantly without affecting the others.

No keys created yet.

Recent calls

DEVELOPER QUICK START

API v1 · read-only

Use Authorization: Bearer YOUR_KEY over HTTPS. No admin session cookies, write operations, IP addresses or visitor identifiers are exposed.

GET /api/v1/metaGET /api/v1/stats?days=7GET /api/v1/reports?days=30GET /api/v1/goals?days=30GET /api/v1/traffic?days=7GET /api/v1/acquisition?days=30GET /api/v1/export/reports?section=sites&days=30GET /api/v1/export/goals?days=30GET /api/v1/export/traffic?type=daily&days=7GET /api/v1/export/acquisition?type=campaigns&days=30

For website-restricted keys the site is enforced server-side, even when omitted from the URL. Rate limits are per key in 60-second fixed windows. CSV downloads require the same scoped key, not a public link.

Download API guide
TRACKING QUALITY & CONVERSIONS

Traffic intelligence.

Understand accepted activity, data coverage and ordered goal journeys. Privacy-aware SPA navigation, campaign attribution and session estimates.

Ready to load
Pageviews—Accepted pageviews
Estimated visitor IDs—Daily rotating; site-scoped
Custom events—Accepted events
Live · last 5m—Pageviews, not persons
TRACKING HEALTH

Data quality

Coverage describes the stored data; an Unknown entry is not an outage.

GeoIP coverage——
Session ID coverage——
Unknown sources—Accepted pageviews
Unknown systems—Accepted pageviews
ACTIVITY OVER TIME

Pageviews & events

AUDIENCE & ACQUISITION

Traffic sources

Referrers

PERFORMANCE BY WEBSITE

Website breakdown

WebsitePageviewsEvents

Countries

Browsers

Devices

Operating systems

Top pages

Custom events

CAMPAIGN INTELLIGENCE

UTM & SPA acquisition

Only accepted hits with safe campaign labels. Older visits without UTM stay unattributed.

Campaign pageviews—
UTM-tagged views—
SPA navigations—
Estimated visitor IDs—

Campaigns

Source / medium

Landing & route pages

Countries

Daily campaign & SPA activity

Campaign CSV

Aggregate data, protected and spreadsheet-safe.

Campaigns CSV ↓Sources CSV ↓Daily CSV ↓Pages CSV ↓Websites CSV ↓

SESSION QUALITY

Estimated sessions

Choose one website and 7 or 30 days. Session hashes survive up to 30 days and use 30-minute inactivity gaps.

Sessions—
Single-page rate—
Pages / session—
Observed span—

Choose a website; estimates are not exact user sessions.

ORDERED CONVERSION JOURNEY

Two-step goal funnel

Choose one website and two active goals. Only surviving 30-day site-scoped continuity IDs count. Sessions are separated by 30 minutes of inactivity.

Choose a website to see eligible goals.

Started sessions—
Completed sessions—
Drop-off—
Completion estimate—
Export intelligence

Aggregate CSV · no raw identifiers or IP addresses

Daily CSV ↓Sites CSV ↓Sources CSV ↓Quality CSV ↓

Only previously accepted hits are analysed. Visitor IDs rotate daily. Conversion funnels are approximate within a 30-day session-token window, exclude older data lacking continuity IDs, and stop with an error rather than silently truncating busy sites. DNT, GPC and visitor consent are unchanged.

CONVERSION INTELLIGENCE

Goals & conversions.

Measure accepted pageviews and events that matter. No extra cookies or tracking.

Export CSV ↓
Active goals—Across the selected websites
Matched completions—Accepted hits matching active goals
Estimated converters—Summed per goal · not deduplicated
GOAL MANAGEMENT

Conversion goals

Each rule belongs to one website. Matches are computed from accepted historical hits within retention.

—

No goals yet. Create one below.

GOAL INSIGHTS

Daily conversions

Completions—
Estimated converters—
Estimated rate—

Daily activity

Traffic sources

Countries

CONFIGURE A CONVERSION

Create a goal

Exact page, path prefix (segment-aware), or custom event.

Exact page paths start with /. Prefix /pricing matches /pricing and /pricing/plans, not /pricing-extra.

Custom event snippetwindow.msAnalytics?.track('signup_completed');

Accepted tracking only · DNT/GPC/consent preserved · Estimated conversion rate = goal-matching daily visitor IDs ÷ daily pageview visitor IDs per website. It may exceed 100% for events without corresponding pageviews. Editing a rule recalculates history; disabled goals remain visible with historical matches but are excluded from headline totals. No new hit records are created.

ADVANCED REPORTING

Reports.

Compare your websites, discover traffic trends, and export useful data. All periods use UTC.

Select a period to load the report.
Pageviews—vs previous period
Estimated visitors—vs previous period
Websites with traffic—Among reporting websites
WEBSITE COMPARISON

Performance by property

Accepted pageviews and estimated visitors; comparison with the equally long previous period.

—
WebsitePageviewsPrev. viewsChangeEst. visitorsEvents
Open Reports to load site performance.
TRAFFIC TRENDS

Daily activity

Accepted pageviews across the selected period.

UTC

No data loaded.

ACQUISITION

Traffic sources

Where recorded pageviews originated.

No data loaded.

Export data

Three clean CSV files: site comparison, daily traffic, and traffic sources.

Sites CSV ↓Daily CSV ↓Sources CSV ↓

Counts include accepted tracking only. Visitor totals sum site-specific, daily-rotating pseudonymous IDs; they are estimates, not distinct people across sites or days. Current rolling periods may include partial UTC days. Empty or retention-truncated previous periods may have no meaningful percentage change.

ADVANCED VISITOR INTELLIGENCE

Visitor intelligence.

Explore sessions, repeat visits across UTC days and the paths visitors take.

—
Sessions—30-minute inactivity gap
Multi-day browsers—Seen on 2+ UTC dates
Pages / session—Pageviews per session
Single-page sessions—Share with only one pageview
BROWSER JOURNEYS

Session timeline

Choose a session to expand its ordered page path. No pop-ups.

—
Started (UTC)Browser / deviceCountryPagesVisitor IDSession

Open this page to load sessions.

Insights begin with v1.9.0 traffic. Pseudonymous, site-specific browser fingerprints are derived from IP and User-Agent, rotate every 30 UTC days and are cleared after 30 days. No raw IP address or browser storage identifier is retained for this feature. Browser identity is only an estimate, not verified identity. Check applicable privacy notice and consent requirements.

VISITOR INTELLIGENCE

Visit log.

Recent activity, repeated pageviews and privacy-preserving visitor IDs.

Visitor IDs rotate daily (UTC); repeat counts cover the selected period.

Visit activity

Latest 200 records. Raw IP addresses are not stored or displayed.

ACCOUNT & SECURITY

My Account.

Manage your profile, credentials, passkeys and account sessions in one place.

PROFILE

Account information

Your administrator sign-in username remains fixed; profile details are editable.

PASSWORD

Change password

New password: 16–72 bytes. Saved securely and previous sessions invalidated. On rollback to an older app version, the previous .env password may become valid again.

ACCOUNT PROTECTION

Two-factor authentication & passkeys

Keep your account recovery codes offline. Login protection activates only after TOTP confirmation.

Authenticator: checking…Passkeys: checking…Cloudflare: checking…

1 · Authenticator app (TOTP)

Connect any standard 6-digit authenticator app. Scan the QR, then verify the first code.

Authenticator setup QR code

Manual setup key:

Recovery codes · save once

Store the following ten one-use recovery codes in a password manager or offline. They won't appear again.

2 · Passkeys

Register a device passkey to use as an alternative second factor after your password. TOTP must be activated first.

Disable two-factor authentication

Requires your current password and a fresh authenticator code. Disabling TOTP also removes enrolled passkeys and recovery codes.

MS IDENTITY

Single sign-on

Link the administrator to MS Identity. Your local password, authenticator, and recovery method remain active.

SESSION CONTROL

Active sessions & security activity

Revoke all other sessions while keeping the current browser signed in.

DELIVERY CHANNELS

Notifications.

Configure email, Telegram and the private WhatsApp bridge. Send a real test message before enabling schedules.

EMAIL

SMTP

STARTTLS on 587 or implicit TLS on 465; certificates are verified.

TELEGRAM

Telegram Bot

Use a bot token and numeric chat ID. The token is never displayed again.

Check credentials and chat access without sending a message.

WHATSAPP

Private Notification Hub bridge

Only a local HTTP webhook with a compatible signed adapter. No public API.

Hub: checking…

No message is sent by a queue status check.

Direct internal Hub connection uses a fixed recipient configured in MS Notification Hub. Messages are queued, not confirmed delivered. The legacy adapter is ignored while direct Hub credentials are active.

TEST DELIVERY

Send a test message

Requires current account password; each test really calls the selected provider.

SCHEDULED DELIVERY

Send reports automatically

Configure email, Telegram, and your private WhatsApp Notification Hub. All schedules use UTC.

Checking channels…
Delivery channels

The server queues scheduled reports while running. Delivery attempts and errors remain visible. WhatsApp requires an explicitly configured local signed webhook adapter. A 2xx webhook response means acceptance, not verified delivery to a phone.

RULES & EVENT DELIVERY

Automations.

Opt-in alerts for traffic incidents and Smart Links. Email, Telegram, or a private signed WhatsApp adapter.

Active rules0
Queued0
Accepted0
Failed0
NEW AUTOMATION

Create notification rule

New rules are OFF by default. Enabling requires a configured provider. No messages sent by deployment.

Provider settings are managed under Notifications.

Delivery channels

RULE MANAGEMENT

Delivery rules

No automation rules yet.

DELIVERY AUDIT

Recent attempts

Export audit CSV

No delivery attempts yet.

Accepted means a provider/API accepted the request, not proven delivery to a recipient. Retry applies only to failed requests and can resend a previously accepted message if the original response was lost. No raw IP or API secrets are saved here.

PRIVACY CONTROLS

Settings.

Transparent data collection. Your browser stays in control.

BROWSER PRIVACY

Exclude my visits

Opt out of tracking events from this browser on the Analytics domain.

Do Not TrackChecking…
Global Privacy ControlChecking…
Local opt-outChecking…

To exclude visits on ms.sy or any other tracked website, set the preference on that website itself. Previously recorded visits remain unchanged.

MANUAL CONTROL

Site-specific opt-out

Use this in the browser console on the website you want to exclude.

localStorage.setItem('ms-analytics-optout', '1');

To enable tracking again, remove that localStorage key on the same site. This is not a server-wide exclusion.

COLLECTION POLICY

Do Not Track controls

Choose how each website handles browser DNT requests. Default is strict.

Global Privacy Control (GPC) always blocks tracking. DNT remains respected until an explicit visitor decision. Turning OFF the automatic choice bar hides all injected privacy UI on that site, but does not make DNT visitors trackable. Manual consent integration can still be used where appropriate. Local opt-out always wins.

AUTOMATIC VISITOR CHOICE BAR · OPTIONAL

The existing /t.js tracker can show a consent strip on DNT browsers when the site uses Explicit consent mode and the switch above is ON. Turn it OFF for any website where you do not want an automatic bar. With the bar OFF, no floating Privacy button is injected. A custom, visitor-initiated consent control can be connected separately:

document.querySelector('#allow-analytics')?.addEventListener('click', () => {
  window.msAnalytics?.setConsent(true);
});

To revoke consent on that website: window.msAnalytics?.setConsent(false). Consent is stored locally per site for up to 90 days; GPC and local opt-out cannot be overridden. Review applicable privacy laws and ensure the user can withdraw consent.

LOGIN PROTECTION

Cloudflare Turnstile

Save keys first (inactive), then complete a real challenge to enable. Never locks the account without a verified challenge.

Turnstile: loading…

CONNECTED PROPERTIES

Websites.

Every connected property, in one place. Manage tracking without leaving your workspace.

YOUR PROPERTIES

Connected websites

Tracking keys, real accepted activity and privacy policy.

—Websites
Collection pulseAccepted pageviews, not a site uptime monitor. DNT, consent or inactivity can mean zero.
Not loaded
WebsiteAccepted activityTracking keyStatus
ADD PROPERTY

Connect another website

Give your site a name and its domain. No pop-ups, no extra steps.

COLLECTION MONITORING

Analytics alerts.

Detect unexpected silence after consistent accepted traffic. No false uptime guarantees.

TRAFFIC SIGNALS

Collection health

Checked automatically every 15 minutes, including when the dashboard is closed.

—Open alerts
Outbound webhook: not configuredOptional signed outbound notifications; no IPs or visitor identifiers.
Not loaded
WebsiteCollection statusRule

Loading rules…

An alert indicates missing accepted pageviews after regular historical activity, not confirmed website downtime. DNT, consent, blockers, seasonality and low traffic can affect detection. The default threshold is 48 hours, with at least 12 accepted pageviews across 3 UTC days in the preceding 7-day baseline.

ALERT HISTORY

Recent changes

No alert events yet.

TRACKING INTEGRATION

Integration.

Connect a website and start measuring with a single lightweight script.

01
Select websitePick the property to track
02
Copy snippetUse the generated code
03
Install and collectPaste before the closing head tag
TRACKING SNIPPET

Install the tracker

Pageviews and SPA navigation are tracked automatically.

Create a website first.

Paste this script before the closing </head> tag. No additional dependencies.

OPTIONAL EVENTS

Record an interaction

Track meaningful actions beyond pageviews.

window.msAnalytics.track('signup_click');

Use concise event names. Never include emails, names, passwords or other personal data. Events store only the event name and page path.

SPA routes using History API are detected automatically. For hash routers like #/pricing, add data-ms-spa="hash" to your existing tracker script. Campaign attribution accepts only safe UTM source/medium/campaign labels and still honors DNT/GPC.

Made With ❤️ By Mohamad AlSayedMS Analytics · v3.1.0