Documentation

Everything you need to install a plugin, activate a licence and get the first useful result out of it. The full reference for each setting lives inside the plugin, next to the setting.

What you need

  • WordPress 6.4 or newer
  • PHP 8.0 or newer
  • No other plugin, service or account required
  • Multisite works, with settings per site

Installing the free plugin

  1. In wp-admin, open Plugins → Add New and search for the plugin by name.
  2. Install it, then activate it. Nothing else is required: every plugin here works on its defaults.
  3. Find it in the sidebar and open its Status screen. It tells you what is running, and it is the first place to look if something later seems not to be.

Installing Pro and activating a licence

  1. Keep the free plugin installed and active. Pro extends it rather than replacing it, and WordPress will refuse to activate Pro on its own.
  2. Download the Pro zip from the receipt email or from your order history.
  3. Open Plugins → Add New → Upload Plugin, choose the zip, install and activate.
  4. Open the plugin’s Licence screen, paste the key from your receipt and activate it. Updates then arrive in wp-admin like any other plugin.

Activation counts production sites only. Local, staging and development sites are recognised and recorded, but never counted against your licence. If a site of yours is counted that should not be, tell us and we will fix it.

First useful result, per plugin

Three steps each. None of them needs a developer, and none of them needs you to read the rest of the documentation first.

Attribution Tracker

  1. Open Attribution Tracker → Status and check that capture is running. Visit your own site with ?utm_source=test on the URL and the debug panel will show what it stored.
  2. Add the tracking fields to a form. For Gravity Forms, Contact Form 7 and WPForms there is a one click button on the Status screen that inserts them; they fill themselves and editors never touch them.
  3. Submit the form. The entry arrives with its source, medium, campaign, landing page and channel attached, for both the first and the last visit.

Dynamic Content

  1. Open Dynamic Content → Slots and create a slot for the value that should change, usually a phone number. The default you give it is what a visitor sees when no rule matches, so make it a working number.
  2. Place the slot in your template or page. The Status screen shows the exact markup and the shortcode.
  3. Open Rules and add one: conditions on UTMs, referrer, landing page, URL or device. Conditions in a group are ANDed, groups are ORed, and the first matching rule wins. The debug panel on the front end names the rule that matched and why.

Responsive Focal Point

  1. Open any image in the Media Library. There is a focal point control with live previews of how the image crops at five aspect ratios.
  2. Click the part of the image that must never be cropped out, then save. That is the whole workflow for most images.
  3. Where one point is not enough, give a breakpoint its own. Anything left blank inherits from the next widest, so nobody has to fill in every row.

For developers

Every plugin ships a documented set of actions and filters, listed in docs/HOOKS.md in the zip and on the Status screen. Limits, classifications, tracked parameters and admin screens are all filterable, so extending one of these does not mean forking it.

// Track a parameter your ad platform sends that nobody else uses.
add_filter( 'wpat_tracked_params', function ( array $params ): array {
	$params[] = 'partner_ref';

	return $params;
} );

// Classify a source of your own as paid, so revenue reports group it correctly.
add_filter( 'wpat_channel_rules', function ( array $rules ): array {
	$rules['Paid Social'][] = 'partner-network';

	return $rules;
} );

Common questions

Where is the full reference?

Inside the plugin. Every one ships a Documentation screen in wp-admin covering every setting, and the same text is in the docs folder of the zip. It is versioned with the code, so it can never describe a release you are not running.

Something is not working. Where do I look first?

The Status screen, then the debug panel on the front end. Between them they name what was captured, which rule matched, what was replaced and why. Guessing is not meant to be part of this.

Does any of this need JavaScript?

Attribution Tracker and Dynamic Content use a small script in the visitor’s browser, which is what lets them work behind a full page cache. Responsive Focal Point uses none at all. Without JavaScript, a visitor sees your default content rather than a blank space.

Will it work with my caching plugin or CDN?

Yes, and with no exclusion rules. Nothing specific to a visitor is ever printed into the HTML, so the page a cache stores is the same page for everybody.

Reference, per plugin

Installation, every setting, the screens it adds, and its documented actions and filters.

Stuck on something?

The Status screen and the debug panel answer most of it. When they do not, the reply comes from the person who wrote the plugin.