Opens in a new tab

Novra Tracking · Docs

Novra Tracking
Docs

Install Novra Tracking, connect your first platform and make sure it respects your cookie banner. Written for people who are not developers, and based on the Novra Tracking 1.0.0 source and settings screens.

12 guides · 76 practical topics · Based on the Novra Tracking 1.0.0 source and settings screens
NOVRA TRACKING DOCUMENTATION · VERSION 1.0.0

Tracking, explained.
Documented end to end.

GUIDE 01

Start here

Install the plugin, activate your license and connect your first platform. Nothing is sent anywhere until you do.

1. Check what you need

Novra Tracking 1.0.0 needs WordPress 6.4 or later and PHP 8.0 or later. You can see both under Tools → Site Health → Info. A shop plugin is optional: WooCommerce 8.0+, FluentCart 1.6+ or SureCart 4.9+ are supported. For every platform you want to feed (Google Analytics, Meta, TikTok and so on) you need your own account there. The plugin does not create ad accounts for you.

2. Install and activate

Download the plugin ZIP from your account on novracode.com. In WordPress, open Plugins → Add New Plugin → Upload Plugin, choose the ZIP, click Install Now and then Activate. A new Novra Tracking entry appears in the admin menu with three pages: Dashboard, Settings and License.

3. Activate your license

Open Novra Tracking → License, paste your key and click Activate license. The license is only needed for updates. Tracking works without it. Guide 02 has the details.

4. Connect your first platform

Open Novra Tracking → Settings, pick a platform on the left, switch it on and paste its ID. Every platform stays off until you enter its ID. Guide 03 walks through it.

5. Set up consent

Choose a consent mode and check that your cookie banner is detected. The default is Basic: before a visitor agrees, nothing is loaded and nothing is sent. Guide 04 explains the options.

6. Check the dashboard

Novra Tracking → Dashboard shows a tracking score from 0 to 100 and a list of recommendations for everything that is not set up yet. When you have a shop, run a test purchase (guide 08) to confirm the server connections without counting a real sale.

Back to contents
GUIDE 02

License & updates

One key per website. It brings plugin updates and nothing else.

Where to enter the key

Novra Tracking → License. You find your license key and your websites in your account on novracode.com. Paste the key and click Activate license. The plugin shows the status, the plan and how many websites the plan allows.

What the license does

With an active license, updates appear on the normal WordPress Plugins and Updates screens, and View details shows the changelog. Without a license, tracking runs completely as you set it up. No update check goes to the store and no update is offered. The license never switches features on or off: every plan has the same features and only the number of websites differs (1, 5, 25 or unlimited).

Moving the license to another website

Click Deactivate license on the old website. This frees the activation. Then paste the same key under Novra Tracking → License on the new website. If the store cannot be reached when you deactivate, the key stays saved. In that case Remove saved key forgets it locally, but it does not release the activation in your account. Release it from your account if you need to.

If activation fails

The messages say what is wrong: a key that belongs to another product, an unknown key, an expired key, or "activation limit reached", which means the key is already used on as many websites as the plan allows. Deactivate it on a website you no longer use, or choose a bigger plan. Your settings are kept in every case.

Back to contents
GUIDE 03

Connecting a platform

Pick a platform, switch it on, paste its ID. Most platforms need nothing else.

How the settings are organized

Open Novra Tracking → Settings. The navigation on the left has four groups. Store holds Shop & Events. Platforms holds every platform in sub-groups (Analytics, Search & Shopping, Social, Retargeting & Native, More Channels, Email). Privacy holds Consent. System holds Advanced and Tools.

Switch the platform on and paste the ID

Open the platform, switch it on and paste the ID from your account there. It is called something different on every platform: a measurement ID for Google Analytics 4 (starts with G-), a conversion ID for Google Ads (starts with AW-) plus a conversion label, a pixel ID for Meta and TikTok, a tag ID for Microsoft Ads. Most fields also accept the whole snippet the platform gives you. Save, and the platform shows as ready on the dashboard.

