Last updated
Most Revenue First Analytics problems come down to a few causes: tracking switched off or excluded for your own admin account, a caching or security plugin blocking the tracker or its REST endpoint, a referrer the browser did not pass along, or an order that never reached the status that counts as a conversion. This guide lists each symptom with its causes and fixes.
No visitors at all
The tracker script (tracking/tracker.js, handle rfa-tracker) posts pageviews to the REST endpoint /wp-json/rfa/v1/collect. If either part is missing, nothing is recorded.
| Cause | Fix |
|---|---|
| Tracking is disabled | In Settings, under General, turn on Enable tracking. |
| You are testing while logged in as an administrator | Exclude admin users is on by default and the script is not loaded for you. Test in a private window or log out. |
| Your test tool is treated as a bot | Exclude bots drops User-Agents containing words such as bot, crawl, headless, lighthouse, curl or wget. Use a normal browser. |
| A caching or optimization plugin removes or delays the script | Exclude tracker.js from JavaScript delay, combine and minify options, then clear the cache. |
| An ad blocker blocks the request | Expected for those visitors. Check with a browser without extensions. |
| A security plugin or firewall blocks the REST API | Allow unauthenticated POST requests to /wp-json/rfa/v1/collect. The endpoint needs no login. |
| The page is served from a different domain | The plugin only accepts hits whose host matches your WordPress site address. A staging or proxy domain is rejected. |
Everything shows as Direct
A channel is the traffic group a session is assigned to when it starts, classified from the UTM parameters, ad click IDs (gclid, msclkid) and referrer of the session’s first pageview. Direct means none of these were present. See Channels, Referrers and Campaigns Report.
- No referrer was sent: links opened from email clients, messaging apps, PDFs and many in-app browsers carry no referrer, and so do links from sites with a strict referrer policy or from an HTTPS site to an HTTP site. Serve your site over HTTPS and add UTM parameters to links in emails, ads and social posts.
- Missing UTMs: email and newsletter traffic is only recognized through
utm_medium=emailorutm_medium=newsletter, paid social throughutm_medium=paid-social. Without them, these visits are Referral or Direct. - The channel is fixed when the session starts: a visitor already in an active session (activity within the last 30 minutes) who opens a tagged link keeps the original channel. Moving between your own pages never counts as a new source.
Orders are missing or Unattributed
An order appears only when it reaches the conversion status, and it is attributed only when a tracked visit exists for the buyer (see How Sales Are Attributed to Traffic Sources). Check these in order:
- WooCommerce revenue tracking (or Easy Digital Downloads revenue tracking) is on in Settings, under Integrations.
- Record conversion when order status is matches your workflow. With the default Completed, an order that sits in Processing is not counted until you complete it. Choose Processing or Payment Complete (hook) to count it earlier.
- Privacy mode and the same-day rule: in Privacy mode, and in Consent mode before consent, a visit and a purchase on different days cannot be linked and the order is Unattributed. If the dashboard shows “No consent banner detected”, follow Connecting Your Cookie Banner, or switch to Full tracking if consent is handled elsewhere.
- The order was created in the admin, by phone or by an import. No visitor is captured for orders that do not go through the checkout page.
- Checkout runs on another domain, for example a separate checkout subdomain or a hosted checkout. The tracker on your main domain cannot see that visit.
- Webhook timing: with PayPal, Stripe and similar gateways the order converts when the gateway’s webhook changes the status. If the webhook never arrives, the order stays pending and is never counted. Attribution itself is safe because the visitor was saved at checkout.
- Subscription renewals are skipped on purpose (see Refunds, Cancellations and Subscription Renewals), and orders placed before the plugin was installed are not imported.
Revenue does not match WooCommerce reports
Differences are usually explained by one of these rules:
- Refunds are deducted, and cancelled, failed, trashed and fully refunded orders are removed entirely.
- Only counted statuses are included: the status you chose plus Completed. On-hold and pending orders are not revenue.
- Revenue sits on the order’s creation date, not on the day it was completed or refunded. A report for last week can change this week.
- Subscription renewals are excluded.
- Amounts are not converted between currencies. Each order’s total is stored in the order’s currency and added up as a number next to your store’s currency symbol, so multi-currency stores see mixed totals.
- Date ranges use your site’s timezone.
The Online tile shows 0
The Online tile counts distinct visitors with a pageview in the last five minutes. Administrators are excluded by default, so if you are alone on the site it shows 0 while you browse. Open the site in a private window and reload the dashboard. Bots and uptime monitors are excluded as well.
Use Debug mode to see what is sent
To see the actual payloads, turn on Debug mode in Settings, under Developer Tools. It loads only for logged-in administrators.
- Enable Debug mode and click Save changes.
- Open your site’s frontend while logged in. A floating Debug Panel appears in the bottom-right corner.
- Use the tabs All, Pageviews, Events, dataLayer and Session Info. Pageviews show the path, referrer and UTM parameters, events show the event name and data, and server-side WooCommerce and EDD events are marked SVR.
- Session Info shows whether you are identified or anonymous, which
_rfa_cookies exist, and the current page’s referrer and query string. “Anonymous” means the visit is counted with the daily hash and can only be attributed within the same day. - Turn Debug mode off when you are done.
With Exclude admin users on, the panel shows every payload the tracker would send, but nothing is posted to the server for your account. Turn the exclusion off temporarily to follow a test order end to end. The settings involved are described in Revenue First Analytics Settings Explained.
When to contact support
If the steps above do not explain what you see, contact us with the plugin version (shown at the bottom of Settings), your tracking mode, the conversion status setting, an example order number, and what the Debug Panel shows for a test pageview.