Plugin to create fake visits, websites, users and goals. This can be used by Matomo users or developers as an easy way to generate fake data to populate Matomo reports.
You can overwrite the log files that are used to generate fake visits in plugins/VisitorGenerator/data or add new logs to the data directory. All files ending with *.log will be replayed.
Plugin developers can provide their own log files by placing '*.log' files within a 'data' directory of their plugin. This way plugin developers make sure there will be always useful test data.
The plugin adds a new item to the Matomo admin UI visible only for users having Super User access under the section "Development". There you can select a site and for how many days in the past you want to generate new visits.
Note: you need to first enable the Development mode in Matomo. In the root directory of your Matomo install, run the following command to enable development mode: ./console development:enable
It also adds the following commands to the Matomo CLI tool:
-
Generate visits
-
Generate goals
-
Generate users
-
Generate websites
-
Generate annotation
-
Generate visits directly to database
-
Shorten log file
-
Anonymize log file
./console visitorgenerator:generate-annotation --idsite 5generate one annotation for the current day for site with id 5./console visitorgenerator:generate-goals --idsite 5generates some predefined goals for site with id 5./console visitorgenerator:generate-users --limit 100generates 100 users./console visitorgenerator:generate-websites --limit 100generates 100 websites./console visitorgenerator:generate-visits --idsite 5generates many visits for site with id 5 for today./console visitorgenerator:generate-visits --idsite 5 --days 2generates many visits for site with id 5 for today and yesterday./console visitorgenerator:anonymize-log /path/to/logtakes an Apache log file, anonymizes it and places it in a data directory so it will be replayed the next time "generate-visits" is executed./console visitorgenerator:shorten-log /path/to/file.log > file.short.logtakes a large Apache log file and keeps only a small number of logs per day./console visitorgenerator:generate-visits --idsite 5 --custom-matomo-url=http://example.com/Uses 'http://example.com/' as Matomo-URL and generates many visits for site with id 5 for today-
./console visitorgenerator:generate-visits-db --idsite 5 --limit-visits=200 --days=3 --threads=8generate 200 visits per day for the last three days directly in the database, using 8 threaded processes
Synthetic visits use over 13,000 predefined places grouped by country and region. Each visit receives a matching country, region, city and coordinates rounded to two decimal places, as in normal Matomo geolocation. The list combines population-based selection with coverage of available regions and geographically dispersed populated places. Additional towns fill gaps in countries with sparse source coverage. Individual places are selected equally. It works without a GeoIP database.
Both synthetic commands accept a two-letter --country code and an optional ISO
region suffix in --region. Codes are case-insensitive. A region requires a country,
and both must have places in the bundled list. For example:
./console visitorgenerator:generate-visits --idsite=1 --no-logs --country=US --region=CA
./console visitorgenerator:generate-visits-db --idsite=1 --limit-visits=200 --country=DE --threads=2
Location filters on generate-visits require --no-logs and cannot be combined
with --no-fake. Imported logs retain their original behaviour. IP addresses and
browser languages are generated independently of the selected place. Places without a resolved region are omitted, so the available countries and regions
are limited to those represented in the list.
VisitorGenerator makes a lot of requests to the Matomo tracking API to send the visits, so if your server blocks requests based on rules (e.g. with mod_security), you might want to create an exception rule for VisitorGenerator.
Alternatively you can generate visit test data quickly without using the tracker at all using the generate-visits-db option.
It only works in Matomo for WordPress if the plugin is installed through git as it's only intended for development.
In Matomo for WordPress you can find the UI in the Matomo Admin under "System".
You can also use the command line to generate the data:
cd wp-content/plugins/matomo/app
./console visitorgenerator:generate-visits --idsite=1
This plugin had its vendored dependencies made compatible with Matomo's minimum supported version of PHP using the Rector library. It's preferable that you install the composer package in a separate project and point to this project so that it doesn't get committed in this project. You should also have a config file saved containing the following:
<?php
use Rector\Config\RectorConfig;
return static function (RectorConfig $rectorConfig): void {
$rectorConfig->sets([
\Rector\Set\ValueObject\DowngradeLevelSetList::DOWN_TO_PHP_72
]);
$rectorConfig->skip([
\Rector\DowngradePhp80\Rector\Class_\DowngradeAttributeToAnnotationRector::class
]);
};With all that in place, you should be able to run Rector like so: vendor/bin/rector process {path_to_this_plugin/vendor} --config={path_to_config_file}
NOTE: For Matomo developers, there's an internal DevPluginCommands plugin with a command that handles running Rector. Just make sure to use the
skip-scopingoption. Also make sure to downgrade to PHP 7.2 because all other plugins use 7.3. See the SearchEngineKeywordsPerformance plugin's README.md for more details.
This plugin is released under the GPLv3+ license.
This plugin uses the Faker library which is released under the MIT license.
The bundled location dataset in data/locations.json is derived from the
DB-IP City Lite database and
from GeoNames, both released under the
Creative Commons Attribution 4.0 International license.