Browser tracking is the first step

With an ID, the platform's own script runs in your visitors' browsers (after consent) and reports page views, product views, carts, checkouts, purchases and sign-ups. That is the part every platform has. The browser-only list in guide 05 shows which platforms stop here.

Server tracking is an extra step

For platforms that offer it, you can also let your website report paid orders directly from your server. For this you add the platform's access token (for Google Analytics 4, an API secret from Admin → Data streams) and switch on the server option, usually called "Send purchases from the server". Tokens are stored encrypted and never appear in the page, the settings export or the system report. Server tracking needs a shop.

Use only what you need

Each platform is independent. You can run only Meta, only Klaviyo or any mix. Google's tag only loads when Google Analytics 4 or Google Ads is switched on. Switch on a platform when you actually advertise there. You can add more as you grow.

Back to contents
GUIDE 05

Browser vs. server tracking, platform by platform

A browser pixel reports what the visitor's browser sees. Server tracking is your website reporting a paid order itself. Here is what each of the 20 platforms gets.

What the two terms mean

A pixel (or tag) is a small script on your pages that tells an ad platform what a visitor did. Ad blockers, closed tabs and strict browsers can stop it. Server tracking means your website also sends each paid order directly to the platform. Meta, TikTok and others call this a Conversions API. The browser and the server copy share one event ID, so the platform counts the sale once. Server tracking needs a shop and, in most cases, an access token from the platform.

Browser and server: 11 platforms

Meta, TikTok, Microsoft Ads, Pinterest, LinkedIn, Reddit, Snapchat, X, ChatGPT Ads, Spotify Ads and Nextdoor. Each runs its pixel in the browser and can additionally send paid orders from your server. Server copies are sent once per paid order, a few minutes after payment, and only with the marketing consent recorded at the checkout. Each needs its platform's access token or key and the "Send purchases from the server" switch.

Google Analytics 4: browser and server

The Google tag reports page views and every shop step. From the server, purchases the browser could not report are sent through the Measurement Protocol, 30 minutes after payment, and only when the browser did not confirm its own hit. Full and partial refunds, cancellations and subscription renewals go from the server too. You need an API secret from your GA4 data stream.

Google Ads: browser, recovery and refund feed

Purchase conversions run in the browser, with optional Enhanced Conversions, dynamic remarketing and cart data. Google Ads has no server copy of the purchase. Instead, a purchase whose thank-you page never loaded is reported once on the visitor's next page view, and refunds go into a correction feed that Google Ads fetches from a secret address on your site.

Klaviyo: browser metrics, server orders

klaviyo.js reports product views, carts and checkout steps after marketing consent. Paid orders go from your server to the Klaviyo Events API with a private key, and full refunds and cancellations follow. Novra Tracking never adds anyone to a list or subscribes them. It works with WooCommerce and FluentCart.

Taboola and Outbrain: pixel plus ad-click postback

Both run their pixel in the browser. Optionally, purchases of visitors who came from one of their ads are also sent from your server with the ad's click ID. No token is needed and no personal data is sent. Taboola gets every such purchase. Outbrain gets only the purchases the browser missed.

Browser only: 4 platforms

Microsoft Clarity (heatmaps and session recordings), Criteo, AdRoll and GroundTruth run in the browser only. Nothing is sent to them from your server. Clarity loads only after statistics consent and hides customer details in recordings by default.

All 20 at a glance

Google Analytics 4, Google Ads, Meta, TikTok, Microsoft Ads, Microsoft Clarity, Pinterest, LinkedIn, Reddit, Snapchat, X, ChatGPT Ads, Spotify Ads, Nextdoor, Klaviyo, Taboola, Outbrain, Criteo, AdRoll and GroundTruth. Every platform has its own section in Settings and works on its own.

Back to contents
GUIDE 06

Shops & compatibility

It recognizes WooCommerce, FluentCart and SureCart on its own. Without a shop, it still tracks the basics.

WooCommerce

