Linux 软件免费装
Banner图

RockHeron

开发者 miotix
更新时间 2026年11月7日 20:32
PHP版本: 7.4 及以上
WordPress版本: 7.1
版权: GPLv2 or later
版权网址: 版权信息

标签

conversion tracking campaign tracking attribution lead source utm tracking

下载

1.1.0 1.1.1 1.1.2 1.0.0

详情介绍:

Your ad platform counts its own results. RockHeron counts them on your site and puts the two numbers next to each other. It records which campaign introduced every form submission and every WooCommerce order, in your own database on your own hosting, then shows what the platform claimed beside what your site actually recorded, so you can see the gap rather than take a dashboard's word for it. Lead source attribution What else it records on your site Google data next to it Privacy

安装:

  1. Upload the plugin folder to /wp-content/plugins/, or install the zip from Plugins, Add New.
  2. Activate it.
  3. Open RockHeron. Visits start appearing within a minute.
  4. Optional: open Settings to connect Google, or install Site Kit and it is picked up on its own.

屏幕截图:

  • Leads. Every form submission and WooCommerce order with the campaign that introduced it. First touch, remembered for thirty days.
  • Campaigns, each reported over its own dates: what the platform claimed, what this site recorded, and the gap between them. Pro.
  • A report carrying your own name and logo, prepared for a client. Pro.
  • Settings. White labeling, the weekly or monthly send, and every site you look after in one table. Pro.
  • Tracked elements. What you asked to count, where it is counted, and what has been recorded so far.

升级注意事项:

1.1.0 Fixes a privacy gap: a visitor who withdrew consent, or who has Do Not Track on, could still have a campaign attached to a form submission, because the cookie written while consent stood was still being read. Take this one. Also adds Excel export, puts your results into every export, and gives the Leads screen its own.

常见问题:

Do I need Google Analytics for this to work?

No. Everything on the dashboard except the GA4, Search Console and Ads cards comes from your own site.

Will it slow my site down?

The tracking script is roughly 6 KB, loads in the footer, and sends one small beacon per page view. Reports read a pre built daily table rather than scanning raw rows.

Does it work with caching plugins?

Yes. Page views are counted in the browser, so a cached page is still recorded.

The dashboard is empty, where is my history?

The plugin starts recording the day you install it. Open Settings, Import history from Google Analytics, and it fills the earlier months from your GA4 property. Imported days are dashed on the chart because Google counts sessions slightly differently.

I took the site over and the old analytics account is not mine

Import your Search Console history instead. Settings, Import search history from Search Console, upload the export file. It needs no Google connection, because the site owner always has their own Search Console property even when the analytics account belongs to a previous agency.

How do I track a specific button?

Open RockHeron, Tracked elements. Give it a name, paste the button's CSS selector, and tick "count this as a goal" if it matters commercially.

How do I set it up, screen by screen?

Nothing here needs an account anywhere unless you choose to connect Google.

First run, and the screens

  1. Activate the plugin and open RockHeron. Recording starts immediately and the first visits appear within a minute. There is nothing to switch on.
  2. Dashboard is traffic: sessions, daily visitors, page views, goal completions and conversion rate, each against the previous period, with cards for where visits came from, top pages and traffic over time.
  3. Leads is the point of the plugin: every form submission and WooCommerce order with the campaign that introduced the person, read as first touch. A result nobody could attribute is listed as Not known rather than dropped, so these totals never quietly disagree with your form plugin.
  4. Tracked elements counts anything you name with a CSS selector: a quote button, a telephone link, a PDF download. Tick "count this as a goal" and it feeds the conversion figures.
  5. Settings holds Google, privacy, retention and the Google tag.
Form plugins are read automatically, never written to. Contact Form 7, WPForms, Gravity Forms, Elementor Forms, Fluent Forms and WooCommerce are supported, both WooCommerce checkouts included, and the Leads screen lists which it can see, so an empty screen tells you why it is empty.

Google: what it is for, and what you need

You do not need Google at all. The plugin records visits and leads from your own site, in your own database. Connecting Google only adds Google's own numbers beside yours. Three independent things:

  • Google Analytics 4 reporting. Settings, Google data. Either install Site Kit by Google and RockHeron uses its connection, or connect directly. A direct connection needs a Google Cloud project with the Analytics Data API enabled and an OAuth client of type Web application, whose Client ID and Client secret you paste into Settings. The scope is analytics.readonly, read only: nothing is written back and no visitor data is sent.
  • Google Ads. Only if you switch it on, adding the adwords scope to the same connection so spend and clicks can be read.
  • Search Console history. No API, no credentials. Export the Performance report from Search Console and upload the zip, or the CSVs inside it, in Settings.
