Plugin Directory

Changeset 3373525


Ignore:
Timestamp:
10/06/2025 09:07:37 AM (2 months ago)
Author:
DvanKooten
Message:

update reamde

Location:
koko-analytics
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • koko-analytics/tags/2.0.18/readme.txt

    r3366958 r3373525  
    1010Requires PHP: 7.4
    1111
    12 Lightweight, privacy-friendly website analytics & statistics for WordPress. No cookies, no personal data, 100% GDPR/CCPA compliant.
     12Privacy-friendly and self-hosted stats for WordPress. Simple interface, plug and play, lightning fast.
    1313
    1414== Description ==
    1515
    16 = Simple, privacy-first analytics and statistics for WordPress =
     16= Simple, privacy-focused, lightweight statistics for WordPress =
    1717
    1818Koko Analytics is a lightweight, privacy-friendly statistics plugin that runs entirely on your WordPress site.
     
    2424
    2525- **Instant setup** – Activate the plugin and stats start collecting right away.
    26 - **Privacy-friendly by design** – GDPR and CCPA compliant, with no personal data tracking.
     26- **Privacy-friendly by design** – GDPR and CCPA compliant by design.
    2727- **Own your data** – All statistics are stored on your server only.
    28 - **Fast and lightweight** – Adds less than 500 bytes of JavaScript and handles high traffic with ease.
    29 - **No cookies needed** – Choose cookie-based, cookieless, or no tracking at all.
     28- **Fast and lightweight** – Adds less than 500 bytes of JavaScript and handles traffic spikes with ease.
     29- **No cookies needed** – Choose between cookie-based, cookieless, or no tracking at all.
    3030- **Accurate essentials** – Tracks pageviews, unique pageviews, and referral URLs.
    3131
    32 **Perfect for site owners who want clear, reliable website analytics without giving away visitor data to advertising companies.**
     32**Perfect for site owners who want clear, reliable website analytics without sharing visitor data with advertising companies.**
    3333
    3434You can view a [live demo here](https://www.kokoanalytics.com/?koko-analytics-dashboard).
     
    8383== Frequently Asked Questions ==
    8484
    85 
    86 #### Does this respect my visitor's privacy?
    87 Yes. Koko Analytics only stores aggregated counts. No personal data is tracked.
    88 
    89 #### Does this use any external services?
    90 No. All data stays on your server.
     85#### Is Koko Analytics privacy-friendly?
     86
     87Yes.
     88
     89- No personal data is processed or stored.
     90- Visitors are not tracked across pages or sites.
     91- Only aggregated counts are stored, nothing that could identify a single visitor.
     92- No third-party services are involved.
     93
     94Read more about why [Koko Analytics is privacy-friendly](https://www.kokoanalytics.com/privacy-focused-wordpress-analytics/).
     95
     96#### Is Koko Analytics lightweight? Will it slow down my site?
     97
     98Koko Analytics is very fast.
     99
     100- It only adds a single script of less than 500 bytes to your pages.
     101- Data is collected using an optimized tracking endpoint which bypasses loading WordPress entirely.
     102
     103The performance impact for your visitors will be as close to zero as technically possible.
     104
     105Read more about why [Koko Analytics is lightweight](https://www.kokoanalytics.com/lightweight-wordpress-analytics/).
     106
     107#### Is Koko Analytics open-source?
     108
     109Yes. [Koko Analytics is open-source software](https://www.kokoanalytics.com/open-source-wordpress-analytics/) released under the GPL license.
    91110
    92111#### Does Koko Analytics set any cookies?
    93 By default yes, but you can disable cookies entirely in the settings.
     112
     113Yes, but you can disable cookies entirely in the settings.
    94114
    95115If using cookies, Koko Analytics sets a single `_koko_analytics_pages_viewed` cookie (max 24h lifetime) to detect unique visitors without storing personal data.
     116
    96117More info: [Does Koko Analytics use cookies?](https://www.kokoanalytics.com/kb/does-koko-analytics-use-cookies/)
    97118
    98 #### Will Koko Analytics slow down my website?
    99 No. It’s built for speed:
    100 
    101 - Only 500 bytes of JavaScript added.
    102 - Data processing runs in the background.
    103 - No extra DNS lookups — works with caching.
    104 
    105 More info: [Will Koko Analytics slow down my website?](https://www.kokoanalytics.com/kb/will-koko-analytics-slow-down-my-website/)
    106 
    107 #### Is the code open source?
    108 Yes. [View on GitHub](https://github.com/ibericode/koko-analytics).
    109 
    110 #### Where can I find documentation?
    111 Visit the [Koko Analytics Knowledge Base](https://www.kokoanalytics.com/kb/).
    112 
    113 #### How do I display visits for a page?
    114 Use the `[koko_analytics_counter]` shortcode:
    115 
    116 - `days`: Number of days (default `3650`).
    117 - `global`: `true` for site-wide count, `false` for current page only.
    118 - `metric`: `visitors` or `pageviews` (default `visitors`).
    119 
    120 Example:
    121 `[koko_analytics_counter days="30" metric="pageviews" global="true"]`
     119#### Where can I find more documentation?
     120On our [Koko Analytics Knowledge Base](https://www.kokoanalytics.com/kb/).
    122121
    123122== Screenshots ==
     
    447446- Add Jetpack Stats importer to import your historical analytics data into Koko Analytics. Go to the settings page (with Jetpack still enabled) to access it.
    448447- Fix settings page showing proxy IP instead of client IP if using reverse proxy.
    449 - Fix use of PHP 7.4 only feature in thousands separator in source code.
    450 - Auto-reload dashboard every minute if browser tab is active.
    451 - Do not show chart for just a single day of data.
    452 - Handle posts without title a little better by showing URL path instead.
    453 
    454 
    455 #### 1.4.3 - Oct 29, 2024
    456 
    457 - Fix "backtrack limit exhausted" triggering for certain referrer URL's without a subdomain part.
    458 - Gracefully handle missing referrer blocklist file. This fixes an issue when security software on the server flags the blocklist file as suspicious (due to it containing a list of known malware domains) and deleting it.
    459 - Increase width of first table column so rank isn't showing ellipsis.
    460 - Remove light grey border on table header row.
    461 - Right align numbers in dashboard widget. Thanks [Terence Eden](https://shkspr.mobi/blog/), who also did a wonderful post on [liberating your website statistics from Jetpack](https://shkspr.mobi/blog/2024/10/liberate-your-daily-statistics-from-jetpack/)!
    462 - Improved validation of referrer URL's and request parameters at data collection endpoint.
    463 
    464 
    465 #### 1.4.2 - Oct 25, 2024
    466 
    467 - Fix fatal error "invalid string operand" when referrer URL contains `t.co` shortlink.
    468 - Fix potential issue with `preg_match` returning incorrect type in function `get_referrer_url_label`
    469 
    470 
    471 #### 1.4.1 - Oct 25, 2024
    472 
    473 - Limit width of visitors and pageviews column in tables.
    474 - Fix `preg_replace` from returning an invalid type when an error occurs and the log the actual error that occurred.
    475 
    476 
    477 #### 1.4.0 - Oct 24, 2024
    478 
    479 - All HTML for the dashboard is now server-side generated, drastically reducing the amount of JavaScript and generally making the code base easier to maintain and/or extend.
    480 - All dashboard state can now be managed through URL query parameters, allowing you to bookmark or share your favorite views.
    481 - Use actual `<table>` elements for dashboard tables, for improved screen reader support.
    482 - Add filter hook `koko_analytics_referrer_url_href` to modify link `href` attribute for referrer URL's in dashboard.
    483 - Add filter hook `koko_analytics_referrer_url_label` to modify link labels for referrer URL's in dashboard.
    484 - Fix admin user not getting `view_koko_analytics` capability upon plugin activation.
    485 - Prevent empty referrer URL from being stored.
    486 - Group various Yandex referrer URL's into a single entry.
    487 - Minor memory usage improvements in autoloader implementation.
    488 
    489 
    490 #### 1.3.15 - Oct 15, 2024
    491 
    492 - Fix `href` attribute on hyperlinks in most viewed posts widget/shortcode/function template.
    493 
    494 
    495 #### 1.3.14 - Sep 23, 2024
    496 
    497 - Explicitly call `sprintf` from global namespace to benefit from upcoming sprintf related performance improvements in PHP 8.4.
    498 - Demo settings from [Koko Analytics Pro](https://www.kokoanalytics.com/pricing/) on plugin settings page.
    499 
    500 
    501 #### 1.3.13 - Sep 17, 2024
    502 
    503 - Ensure `Stats::get_totals` always returns a valid object.
    504 - Escape return values from `add_query_arg` to prevent reflected XSS attacks.
    505 - Use correct IP address even if client is behind proxy.
    506 - Various minor template performance improvements.
    507 
    508 
    509 #### 1.3.12 - Aug 18, 2024
    510 
    511 - Fix double pageview counts introduced in version 1.3.11.
    512 - Fix same-site showing up as referrer
    513 
    514 
    515 #### 1.3.11 - Aug 16, 2024
    516 
    517 - Only use referrer detection for determining returning visitors if cookie is disabled.
    518 - Add referrer aggregation rule for Brevo email campaign links.
    519 - Add referrer aggregation rule for Reddit links.
    520 - Add filter hook for easily adding or modifying Koko Analytics settings.
    521 - Add action hook for adding settings to Koko Analytics.
    522 - Explicitly get rid of all ES6 code in tracking script.
    523 
    524 
    525 #### 1.3.10 - Jun 20, 2024
    526 
    527 - Registration for [Koko Analytics Pro](https://www.kokoanalytics.com/pricing/) is open again. Purchase a license if you need custom event tracking or would just like to support the plugin.
    528 - Ignore requests from Facebook link previews and requests without a `User-Agent` HTTP header.
    529 - Update referrer blocklist.
    530 
    531 
    532 #### 1.3.9 - May 31, 2024
    533 
    534 - Fix Webpack issue with tracking script.
    535 
    536 
    537 #### 1.3.8 - May 29, 2024
    538 
    539 - Add setting to exclude views from IP addresses.
    540 - Show exact number of pageviews and visitors on hover.
    541 - Use an optimized custom autoloader.
    542 - Verify shortcode arguments for `[koko_analytics_counter]` shortcode.
    543 - Fix error when using SQLite about ambiguous column name.
    544 - Fix realtime pageview count using wrong duration.
    545 
    546 
    547 #### 1.3.7 - Feb 26, 2024
    548 
    549 - Add `[koko_analytics_counter]` shortcode. Thanks Anil Kulkarni!
    550 - Show time since last aggregation on settings page.
    551 - Validate data collection request more aggressively before writing to buffer file.
    552 - Update referrer blocklist.
    553 
    554 
    555 #### 1.3.6 - Jan 29, 2024
    556 
    557 - Update referrer blocklist.
    558 - Update third-party JS dependencies.
    559 
    560 
    561 #### 1.3.5 - Jan 8, 2024
    562 
    563 - Fix `HOUR_IN_SECONDS` constant not defined when using AMP with cookie enabled.
    564 - Fix days without any data not showing up in chart.
    565 - Improve chart y-axes for numbers just above 100.000.
    566 
    567 
    568 #### 1.3.4 - Nov 21, 2023
    569 
    570 - New feature that allows you to filter by page. Clicking any page in the "top pages" list now updates the totals and chart component to only show visitors and pageviews for that specific page.
    571 - Fix warning that cron event isn't working not showing.
    572 - Fix error when default date period is stuck at removed period.
    573 - Fix API url for sites not using pretty permalinks.
    574 - Performance improvement for rendering chart and tooltips.
    575 
    576 
    577 #### 1.3.3 - Nov 6, 2023
    578 
    579 - Fix quick navigation going forward.
    580 - Add `manifest.json` file so (standalone) dashboard can be installed as a Progressive Web App.
    581 
    582 
    583 #### 1.3.2 - Nov 2, 2023
    584 
    585 - Fix chart tooltip immediately disappearing when viewing the dashboard widget on touch devices.
    586 - Fix fatal error if lacking permissions to read database size from MySQL information tables.
    587 - Fix double encoding of special characters in post titles.
    588 - Fix arrow-key or arrow-icon navigation when viewing a single day of data.
    589 - Automatically refresh dashboard data every 60s.
    590 - Improve dashboard widget by showing a summary of today.
    591 - Added filter hook `koko_analytics_dashboard_widget_number_of_top_items` to [modify or disable the top pages and referrers in the dashboard widget](https://github.com/ibericode/koko-analytics/blob/master/code-snippets/modify-dashboard-widget/README.md).
    592 - The `[koko_analytics_most_viewed_posts]` shortcode now shows a debug message if the arguments did not lead to any results.
    593 
    594 
    595 #### 1.3.1 - Nov 1, 2023
    596 
    597 - Fix new visitors not being counted.
    598 - Fix dashboard issues for users with a large UTC timezone offset.
    599 - Fix date format in chart component if grouping by month.
    600 - Revert to blue colors for the chart. If you want your chart to use different colors, please see this [example code snippet on how to change colors](https://github.com/ibericode/koko-analytics/blob/master/code-snippets/change-chart-colors.php).
    601 - Change dashboard widget to show just a quick summary of today.
    602 - Show some feedback after using the "create optimized endpoint" button.
    603 
    604 
    605 #### 1.3.0 - Oct 31, 2023
    606 
    607 - Major [performance improvements for the dashboard](https://www.kokoanalytics.com/2023/10/31/speeding-up-dashboard-removing-react-vanilla-js/) by removing the dependency on React and further optimizations.
    608 - Added link for loading the dashboard outside of WordPress admin (standalone).
    609 - Added setting to make the analytics dashboard publicly available.
    610 - Only show button to create optimized endpoint file if location is writable.
    611 - Remove `wp_koko_analytics_dates` on plugin uninstall.
    612 - Optimized database query for getting most viewed posts and cache its results.
    613 - Expand dashboard widget to include realtime pageviews and a list of the most viewed posts.
    614 - Use `navigator.sendBeacon` for data collection requests.
    615 
    616 
    617 #### 1.2.2 - Oct 18, 2023
    618 
    619 - Fix link to settings page from plugins overview page.
    620 - Fix pagination not working because `wp_localize_script` turns everything into a string.
    621 - Fix React warning for dashboard widget when toggling visibility more than once.
    622 - Fix chart tooltip not showing on touch devices.
    623 - Minor styling improvements to settings page.
    624 - Install custom endpoint on plugin activation only.
    625 - Add button to settings page to re-attempt custom endpoint installation.
    626 - Move table pagination to bottom of component and add text label.
    627 - Wrap `input[type="radio"]` in `<fieldset>` tag.
    628 - Remove support for honouring "Do Not Track" header as per [MDN recommendations](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/DNT).
    629 
    630 
    631 #### 1.2.1 - Oct 11, 2023
    632 
    633 - Fix issue with strict types and non-hourly UTC offsets.
    634 
    635 
    636 #### 1.2.0 - Oct 11, 2023
    637 
    638 - Fix compatibility with WordPress 6.0.
    639 - Fix aggregation process not running for 5 minutes if an earlier run failed somehow.
    640 - Fix chart tooltips not showing on WordPress dashboard.
    641 - Minor performance improvements for aggregation process.
    642 - Move seed (sample data) function out of the core plugin.
    643 - Add message about checking browser console for error message in case the dashboard doesn't boot up.
    644 - Format dates in dashboard using `Intl.DateTimeFormat` in browser, if available.
    645 - Remove Pikaday datepicker in favor of native `<input type="date">` elements.
    646 - Improve mobile view of datepicker dropdown.
    647 - Exclude (fixed page) homepage from most viewed posts widget/shortcode/function.
    648 - Add filter hook `koko_analytics_items_per_page` to override the number of items to show per page for the dashboard components.
    649 - Bump required PHP version to 7.3.
    650 
    651 
    652 #### 1.1.2 - Oct 3, 2023
    653 
    654 - Fix broken totals and chart component on sites using a custom database table prefix.
    655 
    656 
    657 #### 1.1.1 - Oct 3, 2023
    658 
    659 - Fix for date table not being created, leading to an empty chart as of v1.1.0.
    660 
    661 
    662 #### Koko Analytics v1.1.0 - Oct 3, 2023
    663 
    664 - Switch out Preact for the React version that is bundled with WordPress, reducing bundle size for the admin dashboard by 40 kB (or 30%).
    665 - Stop showing warning about WP Cron events not running if on local or developer environments.
    666 - Use the same Browserslist configuration as WordPress core.
    667 - Performance optimizations for fetching and parsing chart data.
    668 - Create optimized endpoint for fetching data for the totals component.
    669 - Settings page is now a server-side rendered page instead of a React component.
    670 - Improved CSS selector performance.
    671 - Add public PHP API. You can now call the following functions:
    672     - `koko_analytics_get_most_viewed_posts()` to get a list of the most viewed posts.
    673     - `koko_analytics_get_realtime_pageview_count('-1 hour')` to get the total number of pageviews in the last hour.
    674     - `koko_analytics_track_pageview($post_id)` to track a pageview to the post with ID `$post_id`
    675 
    676 
    677 #### 1.0.40 - Sep 14, 2023
    678 
    679 - Fallback to post slug if post has no title
    680 - Validate referrer URL and ignore if invalid
    681 - Delete optimized tracking endpoint if buffer filename changed and is no longer present in it. This fixes an issue when moving between servers
    682 - Always run database migrations when needed, regardless of current user role
    683 - Allow specifying multiple post types in `KokoAnalytics\get_most_viewed_posts()` and the `[koko_analytics_most_viewed_posts]` shortcode. Example: `[koko_analytics_most_viewed_posts post_type="page,post"]`
    684 - Limit attempts to install optimized tracking endpoint to once per hour
    685 - On the analytics dashboard, use the date format from WordPress settings
    686 - Translate day and month names (only relevant if using M, F, l or D in the date format string)
    687 - WP CLI command to manually run aggregation now accepts an optional `--force` flag. Example: `wp koko-analytics aggregate --force`
    688 - Don't show warning about WP Cron not working properly on sites on localhost, sites ending in `.local` and sites containing a port number
    689 - Last but certainly not least, some preparatory work for event tracking... Coming soon!
    690 
    691 
    692 ### 1.0.39 - Aug 29, 2023
    693 
    694 - Update referrer blocklist
    695 - Update third-party JS dependencies
    696 - Bump tested WordPress version
    697 
    698 
    699 ### 1.0.38 - Apr 25, 2023
    700 
    701 - Fix issue with dashboard widget rendering incorrectly when it was initially hidden.
    702 - Only render chart in dashboard widget when it is currently visible.
    703 
    704 
    705 ### 1.0.37 - Dec 07, 2022
    706 
    707 - Fix potential issue in tracking script causing incorrect stats collection.
    708 
    709 
    710 ### 1.0.36 - Dec 06, 2022
    711 
    712 - Shrink size of tracking script to 985 bytes (when using gzip compression).
    713 
    714 
    715 ### 1.0.35 - Oct 21, 2022
    716 
    717 - You can now call `koko_analytics.trackPageview( postId )` to manually track a pageview. This is especially useful for Single Page Applications.
    718 - Update referrer blocklist.
    719 - If referrer URL is on referrer blocklist, the entire request is now ignored (vs. just the referrer part).
    720 - Update JavaScript dependencies.
    721 
    722 
    723 #### 1.0.34 - Sep 19, 2022
    724 
    725 - Track visits to front page (if not a static page) as well.
    726 - Use gmdate() for determining whether to send cache headers.
    727 - Update JavaScript dependencies.
    728 
    729 
    730 #### 1.0.33 - Aug 17, 2022
    731 
    732 - Always show at least 1 visitor if pageviews were recorded that day.
    733 - Decrease Cache-Control header of REST API responses to 60s.
    734 - Add button to reset all statistics.
    735 - Add filter `koko_analytics_url_aggregations` to modify or add URL aggregations for referrer URL's.
    736 - Created an initiative on OpenCollective for others to help fund development and support costs of Koko Analytics. Please visit https://opencollective.com/koko-analytics for more details.
    737 
    738 
    739 #### 1.0.32 - Jun 2, 2022
    740 
    741 - Fix error in latest release by ensuring Endpoint_Installer class is always loaded when needed.
    742 
    743 
    744 #### 1.0.30 - Jun 1, 2022
    745 
    746 - Delete option `koko_analytics_use_custom_endpoint` on plugin uninstall.
    747 - Only load dashboard-widget.js if user has required capability for viewing stats.
    748 - Add constant `KOKO_ANALYTICS_CUSTOM_ENDPOINT` for  [disabling the custom endpoint](https://github.com/ibericode/koko-analytics/blob/master/code-snippets/disable-custom-endpoint.php) entirely. This filter can also be used to [manually install the endpoint file to a different file location](https://github.com/ibericode/koko-analytics/blob/master/code-snippets/use-different-custom-endpoint.php).
    749 - Re-attempt installation of the custom endpoint file every hour. This also automatically re-tests whether the custom endpoint is still working as expected. The plugin already did this whenever you visited the dashboard page, but now it simply runs more often and without requiring you to log-in to your WordPress admin.
    750 
    751 
    752 #### 1.0.29 - Jan 25, 2022
    753 
    754 - Skip empty lines in buffer file to avoid a PHP notice in certain edge cases.
    755 - Make use of JS library for date presets.
    756 - Filter out user agents containing "preview".
    757 - Normalize referrer URl's for Yahoo search results.
    758 - Add class attribute to cron warning so it can be hidden using CSS by targeting `.koko-analytics-cron-warning`.
    759 
    760 
    761 #### 1.0.28 - Sep 27, 2021
    762 
    763 - Account for missing configuration object, for example if theme does not properly call `wp_head()`.
    764 - Cast database result to integer types so we do not have to do it client-side.
    765 - Cache dashboard ...
    766 
     448- Fix use of PHP 7.4 only feature in thousands separator in source ...
     449
  • koko-analytics/trunk/readme.txt

    r3366958 r3373525  
    1010Requires PHP: 7.4
    1111
    12 Lightweight, privacy-friendly website analytics & statistics for WordPress. No cookies, no personal data, 100% GDPR/CCPA compliant.
     12Privacy-friendly and self-hosted stats for WordPress. Simple interface, plug and play, lightning fast.
    1313
    1414== Description ==
    1515
    16 = Simple, privacy-first analytics and statistics for WordPress =
     16= Simple, privacy-focused, lightweight statistics for WordPress =
    1717
    1818Koko Analytics is a lightweight, privacy-friendly statistics plugin that runs entirely on your WordPress site.
     
    2424
    2525- **Instant setup** – Activate the plugin and stats start collecting right away.
    26 - **Privacy-friendly by design** – GDPR and CCPA compliant, with no personal data tracking.
     26- **Privacy-friendly by design** – GDPR and CCPA compliant by design.
    2727- **Own your data** – All statistics are stored on your server only.
    28 - **Fast and lightweight** – Adds less than 500 bytes of JavaScript and handles high traffic with ease.
    29 - **No cookies needed** – Choose cookie-based, cookieless, or no tracking at all.
     28- **Fast and lightweight** – Adds less than 500 bytes of JavaScript and handles traffic spikes with ease.
     29- **No cookies needed** – Choose between cookie-based, cookieless, or no tracking at all.
    3030- **Accurate essentials** – Tracks pageviews, unique pageviews, and referral URLs.
    3131
    32 **Perfect for site owners who want clear, reliable website analytics without giving away visitor data to advertising companies.**
     32**Perfect for site owners who want clear, reliable website analytics without sharing visitor data with advertising companies.**
    3333
    3434You can view a [live demo here](https://www.kokoanalytics.com/?koko-analytics-dashboard).
     
    8383== Frequently Asked Questions ==
    8484
    85 
    86 #### Does this respect my visitor's privacy?
    87 Yes. Koko Analytics only stores aggregated counts. No personal data is tracked.
    88 
    89 #### Does this use any external services?
    90 No. All data stays on your server.
     85#### Is Koko Analytics privacy-friendly?
     86
     87Yes.
     88
     89- No personal data is processed or stored.
     90- Visitors are not tracked across pages or sites.
     91- Only aggregated counts are stored, nothing that could identify a single visitor.
     92- No third-party services are involved.
     93
     94Read more about why [Koko Analytics is privacy-friendly](https://www.kokoanalytics.com/privacy-focused-wordpress-analytics/).
     95
     96#### Is Koko Analytics lightweight? Will it slow down my site?
     97
     98Koko Analytics is very fast.
     99
     100- It only adds a single script of less than 500 bytes to your pages.
     101- Data is collected using an optimized tracking endpoint which bypasses loading WordPress entirely.
     102
     103The performance impact for your visitors will be as close to zero as technically possible.
     104
     105Read more about why [Koko Analytics is lightweight](https://www.kokoanalytics.com/lightweight-wordpress-analytics/).
     106
     107#### Is Koko Analytics open-source?
     108
     109Yes. [Koko Analytics is open-source software](https://www.kokoanalytics.com/open-source-wordpress-analytics/) released under the GPL license.
    91110
    92111#### Does Koko Analytics set any cookies?
    93 By default yes, but you can disable cookies entirely in the settings.
     112
     113Yes, but you can disable cookies entirely in the settings.
    94114
    95115If using cookies, Koko Analytics sets a single `_koko_analytics_pages_viewed` cookie (max 24h lifetime) to detect unique visitors without storing personal data.
     116
    96117More info: [Does Koko Analytics use cookies?](https://www.kokoanalytics.com/kb/does-koko-analytics-use-cookies/)
    97118
    98 #### Will Koko Analytics slow down my website?
    99 No. It’s built for speed:
    100 
    101 - Only 500 bytes of JavaScript added.
    102 - Data processing runs in the background.
    103 - No extra DNS lookups — works with caching.
    104 
    105 More info: [Will Koko Analytics slow down my website?](https://www.kokoanalytics.com/kb/will-koko-analytics-slow-down-my-website/)
    106 
    107 #### Is the code open source?
    108 Yes. [View on GitHub](https://github.com/ibericode/koko-analytics).
    109 
    110 #### Where can I find documentation?
    111 Visit the [Koko Analytics Knowledge Base](https://www.kokoanalytics.com/kb/).
    112 
    113 #### How do I display visits for a page?
    114 Use the `[koko_analytics_counter]` shortcode:
    115 
    116 - `days`: Number of days (default `3650`).
    117 - `global`: `true` for site-wide count, `false` for current page only.
    118 - `metric`: `visitors` or `pageviews` (default `visitors`).
    119 
    120 Example:
    121 `[koko_analytics_counter days="30" metric="pageviews" global="true"]`
     119#### Where can I find more documentation?
     120On our [Koko Analytics Knowledge Base](https://www.kokoanalytics.com/kb/).
    122121
    123122== Screenshots ==
     
    447446- Add Jetpack Stats importer to import your historical analytics data into Koko Analytics. Go to the settings page (with Jetpack still enabled) to access it.
    448447- Fix settings page showing proxy IP instead of client IP if using reverse proxy.
    449 - Fix use of PHP 7.4 only feature in thousands separator in source code.
    450 - Auto-reload dashboard every minute if browser tab is active.
    451 - Do not show chart for just a single day of data.
    452 - Handle posts without title a little better by showing URL path instead.
    453 
    454 
    455 #### 1.4.3 - Oct 29, 2024
    456 
    457 - Fix "backtrack limit exhausted" triggering for certain referrer URL's without a subdomain part.
    458 - Gracefully handle missing referrer blocklist file. This fixes an issue when security software on the server flags the blocklist file as suspicious (due to it containing a list of known malware domains) and deleting it.
    459 - Increase width of first table column so rank isn't showing ellipsis.
    460 - Remove light grey border on table header row.
    461 - Right align numbers in dashboard widget. Thanks [Terence Eden](https://shkspr.mobi/blog/), who also did a wonderful post on [liberating your website statistics from Jetpack](https://shkspr.mobi/blog/2024/10/liberate-your-daily-statistics-from-jetpack/)!
    462 - Improved validation of referrer URL's and request parameters at data collection endpoint.
    463 
    464 
    465 #### 1.4.2 - Oct 25, 2024
    466 
    467 - Fix fatal error "invalid string operand" when referrer URL contains `t.co` shortlink.
    468 - Fix potential issue with `preg_match` returning incorrect type in function `get_referrer_url_label`
    469 
    470 
    471 #### 1.4.1 - Oct 25, 2024
    472 
    473 - Limit width of visitors and pageviews column in tables.
    474 - Fix `preg_replace` from returning an invalid type when an error occurs and the log the actual error that occurred.
    475 
    476 
    477 #### 1.4.0 - Oct 24, 2024
    478 
    479 - All HTML for the dashboard is now server-side generated, drastically reducing the amount of JavaScript and generally making the code base easier to maintain and/or extend.
    480 - All dashboard state can now be managed through URL query parameters, allowing you to bookmark or share your favorite views.
    481 - Use actual `<table>` elements for dashboard tables, for improved screen reader support.
    482 - Add filter hook `koko_analytics_referrer_url_href` to modify link `href` attribute for referrer URL's in dashboard.
    483 - Add filter hook `koko_analytics_referrer_url_label` to modify link labels for referrer URL's in dashboard.
    484 - Fix admin user not getting `view_koko_analytics` capability upon plugin activation.
    485 - Prevent empty referrer URL from being stored.
    486 - Group various Yandex referrer URL's into a single entry.
    487 - Minor memory usage improvements in autoloader implementation.
    488 
    489 
    490 #### 1.3.15 - Oct 15, 2024
    491 
    492 - Fix `href` attribute on hyperlinks in most viewed posts widget/shortcode/function template.
    493 
    494 
    495 #### 1.3.14 - Sep 23, 2024
    496 
    497 - Explicitly call `sprintf` from global namespace to benefit from upcoming sprintf related performance improvements in PHP 8.4.
    498 - Demo settings from [Koko Analytics Pro](https://www.kokoanalytics.com/pricing/) on plugin settings page.
    499 
    500 
    501 #### 1.3.13 - Sep 17, 2024
    502 
    503 - Ensure `Stats::get_totals` always returns a valid object.
    504 - Escape return values from `add_query_arg` to prevent reflected XSS attacks.
    505 - Use correct IP address even if client is behind proxy.
    506 - Various minor template performance improvements.
    507 
    508 
    509 #### 1.3.12 - Aug 18, 2024
    510 
    511 - Fix double pageview counts introduced in version 1.3.11.
    512 - Fix same-site showing up as referrer
    513 
    514 
    515 #### 1.3.11 - Aug 16, 2024
    516 
    517 - Only use referrer detection for determining returning visitors if cookie is disabled.
    518 - Add referrer aggregation rule for Brevo email campaign links.
    519 - Add referrer aggregation rule for Reddit links.
    520 - Add filter hook for easily adding or modifying Koko Analytics settings.
    521 - Add action hook for adding settings to Koko Analytics.
    522 - Explicitly get rid of all ES6 code in tracking script.
    523 
    524 
    525 #### 1.3.10 - Jun 20, 2024
    526 
    527 - Registration for [Koko Analytics Pro](https://www.kokoanalytics.com/pricing/) is open again. Purchase a license if you need custom event tracking or would just like to support the plugin.
    528 - Ignore requests from Facebook link previews and requests without a `User-Agent` HTTP header.
    529 - Update referrer blocklist.
    530 
    531 
    532 #### 1.3.9 - May 31, 2024
    533 
    534 - Fix Webpack issue with tracking script.
    535 
    536 
    537 #### 1.3.8 - May 29, 2024
    538 
    539 - Add setting to exclude views from IP addresses.
    540 - Show exact number of pageviews and visitors on hover.
    541 - Use an optimized custom autoloader.
    542 - Verify shortcode arguments for `[koko_analytics_counter]` shortcode.
    543 - Fix error when using SQLite about ambiguous column name.
    544 - Fix realtime pageview count using wrong duration.
    545 
    546 
    547 #### 1.3.7 - Feb 26, 2024
    548 
    549 - Add `[koko_analytics_counter]` shortcode. Thanks Anil Kulkarni!
    550 - Show time since last aggregation on settings page.
    551 - Validate data collection request more aggressively before writing to buffer file.
    552 - Update referrer blocklist.
    553 
    554 
    555 #### 1.3.6 - Jan 29, 2024
    556 
    557 - Update referrer blocklist.
    558 - Update third-party JS dependencies.
    559 
    560 
    561 #### 1.3.5 - Jan 8, 2024
    562 
    563 - Fix `HOUR_IN_SECONDS` constant not defined when using AMP with cookie enabled.
    564 - Fix days without any data not showing up in chart.
    565 - Improve chart y-axes for numbers just above 100.000.
    566 
    567 
    568 #### 1.3.4 - Nov 21, 2023
    569 
    570 - New feature that allows you to filter by page. Clicking any page in the "top pages" list now updates the totals and chart component to only show visitors and pageviews for that specific page.
    571 - Fix warning that cron event isn't working not showing.
    572 - Fix error when default date period is stuck at removed period.
    573 - Fix API url for sites not using pretty permalinks.
    574 - Performance improvement for rendering chart and tooltips.
    575 
    576 
    577 #### 1.3.3 - Nov 6, 2023
    578 
    579 - Fix quick navigation going forward.
    580 - Add `manifest.json` file so (standalone) dashboard can be installed as a Progressive Web App.
    581 
    582 
    583 #### 1.3.2 - Nov 2, 2023
    584 
    585 - Fix chart tooltip immediately disappearing when viewing the dashboard widget on touch devices.
    586 - Fix fatal error if lacking permissions to read database size from MySQL information tables.
    587 - Fix double encoding of special characters in post titles.
    588 - Fix arrow-key or arrow-icon navigation when viewing a single day of data.
    589 - Automatically refresh dashboard data every 60s.
    590 - Improve dashboard widget by showing a summary of today.
    591 - Added filter hook `koko_analytics_dashboard_widget_number_of_top_items` to [modify or disable the top pages and referrers in the dashboard widget](https://github.com/ibericode/koko-analytics/blob/master/code-snippets/modify-dashboard-widget/README.md).
    592 - The `[koko_analytics_most_viewed_posts]` shortcode now shows a debug message if the arguments did not lead to any results.
    593 
    594 
    595 #### 1.3.1 - Nov 1, 2023
    596 
    597 - Fix new visitors not being counted.
    598 - Fix dashboard issues for users with a large UTC timezone offset.
    599 - Fix date format in chart component if grouping by month.
    600 - Revert to blue colors for the chart. If you want your chart to use different colors, please see this [example code snippet on how to change colors](https://github.com/ibericode/koko-analytics/blob/master/code-snippets/change-chart-colors.php).
    601 - Change dashboard widget to show just a quick summary of today.
    602 - Show some feedback after using the "create optimized endpoint" button.
    603 
    604 
    605 #### 1.3.0 - Oct 31, 2023
    606 
    607 - Major [performance improvements for the dashboard](https://www.kokoanalytics.com/2023/10/31/speeding-up-dashboard-removing-react-vanilla-js/) by removing the dependency on React and further optimizations.
    608 - Added link for loading the dashboard outside of WordPress admin (standalone).
    609 - Added setting to make the analytics dashboard publicly available.
    610 - Only show button to create optimized endpoint file if location is writable.
    611 - Remove `wp_koko_analytics_dates` on plugin uninstall.
    612 - Optimized database query for getting most viewed posts and cache its results.
    613 - Expand dashboard widget to include realtime pageviews and a list of the most viewed posts.
    614 - Use `navigator.sendBeacon` for data collection requests.
    615 
    616 
    617 #### 1.2.2 - Oct 18, 2023
    618 
    619 - Fix link to settings page from plugins overview page.
    620 - Fix pagination not working because `wp_localize_script` turns everything into a string.
    621 - Fix React warning for dashboard widget when toggling visibility more than once.
    622 - Fix chart tooltip not showing on touch devices.
    623 - Minor styling improvements to settings page.
    624 - Install custom endpoint on plugin activation only.
    625 - Add button to settings page to re-attempt custom endpoint installation.
    626 - Move table pagination to bottom of component and add text label.
    627 - Wrap `input[type="radio"]` in `<fieldset>` tag.
    628 - Remove support for honouring "Do Not Track" header as per [MDN recommendations](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/DNT).
    629 
    630 
    631 #### 1.2.1 - Oct 11, 2023
    632 
    633 - Fix issue with strict types and non-hourly UTC offsets.
    634 
    635 
    636 #### 1.2.0 - Oct 11, 2023
    637 
    638 - Fix compatibility with WordPress 6.0.
    639 - Fix aggregation process not running for 5 minutes if an earlier run failed somehow.
    640 - Fix chart tooltips not showing on WordPress dashboard.
    641 - Minor performance improvements for aggregation process.
    642 - Move seed (sample data) function out of the core plugin.
    643 - Add message about checking browser console for error message in case the dashboard doesn't boot up.
    644 - Format dates in dashboard using `Intl.DateTimeFormat` in browser, if available.
    645 - Remove Pikaday datepicker in favor of native `<input type="date">` elements.
    646 - Improve mobile view of datepicker dropdown.
    647 - Exclude (fixed page) homepage from most viewed posts widget/shortcode/function.
    648 - Add filter hook `koko_analytics_items_per_page` to override the number of items to show per page for the dashboard components.
    649 - Bump required PHP version to 7.3.
    650 
    651 
    652 #### 1.1.2 - Oct 3, 2023
    653 
    654 - Fix broken totals and chart component on sites using a custom database table prefix.
    655 
    656 
    657 #### 1.1.1 - Oct 3, 2023
    658 
    659 - Fix for date table not being created, leading to an empty chart as of v1.1.0.
    660 
    661 
    662 #### Koko Analytics v1.1.0 - Oct 3, 2023
    663 
    664 - Switch out Preact for the React version that is bundled with WordPress, reducing bundle size for the admin dashboard by 40 kB (or 30%).
    665 - Stop showing warning about WP Cron events not running if on local or developer environments.
    666 - Use the same Browserslist configuration as WordPress core.
    667 - Performance optimizations for fetching and parsing chart data.
    668 - Create optimized endpoint for fetching data for the totals component.
    669 - Settings page is now a server-side rendered page instead of a React component.
    670 - Improved CSS selector performance.
    671 - Add public PHP API. You can now call the following functions:
    672     - `koko_analytics_get_most_viewed_posts()` to get a list of the most viewed posts.
    673     - `koko_analytics_get_realtime_pageview_count('-1 hour')` to get the total number of pageviews in the last hour.
    674     - `koko_analytics_track_pageview($post_id)` to track a pageview to the post with ID `$post_id`
    675 
    676 
    677 #### 1.0.40 - Sep 14, 2023
    678 
    679 - Fallback to post slug if post has no title
    680 - Validate referrer URL and ignore if invalid
    681 - Delete optimized tracking endpoint if buffer filename changed and is no longer present in it. This fixes an issue when moving between servers
    682 - Always run database migrations when needed, regardless of current user role
    683 - Allow specifying multiple post types in `KokoAnalytics\get_most_viewed_posts()` and the `[koko_analytics_most_viewed_posts]` shortcode. Example: `[koko_analytics_most_viewed_posts post_type="page,post"]`
    684 - Limit attempts to install optimized tracking endpoint to once per hour
    685 - On the analytics dashboard, use the date format from WordPress settings
    686 - Translate day and month names (only relevant if using M, F, l or D in the date format string)
    687 - WP CLI command to manually run aggregation now accepts an optional `--force` flag. Example: `wp koko-analytics aggregate --force`
    688 - Don't show warning about WP Cron not working properly on sites on localhost, sites ending in `.local` and sites containing a port number
    689 - Last but certainly not least, some preparatory work for event tracking... Coming soon!
    690 
    691 
    692 ### 1.0.39 - Aug 29, 2023
    693 
    694 - Update referrer blocklist
    695 - Update third-party JS dependencies
    696 - Bump tested WordPress version
    697 
    698 
    699 ### 1.0.38 - Apr 25, 2023
    700 
    701 - Fix issue with dashboard widget rendering incorrectly when it was initially hidden.
    702 - Only render chart in dashboard widget when it is currently visible.
    703 
    704 
    705 ### 1.0.37 - Dec 07, 2022
    706 
    707 - Fix potential issue in tracking script causing incorrect stats collection.
    708 
    709 
    710 ### 1.0.36 - Dec 06, 2022
    711 
    712 - Shrink size of tracking script to 985 bytes (when using gzip compression).
    713 
    714 
    715 ### 1.0.35 - Oct 21, 2022
    716 
    717 - You can now call `koko_analytics.trackPageview( postId )` to manually track a pageview. This is especially useful for Single Page Applications.
    718 - Update referrer blocklist.
    719 - If referrer URL is on referrer blocklist, the entire request is now ignored (vs. just the referrer part).
    720 - Update JavaScript dependencies.
    721 
    722 
    723 #### 1.0.34 - Sep 19, 2022
    724 
    725 - Track visits to front page (if not a static page) as well.
    726 - Use gmdate() for determining whether to send cache headers.
    727 - Update JavaScript dependencies.
    728 
    729 
    730 #### 1.0.33 - Aug 17, 2022
    731 
    732 - Always show at least 1 visitor if pageviews were recorded that day.
    733 - Decrease Cache-Control header of REST API responses to 60s.
    734 - Add button to reset all statistics.
    735 - Add filter `koko_analytics_url_aggregations` to modify or add URL aggregations for referrer URL's.
    736 - Created an initiative on OpenCollective for others to help fund development and support costs of Koko Analytics. Please visit https://opencollective.com/koko-analytics for more details.
    737 
    738 
    739 #### 1.0.32 - Jun 2, 2022
    740 
    741 - Fix error in latest release by ensuring Endpoint_Installer class is always loaded when needed.
    742 
    743 
    744 #### 1.0.30 - Jun 1, 2022
    745 
    746 - Delete option `koko_analytics_use_custom_endpoint` on plugin uninstall.
    747 - Only load dashboard-widget.js if user has required capability for viewing stats.
    748 - Add constant `KOKO_ANALYTICS_CUSTOM_ENDPOINT` for  [disabling the custom endpoint](https://github.com/ibericode/koko-analytics/blob/master/code-snippets/disable-custom-endpoint.php) entirely. This filter can also be used to [manually install the endpoint file to a different file location](https://github.com/ibericode/koko-analytics/blob/master/code-snippets/use-different-custom-endpoint.php).
    749 - Re-attempt installation of the custom endpoint file every hour. This also automatically re-tests whether the custom endpoint is still working as expected. The plugin already did this whenever you visited the dashboard page, but now it simply runs more often and without requiring you to log-in to your WordPress admin.
    750 
    751 
    752 #### 1.0.29 - Jan 25, 2022
    753 
    754 - Skip empty lines in buffer file to avoid a PHP notice in certain edge cases.
    755 - Make use of JS library for date presets.
    756 - Filter out user agents containing "preview".
    757 - Normalize referrer URl's for Yahoo search results.
    758 - Add class attribute to cron warning so it can be hidden using CSS by targeting `.koko-analytics-cron-warning`.
    759 
    760 
    761 #### 1.0.28 - Sep 27, 2021
    762 
    763 - Account for missing configuration object, for example if theme does not properly call `wp_head()`.
    764 - Cast database result to integer types so we do not have to do it client-side.
    765 - Cache dashboard ...
    766 
     448- Fix use of PHP 7.4 only feature in thousands separator in source ...
     449
Note: See TracChangeset for help on using the changeset viewer.