Classic cart and checkout as well as the block cart and block checkout. Product views, lists, cart, checkout steps, purchases, refunds and cancellations. High-Performance Order Storage (HPOS) is supported, and so are custom thank-you pages of funnel plugins such as CartFlows or FunnelKit as long as their address carries the order key. Subscription renewals from WooCommerce Subscriptions are reported as renewals, never as new purchases.

FluentCart

Product pages, product lists, cart, checkout (including the checkout modal and instant checkout links) and the receipt page. Unpaid orders, for example an open bank transfer, are reported once they are paid. Renewals are supported.

SureCart

Product pages, product lists, cart changes, checkout steps and the purchase. Payments, refunds and cancellations reach the server platforms through a webhook that the plugin registers in your SureCart account with one click. Open orders are also looked up every 15 minutes. Test-mode orders are left out unless you switch on "Send test orders as purchases".

Landing pages

Pages that sell with buy buttons, pricing tables or instant checkout links (block editor, shortcodes, Bricks) report the product view like a product page. This applies to WooCommerce and FluentCart.

No shop

Page views, searches, sign-ups and logins are tracked. Optionally (off by default) you can add clicks on phone and email links and how far visitors scroll. The server-side features are hidden without a shop.

Other shop plugins

Other shop systems, such as Easy Digital Downloads, are not supported. On such a site Novra Tracking behaves like a site without a shop.

Google Tag Manager

Every event is also pushed to window.dataLayer in the Google Analytics 4 e-commerce format, so you can build tags in Google Tag Manager on top of it. You do not need Tag Manager to use Novra Tracking. This option is on by default and can be switched off.

Back to contents
GUIDE 07

Caching plugins & speed

Tracking and page caching are built to work side by side.

Cart, checkout and thank-you pages stay out of the page cache

These pages are marked as not cacheable, so every visitor gets a fresh page and a purchase is reported correctly.

Other plugins' JavaScript delay leaves the tracking scripts alone

The tracking scripts are excluded from delayed, deferred, combined and minified JavaScript in Novra Cache, WP Rocket, LiteSpeed Cache, FlyingPress, SiteGround Optimizer, Perfmatters, Autoptimize and WP-Optimize, each through its own filter. The consent defaults therefore run first, and a purchase never waits for a click.

Saving settings clears page caches

When you save changed settings, the page caches of Novra Cache, WP Rocket, LiteSpeed Cache, SiteGround Optimizer, W3 Total Cache, WP Super Cache and FlyingPress are emptied, so visitors get the new tracking right away. With another page cache, the settings page reminds you to empty it. If you use a CDN such as Cloudflare, purge it too.

Load tracking on first interaction

This optional setting (Settings → Advanced → Performance, off by default) starts the tracking scripts after the first scroll, tap, click or key press. Speed tests never interact, so they see no tracking script. The catch: a visitor who leaves without touching the page is not counted. You can add a time limit of 5, 10 or 20 seconds so those visits count too. Cart, checkout and thank-you pages always start right away.

Does tracking slow the site down?

Each platform you switch on loads its own script, which adds some weight, as it does with any tracking. Platforms that are off load nothing, and your own admin visits, bots and speed-test tools load no tags at all. No page view causes a request from your server. If you care about speed scores, switch on only the platforms you use and consider the first-interaction setting.

Back to contents
GUIDE 08

Test purchase & system report

Check that everything is connected without counting a real sale, and ask for help without sharing a secret.

Test as a visitor, not as an admin

Administrators and shop managers are excluded from tracking by default, so you will see nothing while you are logged in. Test in a private browser window, or change the excluded roles under Settings → Advanced → Who is tracked.

Watch the events in the browser

Add ?nvtr_debug=1 to any address of your site and every event is logged in the browser console of that tab. Add ?nvtr_debug=0 to end it. This works without debug mode.

Debug mode

Under Settings → Advanced → Testing and logs, Debug mode logs every event in the browser console and marks Google Analytics hits for DebugView. Server-side Google hits then go to Google's validation endpoint, which records nothing. Turn debug mode off when you are done testing. The dashboard reminds you while it is on.

