Title: ConvertNow Analytics
Author: Prateek Zare
Published: <strong>7 Eylül 2026</strong>
Last modified: 11 Eylül 2026

---

Eklentilerde ara

![](https://ps.w.org/convertnow-analytics/assets/banner-772x250.png?rev=3685592)

![](https://ps.w.org/convertnow-analytics/assets/icon-256x256.png?rev=3685592)

# ConvertNow Analytics

 [Prateek Zare](https://profiles.wordpress.org/prateekzare/) tarafından

[İndir](https://downloads.wordpress.org/plugin/convertnow-analytics.1.3.0.zip)

[Canlı önizleme](https://tr.wordpress.org/plugins/convertnow-analytics/?preview=1)

 * [Detaylar](https://tr.wordpress.org/plugins/convertnow-analytics/#description)
 * [Değerlendirmeler](https://tr.wordpress.org/plugins/convertnow-analytics/#reviews)
 *  [Kurulum](https://tr.wordpress.org/plugins/convertnow-analytics/#installation)
 * [Geliştirme](https://tr.wordpress.org/plugins/convertnow-analytics/#developers)

 [Destek](https://wordpress.org/support/plugin/convertnow-analytics/)

## Açıklama

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](https://convertnow.tools/convertnow-analytics/)
   for docs and screenshots
 * [convertnow.tools](https://convertnow.tools) for everything else I build
 * [contact@convertnow.tools](https://tr.wordpress.org/plugins/convertnow-analytics/contact@convertnow.tools?output_format=md)
   or [prateekzare@gmail.com](https://tr.wordpress.org/plugins/convertnow-analytics/prateekzare@gmail.com?output_format=md),
   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](https://convertnow.tools/terms/). Privacy
policy: [convertnow.tools/privacy](https://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](https://convertnow.tools/convertnow-analytics/)
 * Support by email: [contact@convertnow.tools](https://tr.wordpress.org/plugins/convertnow-analytics/contact@convertnow.tools?output_format=md)
 * The author directly: [prateekzare@gmail.com](https://tr.wordpress.org/plugins/convertnow-analytics/prateekzare@gmail.com?output_format=md)
 * Support forum: [wordpress.org/support/plugin/convertnow-analytics](https://wordpress.org/support/plugin/convertnow-analytics/)
 * Leave a review: [wordpress.org/support/plugin/convertnow-analytics/reviews](https://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](https://db-ip.com), used under [CC BY 4.0](https://creativecommons.org/licenses/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.

## Ekran Görüntüleri

[⌊The Overview: visitors, visits, views, bounce rate and time on page, with the 
chart's optional trend, average, unusual-day and forecast layers switched on⌉⌊The
Overview: visitors, visits, views, bounce rate and time on page, with the chart's
optional trend, average, unusual-day and forecast layers switched on⌉[

The Overview: visitors, visits, views, bounce rate and time on page, with the chart’s
optional trend, average, unusual-day and forecast layers switched on

[⌊AI at a Glance: which assistants send people, what they were sent to, and how 
AI compares with every other channel⌉⌊AI at a Glance: which assistants send people,
what they were sent to, and how AI compares with every other channel⌉[

AI at a Glance: which assistants send people, what they were sent to, and how AI
compares with every other channel

[⌊AI Assistants, ranked, with each one's share over time and how deeply its readers
read⌉⌊AI Assistants, ranked, with each one's share over time and how deeply its 
readers read⌉[

AI Assistants, ranked, with each one’s share over time and how deeply its readers
read

[⌊Pages at a Glance: what gets read, where visits begin and where they end⌉⌊Pages
at a Glance: what gets read, where visits begin and where they end⌉[

Pages at a Glance: what gets read, where visits begin and where they end

[⌊Referrers at a Glance: channels, search engines and social networks together⌉⌊
Referrers at a Glance: channels, search engines and social networks together⌉[

Referrers at a Glance: channels, search engines and social networks together

[⌊Campaigns at a Glance: UTM sources, mediums and campaigns in one place⌉⌊Campaigns
at a Glance: UTM sources, mediums and campaigns in one place⌉[

Campaigns at a Glance: UTM sources, mediums and campaigns in one place

[⌊Geographic at a Glance: countries and languages, with a world map⌉⌊Geographic 
at a Glance: countries and languages, with a world map⌉[

Geographic at a Glance: countries and languages, with a world map

[⌊Goals, with the builder open: each rule reads back in a sentence and says how 
many of your pages it matches⌉⌊Goals, with the builder open: each rule reads back
in a sentence and says how many of your pages it matches⌉[

Goals, with the builder open: each rule reads back in a sentence and says how many
of your pages it matches

[⌊Settings: the switches for the chart insights, data retention, and the weekly 
summary email⌉⌊Settings: the switches for the chart insights, data retention, and
the weekly summary email⌉[

Settings: the switches for the chart insights, data retention, and the weekly summary
email

## Yükleme

From your dashboard:

 1. Go to **Plugins  Add New** and search for **ConvertNow Analytics**.
 2. Click Install Now, then Activate.
 3. Open **ConvertNow** in the admin menu. Data starts appearing immediately.

Or by hand:

 1. Upload the `convertnow-analytics` folder to `/wp-content/plugins/`.
 2. Activate it from the Plugins screen.
 3. 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.

## SSS

### 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-After` and 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.

 1. **You installed it partway through the period.** Days before the install are empty
    because nothing was recorded then, not because they were quiet.
 2. **Administrators and editors are not counted**, by default. Your own visits, and
    your team’s, are missing on purpose. Settings  Tracking changes it.
 3. **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.
 4. **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_sources` filter. 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.

### Will author reports cover posts published before I installed it?

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-label` or 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.

## İncelemeler

Bu eklenti için herhangi bir değerlendirme bulunmuyor.

## Katkıda Bulunanlar ve Geliştiriciler

“ConvertNow Analytics” açık kaynaklı yazılımdır. Aşağıdaki kişiler bu eklentiye 
katkıda bulunmuşlardır.

Katkıda bulunanlar

 *   [ Prateek Zare ](https://profiles.wordpress.org/prateekzare/)

[“ConvertNow Analytics” eklentisini dilinize çevirin.](https://translate.wordpress.org/projects/wp-plugins/convertnow-analytics)

### Geliştirmeyle ilgilenir misiniz?

[Kodu görüntüleyin](https://plugins.trac.wordpress.org/browser/convertnow-analytics/),
[SVN deposuna](https://plugins.svn.wordpress.org/convertnow-analytics/) göz atın
ya da [RSS](https://plugins.trac.wordpress.org/log/convertnow-analytics/?limit=100&mode=stop_on_copy&format=rss)
ile [geliştirme günlüğüne](https://plugins.trac.wordpress.org/log/convertnow-analytics/)
abone olun.

## Değişiklik Kaydı

#### 1.3.0

**Revenue, for the sites that have any.** Orders are recorded and attached to the
visit that produced them, so the same dimensions that answer “which page got read”
now answer “which page paid for itself”. Seven new screens: revenue at a glance,
by channel, by landing page, by referrer, by campaign, by author, and from AI assistants.

 * **WooCommerce and Easy Digital Downloads are read server side**, from their own
   order hooks, when payment completes rather than when an order is created. Nothing
   depends on the visitor’s browser, so an ad blocker, a closed tab or a redirect
   through a payment provider cannot lose a sale. Refunds are subtracted rather 
   than hidden, so the net figure matches what the shop actually kept.
 * **Anything else reports from the page.** A Shopify Buy Button, Snipcart, Gumroad,
   Lemon Squeezy or a bespoke checkout calls `window.cnwa.purchase({ id: 'ORDER-
   123', amount: 49.00, currency: 'EUR' })` from the thank you page. Off until you
   switch it on, because unlike the server side adapters it takes a figure from 
   the browser. The order id makes a repeat call harmless: one id is stored once
   however many times somebody reloads a thank you page.
 * **A sale is classified exactly the way the visit was.** The channel rules are
   shared with the traffic screens, so a purchase that began in ChatGPT is filed
   under assistants here and under assistants there, rather than landing in organic
   search because Gemini answers from a google.com address.
 * **Attribution is last non direct touch**, inside the buyer’s own recorded history,
   and the screen says what share of orders it could trace at all rather than quietly
   dropping the rest.
 * **Money is stored as an integer in minor units.** Floats do not add up, and a
   revenue report that is a cent out from WooCommerce is a revenue report nobody
   trusts again.
 * **No shop, no menu.** On a site with nothing to sell the whole Revenue section
   is absent: not greyed out, not present and empty. It appears when a store plugin
   is active or an order has been recorded, and Settings  Tracking  Revenue reports
   forces it either way.

**Correct counting behind a cache or a CDN.** This is the part that matters most,
and one of these was losing whole pages of traffic.

 * **The beacon no longer depends on who rendered the page.** It used to be left
   out for excluded users, which is fine until a page cache is involved. An administrator
   is nearly always the first person to load a page after publishing it, administrators
   are excluded by default, so the cache filled with a copy that had no tracker 
   in it and every real reader of that URL went uncounted until the cache expired.
   The beacon now ships to everybody and the collect request, which is never cached
   and carries the real visitor’s cookies, decides whether to record. Exclusion 
   still works and now works per request rather than per cache fill.
 * **Page optimisers are told to leave the beacon alone.** Cloudflare Rocket Loader,
   Autoptimize, LiteSpeed, WP Rocket and Perfmatters all read one of `data-cfasync`,`
   data-no-optimize`, `data-no-defer` or `nowprocket`. The delay until interaction
   setting several of them offer is the dangerous one: it is right for a chat widget
   and wrong for a pageview counter, because a reader who lands, reads and leaves
   without clicking is never recorded.
 * **The collect endpoint and the pixel refuse to be cached.** `no-store`, a CDN
   specific header, and the two constants the common WordPress page caches look 
   for. A cached pixel means the second visitor to a page never reaches PHP.
 * **A shared CDN address no longer throttles the site.** Flood protection counted
   against the visitor’s address, which behind Cloudflare, an office or a mobile
   carrier is hundreds of people. On a busy site that stopped recording partway 
   through every minute, silently, and looked exactly like a traffic drop. The tight
   cap is now per visitor, where a flood actually shows up, and the per address 
   cap is a loose backstop that is skipped entirely when the address is a proxy 
   we could not see past.

**Also in this release.** The insights cache is keyed by the caller’s authorisation,
like every other cached route, so a payload built for an administrator can never
be served to a shared-link reader. A range that ends “now” now includes the current
second, which sounds like nothing and is not: an order completed seconds before 
opening the dashboard was being excluded, which reads exactly like a broken integration.
Saving a setting rebuilds the report list in the same request, so switching the 
Revenue section off takes effect immediately instead of on the next page load. Admin
notices from other plugins now appear above ConvertNow’s header bar instead of inside
it, and the report sidebar scrolls within itself when every group is expanded rather
than pinning its top and putting its own last items out of reach.

**Documentation you can search.** The Documentation screen gained a search box that
filters the whole page as you type, marks the words it found, and says how many 
blocks matched and where. It reads as two columns on a wide screen, a contents rail
that tracks where you are and the pages themselves, and folds to one column with
the contents as chips on a narrow one. Sixteen sections now, up from nine, with 
worked examples you can copy: campaign links for a newsletter, a social post, two
links in one email and a printed QR code; the JavaScript purchase call for a hosted
checkout; a selector and a label for click tracking; and filter snippets for excluding
a path or hiding a report. New sections cover getting started, clicks and events,
revenue, caching and CDN behaviour, exports and retention, and the filters and REST
routes the plugin exposes.

**Settings are shorter.** Twelve cards became eight, the help text lost a third 
of its length with nothing left over 190 characters, and three settings went entirely:
the week start duplicated WordPress’s own, the anomaly threshold asked people to
pick a standard deviation, and the currency fallback was a fallback for a fallback
since orders carry their own.

#### 1.2.3

**Accuracy release. Your numbers will get smaller, and that is the point.** Four
separate faults were inflating visitors and views, sometimes by an order of magnitude.
Every one of them is fixed here, and the stored history is cleaned in the background
after you update.

 * **The no script image was counting machines.** A browser running JavaScript never
   requests an image inside a `noscript` tag. Crawlers, HTML parsers, link preview
   fetchers, feed readers, uptime monitors and security scanners routinely do, and
   each one arrived with a freshly minted view id, so it counted as a brand new 
   visitor on a brand new visit. The setting is now off by default and is switched
   off once on existing sites. Turned back on, the request has to look like an image
   loaded by a browser that is on your site, and repeat requests for the same page
   from the same client collapse into one view.
 * **Forwarded IP headers were believed on sites with no proxy.** `X-Forwarded-For`,`
   X-Real-IP` and `CF-Connecting-IP` are written by the client, so anything varying
   them arrived as a new person on every request. Automatic detection now reads 
   them only when the connection itself came from a private address, carrier NAT
   or a Cloudflare edge, and only accepts a routable public value. Everywhere else
   it uses the connecting address, which cannot be forged. A `cnwa_trusted_proxies`
   filter covers load balancers on public addresses.
 * **A retried beacon could store the same pageview twice.** When a request reached
   the database but its answer did not come back, the retry wrote the view again
   under a second visitor. The view id is now unique and the write is an `INSERT
   IGNORE`, so the same pageview can be sent as often as it likes and is stored 
   once. Duplicates already in the table are removed after the update, in resumable
   chunks, and the summaries are rebuilt from the corrected rows.
 * **Bot filtering was an agent list and nothing else.** Roughly half of automated
   traffic now copies a current Chrome agent string, which no agent list can see
   through. The list is much longer, and the request itself is checked as well: 
   prefetch and prerender markers in every spelling, and the headers a browser always
   sends. A Strict mode drops anything whose agent does not say Mozilla/5.0. `cnwa_is_bot`
   and `cnwa_should_count` filters let a site add its own rules.
 * **Prerendered pages are no longer counted until they are shown.** A page that
   a browser renders speculatively and never displays is not a pageview.
 * The visitor identifier now rotates on your site’s own day rather than on UTC.
   On any timezone other than UTC the old behaviour split one local day across two
   identifiers, so anyone reading across that boundary was counted twice.
 * The origin check is applied to all three ways in. The front end fallback endpoint
   and the pixel were skipping it, which meant anything anywhere could POST pageviews
   at your site and have them counted.
 * Flood protection gained a second, tighter cap on the visitor rather than the 
   address, so one client hammering the endpoint is caught without penalising everybody
   behind a shared address.
 * Excluded paths are honoured before the beacon is printed rather than after the
   payload arrives.

**Built for sites with a lot of pages.** The ranked reports page now, so Pages, 
Posts, Entry pages, Exit pages, Referrers, Sources and the rest are no longer a 
top twenty with everything else invisible.

 * Every ranked report has a pager and a row count: previous, next, 25 to 200 rows
   a page, and an honest “Showing 1 to 50 of 4,182” underneath. Rank numbers continue
   across pages rather than restarting at one.
 * A search box sits above each table and runs on the server against the whole report,
   not against the rows on screen. On a big site that is the right tool anyway: 
   nobody wants to page to row 3,000 to see how one post did.
 * The share column is measured against the whole report instead of the visible 
   page. Before, every page of a long report added up to 100%, which made row 200
   look as important as row 1.
 * Ranking is capped at 2,000 rows, because sorting forty thousand candidates to
   show fifty is how an analytics screen becomes the slowest page on a site. The
   cap is stated on screen when it bites, the total next to it still says how many
   rows there really are, and search reaches everything below it.
 * Each day now keeps a sensible number of labels per report rather than 500 of 
   everything: twelve for device, sixty for browser, five hundred for pages. What
   falls past the cap is added into one row per report per day instead of being 
   discarded, so the totals stay right and the dashboard can say how much traffic
   sits in the tail. Previously anything past the top 500 simply vanished from the
   history.
 * Entry and exit pages get a composite index covering the range scan and the visit
   grouping together. Those two reports were the heaviest reads the plugin makes,
   and on a large table they were a filesort over the whole window.
 * Summaries are rebuilt once after updating, because a day summarised under the
   old caps has no tail row and would read as if that traffic never happened.

**A review request, asked once and asked properly.** The plugin is free, has no 
paid tier and is advertised nowhere, so a review on WordPress.org is the only thing
that puts it in front of the next person looking for self hosted analytics. It now
asks for one, under rules that keep it from becoming a nuisance: not until the plugin
has been installed a fortnight and has actually recorded a few hundred pageviews,
because a prompt on an empty dashboard asks somebody to vouch for something they
have not seen work; only on ConvertNow’s own screens, never while you are editing
a post; and only for people who can see the dashboard. Four answers, all of them
honoured: write one, not now (a fortnight), remind me in three months, or never 
ask again, which is never. Following the link ends it too, whether or not you write
anything. The whole state is one option, so a site that has answered costs nothing
to check.

**Stability.** CSV and TSV exports no longer emit a deprecation notice on PHP 8.4,
and the files they write are now plain RFC 4180 rather than PHP’s proprietary backslash
escaping, so a value containing a quote reads back as it was written instead of 
arriving double escaped. A stored date that will not parse no longer throws out 
of a cron run: the rollup, the visit repair, the retention grid and the weekly rhythm
all handle a malformed value by skipping it. IPv6 ranges are supported in CIDR matching.
The collector no longer runs its front end handler during cron or REST requests.

#### 1.2.2

**Anonymous usage reporting, off by default.** The plugin can now send one report
a month to its author, so that decisions about what to build next come from how 
the plugin is actually used rather than guesswork. It is off on every install and
it stays off unless you say yes.

 * You are asked once, on ConvertNow’s own screen, and the notice shows the exact
   payload from your own site before you decide. Saying no is remembered permanently
   and you are never asked again.
 * The payload is your site address and name, the date you installed the plugin,
   your pageview and visitor totals for the last 30 days, and the ConvertNow, WordPress,
   PHP and locale strings. Nothing about your visitors is included under any circumstances:
   no pages, no referrers, no IP addresses, no visitor hashes.
 * Settings  Data retention  Anonymous usage report turns it on or off at any time.
   Off removes the scheduled event straight away, and deactivating or deleting the
   plugin removes it too.
 * The readme’s External services section documents every field, the endpoint, the
   frequency and the links to the terms and privacy policy, as WordPress.org requires.

#### 1.2.1

**Insights on demand.** Data  AI insights runs a statistical read of the selected
period and hands back fifteen to twenty ranked findings across traffic shape, content,
engagement, acquisition, assistant visibility and audience. Pick which groups to
run, press generate, export as CSV or JSON. Nothing runs until you ask, because 
it reads the whole period and the one before it; results are cached for five minutes
so a second press is free. Administrators and anyone with dashboard access.

 * Every finding carries the figure behind it, a confidence taken from the fit or
   the sample size, and plain language about what it does and does not prove.
 * The methods are least squares fits, median absolute deviation, share and concentration
   comparisons. Everything runs on your server against your own rows. No model is
   called and nothing leaves the site, and the screen says so rather than implying
   otherwise.
 * An incomplete final day is excluded from any trend or forecast, so a range that
   ends today no longer reads half a day as a collapse.
 * Direct is excluded from referrer concentration, where counting the absence of
   a referrer as the largest referrer was a category error.

**Returning readers, if you want them.** Settings  Tracking  Visitor recognition
widens the visitor salt window from one day to 30, 90 or 365. Off by default and
staying that way. The setting carries the privacy note it needs: no cookies and 
nothing stored on the reader’s device either way, but you will need to update your
own disclosures before turning it on.

#### 1.2.0

**Fewer requests, and it stops when your host says stop.** If your host has been
reporting 429s or rate limiting, this release is for you.

 * **The engagement beacon no longer repeats.** Switching to another tab and back
   re-armed it, so a reader who did that five times sent six requests for one page
   read instead of two. It now sends once, and a second time only if the reader 
   came back and did enough to change the number materially. Never more than twice.
 * **A 429 or 503 is obeyed.** The beacon reads the status, honours `Retry-After`,
   and sends nothing at all until that window has passed. Until now it could not
   see the response and kept sending into a rate limit, which turns a busy minute
   into a sustained one.
 * **A request budget per visit.** At most one beacon every 0.8 seconds and 60 in
   a visit. A theme that calls `pushState` in a loop used to be able to produce 
   hundreds of requests from a single reader; measured on 200 route changes, that
   is 411 requests before and 60 after.
 * **Flood protection now answers 429 with a Retry-After** instead of a silent 204,
   so a flooding client is told to stop rather than ignored and left to continue.
 * **A page read costs one request instead of two, and nothing is lost.** How a 
   page was read used to be its own request, every time. It now travels inside the
   next pageview from the same tab, which was going to be sent anyway. A visit to
   five pages costs six requests instead of ten, and all five readings still arrive.
   Only the last page of a visit spends a request of its own, because there is no
   next request to put it in. Nothing to configure and nothing to trade away.
    **
   More accurate counting.** Three reasons a figure here could come out lower than
   a hosted service reporting on the same site, all addressed.
 * **Readers whose browser ran no JavaScript are now counted.** Script blockers,
   text browsers, accessibility tools and JavaScript simply switched off were invisible
   to a beacon and missing from every figure. A one pixel image inside a `noscript`
   tag records them: page and referrer, since screen size and read depth need a 
   script. A browser that runs the beacon never requests it, so it costs nothing
   on almost every visit. Settings  Tracking.
 * **A blocked REST route no longer means lost traffic.** Some security plugins 
   harden `/wp-json/` off by default and some firewall rules refuse it, and on those
   sites every beacon was quietly rejected, which looks exactly like undercounting.
   A pageview refused there is retried once on an ordinary front end URL, and whichever
   route answered is used for the rest of the visit.
 * **Do Not Track is no longer skipped by default on new installs.** ConvertNow 
   identifies nobody, sets no cookie, stores no personal data and sends nothing 
   anywhere, so the signal is asking it not to do a thing it does not do, while 
   dropping those readers was the single biggest reason its numbers sat below a 
   service that ignores the signal. Existing sites keep whatever they have; upgrading
   changes no setting. The switch is still there, and when it is on the signal is
   now honoured on the pixel as well, not only in the browser.
 * `beforeunload` is no longer used. It duplicated `pagehide` and blocks the browser’s
   back-forward cache.
 * Fixed: on a browser without `sendBeacon`, the engagement beacon could be dropped
   instead of falling back to a keepalive request.

#### 1.1.1

**Deleting the plugin no longer deletes your data, unless you ask it to.**

Updating a plugin by deleting the old copy and uploading the new one is a normal
thing to do, and WordPress runs the uninstall routine on the delete. Until now that
meant an update done this way took your settings, your shared dashboard link and
every day of history with it. It does not any more: nothing is removed unless **
Settings  Data retention  If the plugin is deleted** says so, and that box says 
keep by default. A clean removal is still one switch away for anyone who wants it.

**The AI screens describe AI traffic and nothing else.**

 * AI at a Glance was drawing a site-wide trend line above assistant-only numbers,
   and comparing AI against every other channel in a panel. Both are gone. The chart
   now plots assistant traffic, so the line and the figures under it describe the
   same visits.
 * The panels are assistants, assistants over time, and the pages they sent people
   to.

**Filtering reaches every report.**

 * Authors, content types, AI assistants, pages cited by AI, UTM mediums and UTM
   campaigns can all be filtered on now. Previously clicking those names did nothing.
 * The glance screens carry the open-in-a-new-tab link the report tables already
   had, so a page name behaves the same wherever it appears.
 * A filter chip shows the name rather than the stored value: filtering by an author
   reads “Author: Amara Okafor”, not “Author: 4”.

#### 1.1.0

**AI visibility.** Visits arriving from an AI assistant are now counted as their
own channel and reported on their own screens.

 * A new **AI Visibility** section: AI at a Glance, AI Assistants, Pages Cited by
   AI, and Fastest Growing Assistants.
 * **AI assistant** joins direct, organic search, social, email, referral and paid
   as a channel, so it appears everywhere a channel appears, including the Overview
   and the Channels report.
 * An **AI** tab on the Overview’s Sources panel.
 * ChatGPT, Perplexity, Claude, Gemini, Copilot, Grok, DeepSeek, Meta AI and Le 
   Chat are recognised by name. `cnwa_ai_sources` adds more.
 * **Fixed: Gemini was being counted as organic search.** Gemini is served from 
   gemini.google.com and Copilot from microsoft.com, so the search-engine rule matched
   both. Assistants are now tested before search engines. Summaries are rebuilt 
   on upgrade, so past days are reclassified as well.
 * Crawlers are unaffected: GPTBot, ClaudeBot, CCBot, PerplexityBot and the rest
   are still refused before a row is written, so nothing on these screens is a machine.

**Chart insights, all off by default.** Four statistical layers for the main chart,
each switched on separately in Settings.

 * A least squares trend line.
 * A seven day centred average, which takes the weekday cycle out.
 * Unusual days, ringed when they sit further from the trend than this site normally
   varies. The threshold is configurable.
 * A forecast: the trend carried past today inside a band the width of the measured
   variation, so an irregular site gets a wide band rather than a confident wrong
   line.
 * These are arithmetic, computed in the browser from the numbers already on screen.
   Nothing is sent anywhere, no model runs and the plugin does not describe them
   as AI.

**Goals and funnels are easier to build.**

 * Every goal row now reads its own rule back as a sentence and says how many of
   your pages match it, updated as you type, so a mistyped path is obvious before
   you save rather than after an empty report.
 * Funnel steps can be reordered without deleting and retyping them.
 * “Add an empty row” is now “Add a goal” and “Add a funnel”, and both put the cursor
   where you are about to type.

**Fixed**

 * Pages Cited by AI and other path lists no longer truncate the path to a single
   character in the glance panels.

#### 1.0.0

First public release on WordPress.org.

 * **Editorial reporting is the point of it.** Traffic by author with real display
   names, Fastest Growing Authors measured against the previous period of the same
   length, Blog Posts on a screen of their own so the home page stops drowning out
   the writing, and Content Types splitting posts from pages, products and archives.
 * **Real engagement, not guessed engagement.** Bounce rate and time on page come
   from an engagement beacon rather than from the gap between two timestamps, and
   read depth is recorded per post.
 * Pages, entry pages, exit pages, referrers, channels, UTM campaigns, countries,
   languages, browsers, systems, devices and screen sizes, each on its own screen
   and in an at a glance summary.
 * Goals, funnels, journeys and retention, all defined and edited from the report
   they feed.
 * **Cookieless by design.** No cookie, no browser storage, no device fingerprint.
   Visitors are counted with a daily rotating hash that cannot be reversed or carried
   across days, and no IP address is ever written to the database.
 * **Self hosted, end to end.** Every figure is computed in your own tables. Nothing
   is sent anywhere, there is no account, no API key and no paid tier.
 * Country lookup runs locally against a bundled DB-IP table. No lookup service 
   is contacted.
 * Daily rollups keep the reports fast on large sites, with configurable retention
   for raw hits, events and summaries.
 * Weekly email digest, a dashboard widget, a read only shareable dashboard link,
   CSV export and annotations.
 * Every table and column name binds through `$wpdb->prepare()` with the `%i` placeholder,
   which is why WordPress 6.2 is the minimum. Nothing the plugin runs is assembled
   from a string.
 * Report caching is keyed by permission scope, so a payload built for an administrator
   can never be served to a shared dashboard link.

## Meta

 *  Sürüm **1.3.0**
 *  Son güncelleme **6 saat önce**
 *  Etkin kurulumlar **10dan fazla**
 *  WordPress sürümü ** 6.2 veya üstü **
 *  Test edilen sürüm **7.1**
 *  PHP sürümü ** 7.4 veya üstü **
 *  Dil
 * [English (US)](https://wordpress.org/plugins/convertnow-analytics/)
 * Etiketler
 * [AI Analytics](https://tr.wordpress.org/plugins/tags/ai-analytics/)[analytics](https://tr.wordpress.org/plugins/tags/analytics/)
   [cookieless](https://tr.wordpress.org/plugins/tags/cookieless/)[privacy](https://tr.wordpress.org/plugins/tags/privacy/)
   [statistics](https://tr.wordpress.org/plugins/tags/statistics/)
 *  [Gelişmiş görünüm](https://tr.wordpress.org/plugins/convertnow-analytics/advanced/)

## Puanlar

Henüz inceleme gönderilmedi.

[Değerlendirmeniz](https://wordpress.org/support/plugin/convertnow-analytics/reviews/#new-post)

[Tüm değerlendirmeleri gör](https://wordpress.org/support/plugin/convertnow-analytics/reviews/)

## Katkıda bulunanlar

 *   [ Prateek Zare ](https://profiles.wordpress.org/prateekzare/)

## Destek

Söyleyeceğiniz bir şey mi var? Yardım mı lazım?

 [Destek forumunu görüntüle](https://wordpress.org/support/plugin/convertnow-analytics/)

## Bağış yap

Bu eklentinin geliştirilmesini desteklemek ister misiniz?

 [ Bu eklentiye bağış yap ](https://paypal.me/prateekzare16)