Опис
A complete analytics dashboard that runs entirely on your own database. No account, no key, no tier held back, nothing to upgrade to.
Visitors, visits, views, real bounce rate and real time on page. Top pages, entry and exit pages. Referrers, channels, campaigns, countries, languages, browsers, devices. Goals, funnels, journeys, retention, segments and cohorts. Read depth per page, a live counter, a heatmap, a weekly email and a shareable read only dashboard.
AI traffic, counted properly
Someone asks ChatGPT a question, the answer cites your page, they click through. That is a reader, not a crawler. Most plugins file them under referral, and some do worse: Gemini answers from a google.com address and Copilot from microsoft.com, so a plain search rule buries both inside organic search.
ConvertNow gives AI assistants a channel and four screens of their own. ChatGPT, Perplexity, Claude, Gemini, Copilot, Grok, DeepSeek, Meta AI and Le Chat are recognised by name. Crawlers are refused before a row is written, so GPTBot and the rest never appear as traffic.
Revenue, when there is any
WooCommerce and Easy Digital Downloads orders are read from the shop and attached to the visit behind them, so you see which channel, campaign, page and author earned. Other checkouts can report a sale from the page. No shop, no menu.
Editorial reporting
The author is recorded on every pageview, so the byline is a dimension like any other: traffic by author, fastest growing authors, blog posts separated from pages and archives, and read depth per post.
Fast by design
The tracker inlines into the footer: no extra request, about 1.5 KB. Raw hits roll up into daily tables hourly, so a twelve month report costs the same queries as a one day one. Every chart is plain SVG, so there is no charting library to load.
Privacy
No cookies, no localStorage, no persistent identifier. Visitors are counted with a one way SHA256 hash of IP, user agent and a salt that rotates daily, so the same person cannot be followed from one day to the next. Raw IP addresses are never stored, and nothing about your visitors leaves your server.
Links
- convertnow.tools/convertnow-analytics for docs and screenshots
- convertnow.tools for everything else I build
- contact@convertnow.tools or prateekzare@gmail.com, both reach me
External services
ConvertNow uses no external service for anything it does. There is one optional service, off by default, described in full below.
Tracking, reporting, goals, funnels, journeys, retention, segments, cohorts, insights, country lookups and exports all run on your own server against your own database. There is no activation call, no licence check and no key. Nothing about your visitors ever leaves your site under any setting.
Optional: anonymous usage reporting (off by default)
If, and only if, you switch this on, the plugin sends one report a month to convertnow.tools, the author’s site, at https://convertnow.tools/wp-json/cnwa-hub/v1/report. It exists so the author can see which versions are in use and how the plugin is actually being used, and it is used for nothing else.
It is off on every install. You are asked once, on the plugin’s own screen, with the exact payload from your site shown to you before you decide. Declining is remembered permanently. If you never answer, nothing is ever sent. You can switch it on or off at any time in Settings Data retention Anonymous usage report, and switching it off removes the scheduled event immediately.
This is the complete payload, and there is nothing else in it:
- Your site address and site name
- The date this plugin was first activated on your site
- Your total pageviews and total visitors for the last 30 days, as two numbers
- The ConvertNow, WordPress and PHP versions, and your site locale
It contains nothing about your visitors: no page paths, no referrers, no IP addresses, no visitor hashes, no user accounts, no email addresses, no post or page titles. The request is sent once every 30 days, non blocking, and a failure is silent.
Terms of service: convertnow.tools/terms. Privacy policy: convertnow.tools/privacy.
The country lookup tables ship inside the plugin as plain text files and are read from disk. There is nothing to download and nothing to import.Links
- Plugin home page: convertnow.tools/convertnow-analytics
- Support by email: contact@convertnow.tools
- The author directly: prateekzare@gmail.com
- Support forum: wordpress.org/support/plugin/convertnow-analytics
- Leave a review: wordpress.org/support/plugin/convertnow-analytics/reviews
Both addresses reach the same inbox. Email is usually the faster of the two; the forum is the better place for anything another user might hit as well.
Bundled data
IP Geolocation by DB-IP, used under CC BY 4.0.
Country lookups read two plain text tables built from the DB-IP IP to Country Lite database: assets/data/geo-ipv4.csv and assets/data/geo-ipv6.csv. Every line is one boundary, written as an uppercase hex address prefix and an ISO 3166-1 alpha-2 country code, so both files can be opened and read in any text editor. The world map outlines are plain JSON path data at assets/data/world.json. Nothing in the plugin is compiled, minified or obfuscated.
Скріншоти