Run a test purchase

Under Settings → Tools, the test purchase runs only while debug mode is on, for administrators and shop managers. It sends a purchase of 1.00 marked as a test (transaction ID starting with NVTR-TEST-) to Google's validation endpoint. That endpoint checks your measurement ID, API secret and event but records nothing. While a Meta or TikTok test event code is set, the same test goes to that platform and shows up only under Test events in its Events Manager. For Microsoft Ads it sends a connection test, because Microsoft has no test mode. Nothing is sent to Google Ads, and no order or statistic changes.

The system report

Under Settings → Tools, the system report collects versions, active plugins, settings, platform status, background jobs and the last errors in one block, ready to paste into a support request. Access tokens, API secrets and keys are never included. Secret fields are listed as set, never shown.

Export and import settings

Tools also exports your settings as a file, for example to move from staging to live. The export leaves out all secrets. An import is checked first, shows which settings it would change and applies them only after you confirm. It never sets tokens, so you enter those again on the new site.

Back to contents
GUIDE 09

Keeping your numbers clean

Protections that run automatically, so your reports show real visitors and real sales.

Your own visits are left out

Administrators and shop managers load no tags at all. You can change the excluded roles. Visitors can opt out themselves with the [novra_tracking_optout] shortcode: while the opt-out cookie is set, nothing is tracked in that browser.

Bots and speed tests are left out

Cache warmers, speed tests (Lighthouse, PageSpeed Insights, GTmetrix, WebPageTest, Pingdom), Google's URL inspection and automated browsers load no tags and send no events.

Every sale counts once

The purchase is marked on the order when the thank-you page reports it, and the browser remembers the order ID. Reloading the page, going back to it or opening it on another device does not report it again. When the browser and the server both report a purchase, they share one event ID, so the platform keeps one.

Refunds fix the numbers

Full and partial refunds and cancellations go to Google Analytics 4 as refund events. Google Ads gets a correction feed. Klaviyo gets full refunds and cancellations. Meta has no refund event, so a cancellation before the server copy goes out stops it.

Double Google tags are found

The dashboard checks your home page for Google tags that do not come from Novra Tracking (another gtag.js, a Google Tag Manager container, your own ID loaded twice) and names plugins that add their own. An optional setting disables Google tags added by other plugins.

Accuracy by payment method

The dashboard shows, per payment method, how many paid orders of the last 30 days reached the thank-you page, were sent from the server, were recovered later or were not sent. A method below 90 % is flagged. Payment methods that send buyers to another site, such as PayPal-style redirects, are marked with a hint, because the buyer may never come back to your thank-you page. With the optional GA4 Data API (a Google Cloud service account with read access) the dashboard also shows which orders really arrived in Google Analytics.

Back to contents
GUIDE 10

Limits you should know

Tracking is never 100 % complete. These are the places where it is not, and why.

Nothing is counted without consent

In Basic mode, nothing is sent before the visitor agrees, and server copies follow the consent recorded at the checkout. So it does not count every visit, and it should not. Your shop will always show more orders than a consent-based ad report.

Server copies have time windows

For Meta, TikTok, Microsoft Ads, LinkedIn, Reddit, X and ChatGPT Ads, the server copy is sent only for orders that are paid within 47 hours of being placed. These platforms cannot pair the browser and server copies after that. A bank transfer that arrives on day three is counted by the browser tag only, if at all.

Pinterest is stricter

The Pinterest server copy goes out only for purchases less than 55 minutes old. Pinterest pairs the two copies only within about an hour and would count a later copy twice. Orders paid later are counted by the Pinterest tag alone.

Snapchat allows more

Snapchat pairs copies by event ID and by order number, so its server copy can also be sent for orders paid later, up to Snapchat's own limit of 7 days after the purchase.

X Conversion API is new

The X token path is new at X and has so far been tested against a simulated server only, not against X itself. If X refuses it, the X pixel keeps working in full. Treat the X server copy as experimental.