The Google tag is separate again and off until you enter a measurement ID. It is the ordinary gtag.js, so switching it on sends Google what the Google tag always sends: page views, device and IP address, under Google's terms rather than ours. The reporting connections above send Google nothing. Leave the field empty and no tag is loaded.

Campaigns (Pro)

The paid version adds a Campaigns screen that takes a CSV of what each platform claimed, and shows it beside what this plugin recorded. The column format is documented at https://rockheron.com/documentation/

Reports, and how a PDF is made

The Report screen builds a report over any period from the cards you choose, and it is a printable page: your browser's print dialog saves it as a PDF, and the caveats under each figure are carried into the file rather than left behind on the screen. That is true of every edition.

Consent, and Do Not Track

Settings, Privacy. Consent mode is off by default, which records every visit. The other three modes are:

  • WP Consent API, for any consent plugin implementing it. Statistics consent is required before anything is recorded.
  • CookiePile, read directly.
  • A cookie you name: give the cookie name and the value meaning consent.
Where a mode is selected but cannot be evaluated, for example the consent plugin has been deactivated, the plugin fails closed and records nothing. Consent and Do Not Track are evaluated in the visitor's browser, not on the server, because a decision made in PHP is written into your page cache and then served to the next visitor, whose answer may be the opposite. Respect Do Not Track is a separate switch in the same panel. Somebody who accepts after the page has loaded is picked up without a reload.

What is stored, how long, and how to delete it

What is kept about a lead is the campaign and a pointer to the form plugin's own entry. No name, no email address, no telephone number, and no advertising click identifier. Your form plugin already holds the submission, and a second copy of every lead on your site is a duty rather than a feature. Three retention settings, all in Settings, Stored data:

  • Attribution window, default 30 days. How long the first touch campaign is remembered in one first party cookie. 1 to 365.
  • Raw events, default 90 days. Individual page views are pruned nightly after this; the daily totals they roll up into are kept.
  • Leads, default 400 days. 30 to 3650.
To remove everything: Settings, Stored data deletes recorded data without uninstalling. Uninstalling with "delete my data" on drops every table, option, transient and scheduled job the plugin created, found by prefix rather than from a list. Deactivating removes only the scheduled jobs, so your data survives an update.

How the lists are stored

Lists like top pages, referrers, campaigns and landing pages are rolled up once a day. Each day keeps its busiest rows by name and sums the rest into a single "everything else" figure, so the stored rows account for the whole day however long the list. The totals are right either way. A cap changes only how much of the long tail is broken out by name: a page ranking below it every day is still counted, inside that one figure rather than under its own address. Defaults are 200 rows a day for pages and landing paths, 100 for referrers, campaigns, outbound links and searches, and 50 for lists that cannot produce more anyway, such as device, browser and country. Settings, Stored data has one field, "Rows kept per list, per day", setting a single number for every list; zero, the default, leaves each on its own. The rockheron_dim_limit filter takes ( $limit, $dim ) to raise one list without the rest. Each extra row is kept for good, since the daily totals outlive the raw events behind them, so raising this on a site with thousands of URLs costs table rows for every day the site runs.

Troubleshooting

  • The dashboard is empty. The plugin knows only what it has recorded since activation; it cannot see the past. Check you are not logged in as an administrator or editor: those roles are excluded by default, in Settings, What to record, so browsing your own site while logged in deliberately records nothing.
  • Nothing appears on a cached site. Recording runs in the browser and does not need an uncached page. If you see nothing, check your caching or optimization plugin is not deferring or stripping the script.
  • Leads are missing. The Leads screen lists the form plugins it can see. If yours is absent it is not supported yet. If it is listed but entries are not arriving, confirm the form completes: a submission that fails validation is not a lead.
  • Google numbers will not load. Reconnect in Settings, Google data. An expired or revoked connection reports the error it received rather than showing zero, because zero is a real figure and a broken connection must not produce one.
  • Figures disagree with Google. They will, always, and neither is wrong. Google counts sessions its own way and loses what consent and ad blockers take; this plugin counts what reached your database. Both are shown, never reconciled.
  • A PDF will not download. The report page prints to PDF from any browser in every edition, and a paid edition renders the file on the server as well. Where that cannot run, the screen says so and falls back to the printable page. See "Reports, and how a PDF is made" above for what the server needs and what is capped.

Support

Bring us the problem whichever route you bought by. Quote your license key if you have one; otherwise the site address is enough.

更新日志:

1.1.2 A fix for paid sites running PHP 7.4, where the PDF could not be produced at all. Nothing else changed. 1.1.1 Documentation only. No code changed, so there is nothing here that can alter what your site records or reports. 1.1.0 Earlier releases 1.0.0 was the first public release. 0.1.0 through 0.9.9 were development releases: the plugin was not published anywhere while they were being written, so no site ever ran that code. The release history from 0.6.0, with the reasoning behind each decision, is at https://rockheron.com/changelog/