← Home

Advanced Flag Counter

Loading…

Tracks sessions per country flag from pages that embed /flag_counter/js/embed.js. Totals aggregate unique browser sessions (localStorage IDs), not raw page impressions.

Loading status…

① All time since counter backend started collecting

Visitors (sessions started):

Country Sessions

② Today sessions whose first ping falls in UTC “day bucket”*

New sessions:

Country Sessions

③ Last 7 days rolling 168 hours from “now” on server*

New sessions:

Country Sessions

④ Last month rolling 30 days*

New sessions:

Country Sessions

⑤ Geography donut shares % of rolling-month sessions

Mix

⑥ Average visit duration (optional)

Estimated from heartbeat pings sent while tab is visible. Uses the last 30 days cohort for the headline number below.

⑦ The most popular webpages top 10 landing pages by sessions (all time)

Top pages listed:

Page Visits

⑧ App download clicks clicks per platform button, tracked across all pages

Total clicks on the download buttons (all platforms, all time). Per-button breakdown below shows which version visitors chose.
Platform Past day Past week Past month All time

⑨ App downloads (30 days) button clicks with geo at download time

Total:

When (UTC) Platform Country IP

⑩ App downloads (all time) stored without deletion; older rows archived by site scheduler

Total (hot store):

Downloads per UTC day — hover points for values
When (UTC) Platform Country IP

⑪ App install pings first app launch with stats ping (POST /stats/install)

All time: Last 30 days:

When (UTC) Platform Device Country IP

⑫ Usage minutes per install by device_id (VPN heartbeats)

Device Platform Country IP Minutes

⑬ Payment widget shows paywall modal per device

Device Platform Country IP Shows

⑭ Report bug clicks Telegram button on the landing page

Past day: · Past week: · Past month:

Attach to the whole website

Paste this snippet right before </body> on any template (or add to index.html / shared layout).

<script defer data-api="/flag-counter-api" src="/flag_counter/js/embed.js"></script>

Then proxy /flag-counter-api/ → Flask (:5057) according to flag_counter/nginx-proxy-snippet.conf.