Four platforms have no server copy

Microsoft Clarity, Criteo, AdRoll and GroundTruth are browser only.

Some platforms need a switch on their side

Microsoft turns the Conversions API on per account. LinkedIn deduplicates only if you enter both purchase conversions, one for the Insight Tag and one for the Conversions API. SureCart needs its webhook registered (one click).

The first-interaction setting skips some visits

If you use "Load tracking on first interaction", visitors who leave without scrolling, tapping or clicking are not counted, unless you add a time limit.

Your shop and your ad account will still differ

Ad platforms only count sales they connect to their own ads, and each uses its own attribution window. Consent choices, ad blockers and payment redirects remove more. Novra Tracking closes the technical gaps, but the two numbers measure different things. See the FAQ for more.

Back to contents
GUIDE 11

What it does not do

So there are no surprises after you buy.

It is not a cookie banner

It reads your banner's decision. You still need a banner, and you need to link it to your privacy policy. Whether your setup meets the privacy law of your country is a question for your own legal advisor.

It does not create ad accounts or campaigns

You create the accounts at Google, Meta and the others and the campaigns in them. Novra Tracking reports what happens on your site. It does not promise a better return on ad spend.

It does not count every visit

See the limits above: consent, time windows and platform rules decide what arrives.

It does not add anyone to a Klaviyo list

Klaviyo receives events about orders and browsing. Nobody is subscribed to anything.

It does not support every shop

Server-side tracking works with WooCommerce, FluentCart and SureCart. Klaviyo works with WooCommerce and FluentCart only. Other shop plugins are not supported.

It does not replace Google Analytics reports

It feeds the platforms. You still read your results in their own reports.

Back to contents
GUIDE 12

Troubleshooting

Find which layer is missing before you change more settings.

I see no hits while I am logged in

That is expected. Administrators and shop managers are excluded by default. Test in a private window, or change the excluded roles. In the browser console, ?nvtr_debug=1 shows which events fire.

Nothing is sent although my cookie banner is active

In Basic mode, tags load only after the visitor allows "statistics" (Google Analytics) or "marketing" (Google Ads, Meta, TikTok, Microsoft Ads and the other ad platforms). Meta, TikTok and Microsoft Ads wait for "marketing" in Advanced mode too. Check that your banner reports these categories and that the Consent section shows your banner as detected.

A platform shows no data after I saved the ID

Check the ID for typos and that the platform is switched on. Empty your page cache and CDN, because an old cached page still carries the old setup. Platforms need a little time to show new data. Use the platform's own test tool, such as Meta's Test events with a test event code.

Server-side purchases are not arriving

Check that the token is entered and the server option is on. Then check the paid-within window in guide 10. Under Settings → Advanced, the server log lists failed hits. Optionally it logs the HTTP requests too, which switches itself off after 24 hours. The dashboard warns when background jobs stop running. They run through Action Scheduler where available, otherwise through WP-Cron.

My thank-you page is custom

Custom thank-you pages of funnel plugins work as long as their address carries the order key. The dashboard checks where your order confirmation leads.

Google tags appear twice

The dashboard conflict check names the source. Remove the other tag, or switch on "Disable Google tags added by other plugins".

My numbers do not match my ad account

See "Limits you should know" and the FAQ. The accuracy table on the dashboard shows where sales are lost per payment method.

Still stuck?

Copy the system report from Settings → Tools and send it with your question through the contact page. It contains no tokens, so it is safe to share. Never send a full license key.

Back to contents

MORE ABOUT NOVRA TRACKING

Everything else
in one place.

The product page, the changelog, the roadmap and the FAQ — what Novra Tracking does, what changed, what comes next and the questions we hear most often.

STILL STUCK?

Something not behaving
as expected?

Tell us which version you are running, the affected page and the steps that reproduce it. Add the system report from Settings → Tools, which contains no tokens. We will take it from there.

Wondering what comes next for Novra Tracking?

See the roadmap