Встановлення
From your dashboard:
- Go to Plugins Add New and search for ConvertNow Analytics.
- Click Install Now, then Activate.
- Open ConvertNow in the admin menu. Data starts appearing immediately.
Or by hand:
- Upload the
convertnow-analyticsfolder to/wp-content/plugins/. - Activate it from the Plugins screen.
- Open ConvertNow in the admin menu.
Either way that is it. No key, no account, no configuration. Country data is built in, so the map and the Countries panel fill in on their own. Your own visits are not counted while you are logged in as an administrator or editor, which is why the numbers stay at zero until real traffic arrives.
Часті питання
-
Do I need an account or a licence key?
-
No, and there is nowhere to put one. There is no account, no key, no activation and no paid tier. The plugin contains no code that makes an outbound request, so there is nothing to opt out of either.
-
My host says I am making too many requests. Is it this plugin?
-
Partly, possibly. A page read sends one small request to your own site, and the last page of a visit sends a second. Those cannot be page cached, so on a site that serves cached HTML they may be most of what actually reaches PHP.
As of 1.2.0 there is far less of it. The reading of a page now travels inside the next pageview rather than costing a request of its own, so a five page visit sends six requests where it used to send ten, and no figure is lost doing it. The beacon also obeys a 429 or 503 from your server: it reads
Retry-Afterand stops entirely until that has passed, so it can no longer add to a rate limit once one starts. And it will not send more than sixty times in one visit however badly a theme misbehaves.What it is not: the plugin makes no outbound requests of any kind, so it cannot be the source of automated traffic from Meta, AWS or Microsoft, and it contacts no third party. It also adds no cron work beyond one hourly summary job.
-
Why are my numbers lower than Jetpack, Google Analytics or my host’s stats?
-
Four ordinary reasons, in the order they usually matter.
- You installed it partway through the period. Days before the install are empty because nothing was recorded then, not because they were quiet.
- Administrators and editors are not counted, by default. Your own visits, and your team’s, are missing on purpose. Settings Tracking changes it.
- Do Not Track. If that setting is on, those readers are dropped entirely, and most other tools ignore the signal. New installs default to off; a site upgrading from an earlier version keeps it on until changed.
- Bots. ConvertNow refuses crawlers, monitors, previewers and AI training bots before a row is written. Some tools count a share of them, which raises their numbers rather than lowering yours.
If the gap still looks wrong after that, the usual cause is the beacon being blocked: a security plugin that hardens
/wp-json/, or a firewall rule. Since 1.2.0 the plugin retries on a front end URL when that happens, and counts readers with no JavaScript at all. -
How do you tell an AI visitor from an AI crawler?
-
They arrive by completely different routes and are handled at different points. A crawler identifies itself in the user agent, and GPTBot, ClaudeBot, CCBot, PerplexityBot, Bytespider, Applebot and Amazonbot are all refused by the collector before a row is written, so they never become traffic. A visitor is a browser carrying a referrer from an assistant’s own domain. Only the second one reaches the AI screens, which is why every figure there is a person who read an answer and followed the citation.
-
Why did my Gemini traffic used to show up as Google?
-
Because Gemini is served from gemini.google.com, and a rule that looks for “google” in the referrer catches it. Copilot has the same problem on microsoft.com. ConvertNow checks the assistants first, so a visit from Gemini is counted as an assistant and a visit from Google Search is counted as search. Existing summaries are rebuilt on upgrade, so past days are reclassified too.
-
An assistant is missing. Can I add it?
-
Yes, with the
cnwa_ai_sourcesfilter. Each entry is a pattern matched against the referrer host and the name to show. The list is checked in order, so a narrow host goes above a broad one. -
Do the trend line and forecast use AI?
-
No, and the plugin does not claim they do. They are a least squares fit and the standard deviation of the days around it, computed in your browser from the figures already on the screen. The forecast is that straight line continued, and the band around it is how much the measured days actually varied. Nothing is sent anywhere and no model runs. Every layer is off until you switch it on in Settings.
-
Is the AI insights screen actually AI?
-
It is statistics, and the screen says so at the bottom of every run. Least squares fits for direction, median absolute deviation for outliers, share and concentration comparisons against the previous period of equal length. It runs on your server against your own rows, no model is called and nothing leaves the site. The name reflects what the screen is for, reading your numbers the way an analyst would, not a claim about how it works.
-
Will generating insights slow my site down?
-
It cannot touch your front end, because it only runs from the dashboard when somebody presses the button. The run itself reads the selected period and the one before it across several dimensions, which on a large site takes a few seconds, and the result is cached for five minutes so a second press costs nothing. Nothing runs on opening the screen.
-
Can I count returning visitors?
-
Yes, but it is off by default. Settings Tracking Visitor recognition widens the salt window from one day to 30, 90 or 365 days. Until you change it the salt rotates daily and a reader returning tomorrow is a new visitor, which is the honest default for a plugin that stores nothing on the reader’s device. Widening it changes what you are doing with visitor data, so update your privacy disclosures before you do.
-
Where do I set up a goal or a funnel?
-
On the Goals or Funnels screen itself, under the report. Open the report, expand the editor below it, pick a page from your own site, save. Creating a definition needs the same capability as changing a setting, so a user who can view reports but not manage the site sees the report and no editor.
-
Why does Retention not show whether visitors came back next week?
-
Because ConvertNow cannot tell. A visitor is identified by a hash that is rebuilt nightly every day, on purpose, so the same person is unrecognisable tomorrow. Rather than print a number that looks like week on week retention and is not, the report answers what the data actually supports: how a page holds its traffic over the days after it lands, and how often a visit is a return within the same day.
-
How far back do the behaviour reports go?
-
As far as your raw retention setting keeps pageviews, ninety days by default. Goals, funnels, journeys, retention and cohorts all need the shape of individual visits, and the daily summaries have already rolled that away. Each of those screens says the date it can see back to.
-
How does it know who wrote a post?
-
WordPress already does. The tracker resolves each URL to the post behind it and stores the author ID with the pageview, then the report turns IDs back into display names when it draws. Nothing is sent anywhere to work that out.
-
Views recorded before you installed it do not exist, so no. Views recorded before version 2.0 carry no content type yet; Settings has a Classify button that resolves them in batches and backfills Authors, Blog Posts and Content Types for that history.
-
Does it work with caching plugins?
-
Yes. The beacon is client side and posts to a REST endpoint, so a cached HTML page still reports its own view.
-
Does it work with a CDN or Cloudflare?
-
Yes. Set the visitor IP source in Settings so country lookups and visitor counts use the real client address instead of the proxy.
-
Does it support IPv6?
-
Yes. Country lookups cover IPv4 and IPv6.
-
Does the country lookup add load to my server?
-
Almost none. The table ships with the plugin, so there is no download and no import. A lookup reads one small block of a file, about three microseconds, with no database query and no network request. Results are reused within a request.
-
How accurate is the country data?
-
It resolves IPv4 to /24 and IPv6 to /48, which is right for about 98% of addresses when checked against the full DB-IP dataset. That is a deliberate trade: a coarser table means a much smaller file and a much cheaper lookup, and it is more than enough to see where an audience is.
-
Why do my visitor counts differ from other analytics tools?
-
ConvertNow filters bots aggressively and counts a visitor as unique within a single day. Tools that use persistent cookies count differently. Neither number is wrong, they measure different things.
-
A content blocker is blocking the endpoint.
-
Rename the endpoint in Settings. The tracker picks up the new name automatically.
-
Can I track a static page hosted elsewhere?
-
Yes. Settings has a snippet. Add the other domain to the allowed domains list first.
-
Can I filter the dashboard?
-
Yes. Click any row label in a breakdown panel and everything recalculates against that value. Filters stack and combine with AND. Because the daily summaries store each dimension separately, a filtered view reads raw rows, so it reaches back as far as your raw retention setting allows. The filter bar tells you that date.
-
Is the trend line a forecast?
-
No. It is a least squares fit through the period you are viewing, continued a short way past the end. It knows nothing about seasonality, campaigns or what you publish next. Treat it as direction of travel.
-
Does it track clicks?
-
No. ConvertNow deliberately records pageviews and engagement only, which keeps the database small and the dashboard readable.
-
Where is my data stored?
-
In your own WordPress database, in four tables prefixed
cnwa_. Deleting the plugin removes all of them. The country lookup table is a read only file inside the plugin folder and holds nothing about your visitors.Clicks, downloads and searches, when you want them
Off by default, and honest about why. A page view writes one database row per page; a click writes one per interaction, so an events table grows with how much people do on your site rather than with how many of them turn up. Nothing is collected until you choose it, one type at a time:
- Outbound links, with the destination and the domain
- File downloads, matched by extension
- Email and phone links
- Anything you name with a CSS selector, labelled by
data-cnwa-labelor its own text - Page views that returned a 404, and the pages that linked to them
- What people typed into your search box
The last two are effectively free: they ride along with a page view that is already being recorded, so they cost one row and no extra request. Broken links and empty searches are usually the fastest wins on any site.
The settings screen tells you what switching this on will cost before you switch it on, using your site’s own traffic from the last thirty days and a per event size measured on a real database rather than guessed. Events have their own retention window, separate from page views, because they are the rows that grow fastest.
Notes on the chart
A spike six weeks ago is just a shape unless something tells you what it was. Mark the day you redesigned, sent the newsletter or changed your prices, and the note stays on the chart with the traffic it explains. They are stored in one option row, so there is no table and nothing left behind.
A weekly email
Last week against the week before, your five most read pages and five biggest sources, in an email you can read in fifteen seconds. It comes from your own site, contains no tracking pixel, and reads from the daily summaries, so it costs the same whether you had a hundred visitors or a million. Off until you ask for it, and there is a button to send one now and find out whether email leaves your site at all.
Відгуки
Для цього плагіна немає відгуків.
Учасники та розробники
“ConvertNow Analytics” — проект з відкритим вихідним кодом. В розвиток плагіну внесли свій вклад наступні учасники:
УчасникиПерекладіть “ConvertNow Analytics” на вашу мову.
Цікавитесь розробкою?
Перегляньте код, перегляньте сховище SVN або підпишіться на журнал розробки за допомогою RSS.
Журнал змін
1.3.1
A pageview now has to prove somebody was there: the page has to render on screen, and then either somebody does something on it or it stays in front of them. The collect endpoint no longer accepts anonymous POSTs, and a route change only counts after an interaction. Everything refused is counted by name under Stats, with AI crawlers and assistant fetches kept apart from each other and from your visitors. Expect lower numbers after this update. Nothing already recorded is rewritten.
1.3.0
Revenue reporting: WooCommerce and Easy Digital Downloads orders are read from the shop and attached to the visit that produced them, across seven new screens. Correct counting behind a page cache or a CDN, which was losing whole pages of traffic: the beacon now ships to everybody and exclusion happens on the collect request, page optimisers are told to leave it alone, and a shared CDN address no longer throttles the site.
1.2.3
Accuracy release, and your figures will get smaller. Four faults were inflating visitors and views: the no script image was counting machines, forwarded IP headers were believed on sites with no proxy, a retried beacon could store the same pageview twice, and bot filtering was an agent list and nothing else. All four are fixed and the stored history is cleaned in the background. Ranked reports also page and search properly now, so a site with thousands of pages can see past the top twenty.
1.2.2
An optional anonymous usage report, off on every install and never sent unless you agree. You are asked once, shown the exact payload from your own site first, and never asked again if you say no. Nothing about your visitors is included under any circumstances.
1.2.1
Data, then AI insights, runs a statistical read of the selected period on demand and returns ranked findings with the figure and the confidence behind each one. Everything is computed on your own server against your own rows. Also adds an optional longer visitor recognition window for counting returning readers, off by default.
1.2.0
Fewer requests, and a beacon that stops when your host says stop: it reads 429 and 503, honours Retry-After, holds a budget per visit, and a page read now costs one request instead of two with nothing lost. Counting is more complete too: readers whose browser ran no JavaScript are recorded, a blocked REST route no longer means lost traffic, and Do Not Track is no longer skipped by default on new installs.
1.1.1
Deleting the plugin keeps your settings, your shared link and your history by default, so updating by hand no longer wipes them. The AI screens now describe assistant traffic and nothing else, and authors, content types, assistants, cited pages and campaigns can all be filtered on.
1.1.0
AI Visibility: visits arriving from an assistant become their own channel with four screens of their own, and Gemini is no longer miscounted as organic search. Four optional statistical layers for the main chart, every one off until you switch it on. Goals and funnels read their own rules back as a sentence and funnel steps can be reordered.
1.0.0
First public release. Editorial reporting is the point of it: traffic by author, posts separated from pages and archives, and read depth per post. Real bounce rate and time on page from an engagement beacon rather than guessed from timestamps. Cookieless, self hosted, no account, no API key and no paid tier.
