Ninja Forms User Analytics - WordPress Plugin
Get better data on where your form traffic is coming from with every submission. Add 12+ analytics fields including UTM values, URL referrer, geo data, and more!

Plugin Features
User Analytics is the data collecting solution for your WordPress forms if you’ve hit either of those barriers, or others, yourself. Created by Ninja Forms for use with Ninja Forms, User Analytics is a powerful data collecting tool without the headache of complex setup or an overwhelming user interface to sort through.
Specifications:
| Release date: | 11-10-2020 | |
| Last updated: | 25-02-2026 | |
| Type: | Paid | |
| License: | GPL | |
| Subject: | Tools for Ninja Forms | |
| Compatibility: | W5.x W6.x | |
| Includes: | Plugin | |
| Language packs: |
|
|
| Developer: | Ninja Forms | |
| Rating: | ||
Share with your friends!
How to Set Up Ninja Forms User Analytics to Track Form Leads in WordPress
Ninja Forms User Analytics is not there just to add one more field to your form. Its job is more practical: it connects every Ninja Forms submission to the traffic source, campaign link, browser, and operating system, so the submission stops being an anonymous row in a table. In this guide, we will walk through how to prepare your site, which fields to add to the form, how to validate UTM tags, what to review in submissions, and where the "link - form - record" chain most often breaks.
This article is for a site owner, marketer, WordPress administrator, or developer who already uses Ninja Forms and wants more context from submissions without relying on a separate external report. We will not repeat the product's marketing description. Instead, we will go through a real workflow: installing the add-on, adding hidden analytics fields, preparing links with UTM parameters, submitting a test entry, checking the data in Ninja Forms > Submissions, exporting it, and troubleshooting common issues.
It is important to understand the limits of what this add-on can do: it captures the data available when the form is loaded and submitted, but it does not replace a full web analytics system. It is especially useful when you want to quickly see the source of a specific lead next to the person's name, phone number, email address, and message. If you need end-to-end analytics, multi-channel attribution, or reports across all visits and funnels, Ninja Forms User Analytics should be treated as a data layer inside the form, not as your only analytics tool.
What Problem Submission Analytics Solves Inside Ninja Forms
A standard form answers the question, "Who submitted the form, and what did they write?" That is often enough for a sales team, but it is not enough for marketing or support. If a submission came in after an email campaign, ad, social media post, or partner review, you want to see that source directly in the submission record. Without it, you end up matching reports across different services, searching email by timestamp, comparing campaigns against spreadsheets, and still leaving room for error.
Ninja Forms User Analytics adds hidden fields to the form that the visitor never sees on the page. Those fields store UTM parameters, the referring page URL, browser, and operating system. The data is saved in the standard Ninja Forms submissions storage, so the administrator opens the familiar submissions screen and sees the analytics next to the normal form fields. The main value of the product is that it connects marketing context to a specific submission, not that it builds a separate reporting dashboard.
In practice, this helps in several situations. A marketer can see which email campaign generated actual inquiries, not just clicks. A site owner can identify which partner article is bringing in leads. Support can see the user's browser and operating system when someone reports a problem with the form. A developer can reproduce issues faster: it is one thing to hear "the form would not submit," and another to know that several problematic submissions are tied to the same browser or mobile OS.
The plugin works especially well when paired with disciplined UTM naming. If links are tagged inconsistently, your submissions will contain multiple versions of the same source: Facebook, facebook, fb, social. The add-on will faithfully store whatever comes through in the URL, but it will not fix sloppy campaign naming. That is why setup starts not with clicking a field, but with a rule: how your team names sources, channels, campaigns, and ad variants.
Who This Add-On Is For, and When It Is Unnecessary
Ninja Forms User Analytics is worth considering if you already collect leads through Ninja Forms and want a better understanding of traffic source quality. That can include service landing pages, consultation forms, quote request forms, registration forms, event contact forms, partner pages, and smaller sites without a dedicated analytics team. On projects like these, the key question is simple: where did the person who submitted the form come from, and is that source worth repeating?
The add-on is convenient for teams that do not want managers logging into Google Analytics or building complex reports. A Ninja Forms submission becomes a compact lead record: contact details, message, source, campaign, browser, and operating system. If a manager exports submissions to CSV, the analytics fields go with the rest of the columns, and the data can then be reviewed in a spreadsheet or passed into a CRM through an existing workflow.
The product may be unnecessary if forms are used only for internal requests with no marketing traffic sources, such as a simple employee request to the site administrator. It also does not solve the problem if the site already sends every form into a full CRM with its own source tracking, and the team does not work with submissions inside WordPress. In that case, the priority is to avoid duplicating data across multiple places with no clear owner.
Projects with strict privacy requirements also deserve special attention. Ninja Forms stores submissions inside WordPress, and this add-on adds technical and marketing context to them. That does not automatically create a compliance issue, but the administrator should understand what data is being collected, who can access submissions, how long they are stored, and what the privacy policy says. Form analytics is still user data when it is tied to a specific submission.
| Scenario | What the Add-On Provides | What to Watch For |
|---|---|---|
| Ad landing page | Saves the UTM source, channel, and campaign in the form submission. | You need a consistent link-tagging convention. |
| Partner articles and directories | Helps you see the page URL the visitor came from. | The referrer may be blank because of browser policy or the source site's settings. |
| User support | Adds the browser and operating system to the submission. | That data helps start troubleshooting, but it does not replace an error log. |
| Submission exports for reporting | UTM and technical fields can be exported together with Ninja Forms submissions. | The column names should be clear to whoever reads the spreadsheet. |
What to Check Before Installing on a Live Site
Before installing the add-on, make sure the core Ninja Forms setup is already behaving predictably. If the form already has issues with submission handling, email notifications, record storage, or theme conflicts, analytics fields will only make troubleshooting harder. Start with a simple check: the form opens on the page, required fields validate correctly, the success message appears, and the submission is saved in Ninja Forms > Submissions.
Next, check the Record Submission action. The Ninja Forms documentation specifically warns against disabling it if you want to collect submissions. That is critical for User Analytics: if submission recording is off, there is nowhere to view the UTM fields in the table. The email notification may still arrive, but the full lead record with analytics context will not be saved.
The next item is permissions. By default, submissions are available to administrators. If a marketer or manager needs access to UTM data, do not give them full administrative access just for the sake of a submissions table. It is better to decide upfront whether you are using additional Ninja Forms access controls or a separate export process. Submission data often contains personal information, so viewing permissions matter more than convenience.
Check whether the site uses caching, JavaScript optimization, deferred script loading, or aggressive security settings. Hidden form fields usually should not break because of caching, but you still need a real test: open the form page in a private window, add UTM parameters to the URL, submit a test entry, and make sure the data appears in the submission. If the values disappear after optimization is enabled, you need to troubleshoot the form loading chain and the client-side scripts.
Minimum Setup Checklist Before You Start
- A working WordPress site with Ninja Forms installed and active.
- A form that saves submissions and is not used only as an email forwarder.
- Administrator access to install the add-on and edit the form.
- A clear understanding of which UTM parameters the team will use.
- A test form page where you can safely submit sample entries.
- A retention and deletion plan if the form collects personal data.
Do not start testing with a real ad campaign. Run one controlled test first using a simple link where the UTM values are clearly visible in the address bar. That makes it much easier to tell the difference between a link problem and a form problem.
Installing the Add-On and Running the First Check
The overall installation process is the same as for other WordPress add-ons: upload the plugin file, install it, activate it, and then open the form you want in the Ninja Forms builder. If the core Ninja Forms plugin is not installed yet, you can add it from the WordPress plugin directory or upload it as an archive. After activation, the admin panel should show a Ninja Forms menu item, and the forms list should contain your existing forms or let you create new ones.
For a premium add-on, access to updates and support matters, but this guide is not about purchasing, payment, or license workarounds. We are focused on configuring a product you already have. After activation, open the form where you want to collect lead source data and move on to adding fields. In the Ninja Forms builder, new fields are added through the add field button or the slide-out fields panel.
The logic behind User Analytics is not that the add-on magically changes every form on its own. According to the official description, the administrator chooses which analytics fields to add: UTM fields, referrer, browser, and operating system. That is the right approach. For a contact form on a landing page, UTM source, medium, campaign, and referrer may be enough. For a support request form, browser and operating system are more useful. For a form with a lot of fields already, there is no reason to clutter the submission with data nobody will use.
Initial Setup Order
- Open
Ninja Forms > Dashboardand select the form where you want to collect analytics. - Go to the form fields tab and open the interface for adding new fields.
- Add the hidden User Analytics fields:
utm_source,utm_medium,utm_campaign,utm_content, referrer, browser, and operating system, but only the ones your scenario actually needs. - Rename the field labels so they are clear to the team in submissions and exports.
- Make sure the submission recording action is enabled.
- Click
Publishto save the form changes. - Open the form page with test UTM parameters and submit a control entry.
The Publish button in the Ninja Forms builder saves the form and makes the changes live. This is a common small trap: the administrator adds a field, goes to the page, runs a test, and sees no data because the form was never saved. After each analytics field change, run a new test, and do not use older submissions as proof that something is broken, because those entries did not include the new hidden fields yet.
UTM Fields: How to Keep Your Submissions from Turning Into a Messy Table
UTM parameters are short keys in the page URL that describe the traffic source. In a typical marketing workflow, the most common ones are utm_source, utm_medium, utm_campaign, and utm_content. Ninja Forms User Analytics saves these values into hidden form fields if the visitor arrived through a link that includes them. If the parameters are missing, the field will stay empty, and that is normal, not an error.
The strength of this approach is its simplicity. Your team can build a link for an email campaign, ad, or partner article, send visitors to the form page, and then see the campaign values inside the submission. But that simplicity quickly turns into chaos if different people name the same sources differently. Google highlights the importance of consistent naming in its own recommendations, because case differences and inconsistent variations fragment reports. The same is true for Ninja Forms submissions: the add-on does not normalize your naming.
Which Fields to Add First
For most landing pages, start with four UTM fields. utm_source identifies the source, such as a search engine, email newsletter, or social network. utm_medium describes the channel: paid advertising, email, organic content, or partner traffic. utm_campaign stores the campaign name. utm_content helps distinguish between multiple links within the same campaign, such as the top email button, the footer link, a banner, or a text link.
Do not add every possible parameter just because it exists. If the team does not use utm_term or extra ad-platform parameters, empty columns will only distract people. It is better to start with a clear set that is actually reviewed, then expand the form later if needed. A good analytics form collects data that someone will actually use to make decisions.
https://example.com/contact/?utm_source=newsletter&utm_medium=email&utm_campaign=spring_offer&utm_content=top_button
This kind of link is perfect for a controlled test. Open it in a private window, fill out the form with test data, and then find the submission in the admin panel. If all four values appear next to the submission, the basic chain is working. If some of the values are blank, first check the URL itself: is there a typo in the key, was & altered, or did part of the query string get lost in a redirect?
How to Name Fields for People, Not Just the System
Technical names like utm_source make sense to a marketer, but they are not always obvious to the manager exporting CSV files. Inside the form, you can use labels that explain the meaning clearly: "UTM source," "UTM medium," "UTM campaign," and "UTM content." What matters is not the exact phrasing, but that the label reflects the correct parameter. If you rename fields carelessly, reports will become confusing.
If you work with a CRM, agree on names before you export anything. For example, the CRM may expect a column called utm_source, while a manager has renamed the field label to "Source." Inside WordPress, that may look friendlier, but during transfer you may end up needing manual field mapping. That is why sites with regular exports are usually better off keeping the technical UTM names in the keys or documenting the mapping process separately.
What to Do with Empty UTM Values
Blank values do not always mean something is broken. The user may have come directly, from a bookmark, from an untagged message, from regular search, or through a traffic chain where the original parameters were lost. Your job is to distinguish normal blanks from configuration errors. To do that, keep one reference test link and repeat the check after major changes: a theme switch, a new cache layer, a change to the form page, or redirect edits.
If the UTM values are visible in the address bar when the page loads but do not reach the submission, check the field setup, whether the form was saved, and whether script optimization is interfering. If the UTM values disappear before the form even loads, the problem may be caused by a redirect, link shortener, ad platform, or URL canonicalization. The add-on cannot save a parameter that is no longer in the URL and is not passed into the form another way.
How to Agree on a Naming Scheme Before the Campaign Starts
The most common organizational mistake is starting UTM collection after the campaign is already live. Technically the form will still work, but the table will fill up with values that are hard to unify. For example, one person sets utm_medium=email, another uses utm_medium=newsletter, and a third uses utm_medium=mail. All three may sound reasonable to a human, but in a report they are different values. That means extra cleanup work and less reliable conclusions.
Before launch, create a small rules table. Five columns are enough: source, channel, campaign, link variant, and a full URL example. Source answers "where did the person come from," channel answers "through what type of promotion," campaign answers "which initiative," and link variant answers "which specific element drove the click." On a small site, that table can live in a simple shared document. The key is that anyone publishing a link pulls values from that table instead of inventing their own.
For utm_source, use short, stable values. Do not mix platform names and channel names: facebook or linkedin work well for source, while paid_social or organic_social belong in medium. For utm_campaign, avoid names that nobody will understand a month later. For utm_content, use meaningful distinctions like top_button, footer_link, or banner_a. Even if your internal campaign notes are written in another language, the actual UTM values should stay short, ASCII-only, and space-free. That reduces the chance of broken links, unreadable characters, and duplicate versions of the same campaign.
Test the scheme on one form before you send an email or launch an ad. Build the link, open it in a private window, submit the form, and review the values in the submission. If everything looks right, that link is ready for the campaign. If not, fix the rule, not just that one URL. Your UTM convention needs to be repeatable, otherwise User Analytics will store a pile of random labels instead of usable analytics data.
When a Regular Hidden Field Can Still Be Useful
Ninja Forms can work with query strings and standard hidden fields. User Analytics covers the usual analytics fields, but sometimes you still need an extra custom parameter. For example, a partner may pass partner_id, a directory may add listing, or an internal campaign may use office for a branch location. If the parameter is not part of the standard UTM set, you can capture it with a regular hidden field through the query string mechanism, if that fits your form.
Just do not mix these approaches without documenting them. User Analytics UTM fields represent marketing tagging, while your custom hidden fields represent extra business attributes. In a report, they may appear side by side, but they do not mean the same thing. If you add your own parameter, document who fills it, which values are allowed, and what to do if it is blank. Otherwise, a few weeks later nobody will remember where that column came from or whether it is safe to rely on it.
Referrer, Browser, and Operating System: How to Read the Technical Context
Beyond UTM values, the add-on can also save the referrer URL, browser, and operating system. That data may seem secondary until a practical question comes up. Why did a submission arrive with no UTM but clearly came from a specific partner site? Why does a user say the form froze, while several similar submissions came from the same browser? Why did mobile users start submitting fewer forms after a design change? The answers are not always obvious from the field itself, but the field gives you a starting point.
The referrer shows the page URL from which the browser navigated to your page, if the browser policy and source site allowed that information to be sent. Under modern privacy and security rules, the referrer may be reduced to the domain only or removed entirely. That is why you should not promise your team that the field will always show the visitor's full path. Treat it as a supporting signal, not as absolute truth.
Browser and operating system help with troubleshooting, especially when the form includes unusual fields, input masks, file uploads, a multi-step flow, or spam checks. If several problematic submissions come from users in a similar environment, the developer gets a direction for testing. But these fields do not reveal the theme version, a JavaScript conflict, a server error, or the user's actions before submitting the form. For deeper analysis, you still need logs, the browser console, and a repeatable test scenario.
How to Use Technical Fields Without Overreacting
Do not draw conclusions from one submission. One blank referrer, one unfamiliar browser, or one lead from a mobile OS does not prove anything by itself. Look for patterns: several submissions from the same channel without UTM values, several complaints from a similar environment, or a sharp change after an update or optimization change. That is when User Analytics data becomes evidence for investigation instead of a reason to guess.
For support teams, it helps to have a short internal workflow: if a user reports an issue with the form, the manager opens the latest submission, checks the browser and operating system, notes the form page URL, clarifies the user's steps, and passes that information to the developer. That takes much less time than a long back-and-forth asking, "Which device were you using?"
How to Connect Browser and OS to Real Form Testing
These technical fields are especially useful when complaints are vague. A user says "the button will not click" or "the form gets stuck on submit." Without context, the developer checks the form in their own browser, sees that it works, and closes the issue as not reproducible. But if several submissions or support requests show the same browser environment, the investigation becomes concrete: open the page in a similar setup, repeat the input, check the console, disable browser extensions, and compare behavior on another device.
You should not treat these fields as a technical diagnosis. A value like "Safari" or "Android" does not tell you where the bug is by itself. It only narrows the search area. A proper testing scenario still needs to include the form page, the field type, the user action, whether the success message appears, whether the submission is saved in Submissions, and whether an email is sent if that is part of the workflow. Browser and OS are one layer of evidence, not the whole picture.
If the form is embedded inside a page built with the block editor or a page builder, check not only Ninja Forms itself but also the container around the form. Sometimes what looks like a submission issue is actually caused by a modal window, a tab, lazy-loaded section content, a theme script conflict, or a button handler. User Analytics will not show that conflict directly, but it can help you notice that the issue happens in a specific environment or after a specific traffic source.
Compatibility with Caching, Optimization, and Redirects
For forms that rely on UTM values, not only the submission matters, but also the moment the page loads. If the site uses redirects, layered caching, JavaScript optimization, or query string cleanup, parameters may change before the form ever receives them. Some optimization tools strip parameters from URLs to create cleaner addresses or simpler cache keys. That can be useful for a regular page, but for a campaign form it destroys attribution.
Check three points. First, the ad or test URL before the click. Second, the address in the browser after all redirects. Third, the record in the submission. If parameters exist at the first point but disappear at the second, the form is not the problem. If they exist at the second point but disappear at the third, inspect the form, the fields, the save state, and the scripts. If they exist in the submission but disappear in the report, the problem is in the export, the columns, or the way the spreadsheet is processed afterward.
For critical lead forms, it is worth creating a short post-update checklist. Open the reference UTM link, submit the form, review the record, and export one row. That takes only a few minutes and protects you from the situation where a campaign has already spent budget, but the lead sources were lost because of a caching or redirect change.
Where to Review Submissions and How to Turn Fields Into Decisions
After setup, the main working area is Ninja Forms > Submissions. That is where you choose the form, filter submissions, open a record, edit values if necessary, and export data. User Analytics does not create a separate external dashboard. That is both a strength and a limitation: everything is next to the lead record, but summary charts and complex attribution will still need to happen in another tool.
For day-to-day work, it helps to configure the visible columns so the analytics fields do not disappear behind dozens of regular form fields. If the form collects name, phone, email, service type, comment, and several UTM parameters, the table gets wide fast. Do not try to display everything at once. For daily lead handling, keep the contact fields and the key UTM values. For reporting, use exports where the remaining columns can be reviewed more comfortably.
Export matters most for marketers. In CSV, you can group submissions by utm_campaign, count inquiries from each source, find campaigns with lots of clicks but few submissions, and identify partner sites that drive high-quality leads. But the quality of the output depends on the quality of the input. If some links follow one naming scheme and others follow another, the spreadsheet will show fragments instead of a complete picture.
Team Workflow
- The marketer creates a UTM link based on the agreed naming scheme.
- The administrator or editor places that link in an email campaign, ad, article, or partner placement.
- The visitor opens the form page and submits the form.
- Ninja Forms User Analytics saves the values into hidden submission fields.
- The manager processes the lead without manually changing the analytics fields.
- The marketer exports submissions and analyzes campaigns using the saved columns.
In this chain, it is important to agree on who owns each step. The add-on will not fix mistakes if an ad link was published without UTM tags, the manager edits values manually inside submissions, or the marketer does not know which forms are included in the report. The plugin collects the data, but the team creates the order in that data.
How to Read CSV Exports Without Drawing False Conclusions
Submission export seems simple: download the CSV, open the spreadsheet, count submissions by campaign. But this is exactly where false conclusions often appear. First, the date range filter has to match the campaign period. If the email went out this morning but the report was exported for the entire month, that source may get buried in older submissions. Second, you need to know which forms are actually part of the campaign. If the site has several consultation forms but User Analytics was added to only one of them, the report will be incomplete.
Third, do not confuse "number of submissions" with "lead quality." User Analytics shows the source of a specific submission, but it does not tell you whether that person became a customer, paid for a service, or turned out to be spam. To evaluate source quality, you need to connect the submission to a later CRM status or at least to a manager's manual label. The add-on gives you a strong starting layer, but the business conclusion comes only after you combine it with the outcome.
If the spreadsheet is used regularly, set up a few standard checks. Remove or label test submissions so they do not end up in reports. Verify that blank UTM values are not being mixed with actual tracking errors. Group values in lowercase if someone still published different variations. Compare the number of form submissions against the number of email notifications if email is used as a secondary control. That kind of audit does not require advanced analytics, but it dramatically reduces the risk of bad decisions.
How to Pass the Data Along Without Losing the Meaning
Many sites do not stop at WordPress submissions: the lead is sent to a CRM, spreadsheet, email inbox, support system, or automation platform. In that case, check in advance which fields are passed downstream. A common situation is this: the Ninja Forms submission contains UTM values, but the manager email or CRM record does not, because the notification template or integration uses only the core fields. The manager sees the lead, but not the source, and the point of the setup is lost.
The solution depends on the workflow. If the manager needs the source directly in email, add the analytics fields to the notification template, but keep it clean and avoid unnecessary technical noise. If the source needs to reach the CRM, map the fields in the integration or automation. If the data is reviewed once a week, exporting from submissions may be enough. You do not need to push every analytics field into every channel: that creates noise and increases the risk of oversharing data.
Run one test submission through the entire path. It should appear in Submissions, in the email, in the CRM, or in the spreadsheet exactly the way the team will use it in real work. If the UTM values disappear at some stage, fix that handoff point, not the form itself. Verification does not end with a successful form submission, but at the point where the team actually makes decisions.
Practical Example: From Email Campaign Link to Report
Let us walk through a realistic scenario. The site has a consultation page with a Ninja Forms form. The team launches an email campaign and wants to know how many leads came specifically from the top button in the email. The goal is to store the source, medium, campaign, and link variant in the submission, then verify the result in the admin panel and in exports.
Goal
Get a submission where four values are filled in next to the user's name and email: utm_source, utm_medium, utm_campaign, and utm_content. In our test, the source is the newsletter, the medium is email, the campaign is a spring offer, and the link variant is the top button. We are not using real personal data, and we are not launching the campaign before verification.
Preparation
Make sure Ninja Forms and Ninja Forms User Analytics are active. Open the consultation form in the builder. Add hidden fields for the required UTM parameters. Confirm that the Record Submission action is enabled and that the form has been saved with Publish. If the form is already embedded on a page, open that page in a private window so the test is not affected by administrator cache.
Steps
- Build a test link to the form page:
https://example.com/consultation/?utm_source=newsletter&utm_medium=email&utm_campaign=spring_offer&utm_content=top_button. - Open the link in a private window and confirm that the parameters are visible in the address bar after the page loads.
- Fill out the form with a test name, a test email, and a short message like "UTM check."
- Submit the form and wait for the success message.
- In the admin panel, open
Ninja Forms > Submissions, select the correct form, and find the latest submission. - Open the record and check the UTM field values, referrer, browser, and operating system.
- Export one or more submissions if the report will be prepared in a spreadsheet.
Verification
The result is correct if the submission contains the same values that were present in the test link. The referrer does not need to match the email campaign exactly: when a link is opened from a mail client or a private window, the referrer may be blank or different from what you expected. For UTM validation, what matters most is that the parameters were present in the URL and ended up in the hidden fields.
Details People Often Confuse
If the UTM fields are empty, check the link before you check the plugin settings. The URL needs a ? before the first parameter and & before the next ones. If the site redirects from /consultation/ to a different URL, make sure the parameters survive the redirect. If the form is embedded via a block or shortcode on several pages, test the exact page your campaign link points to.
If the submission contains UTM values but the manager cannot see them in the table, that may not be a collection issue at all, but simply a matter of column visibility. Open the individual submission record or export a CSV. If the data exists inside the record but is not shown in the list, adjust the working table view or agree that analytics checks happen through export.
Checking Data Quality After Launch
After a successful test, do not assume the setup is finished forever. Data quality changes as the site changes: new pages appear, forms change, caching is enabled, the team launches new campaigns, or someone copies an old link and edits it by hand. That is why it helps to have a simple review routine. It does not need to be bureaucratic, just a few repeatable checks.
During an active campaign, open several recent submissions and see whether the UTM fields are filled where you expect them to be. Compare the values against your table of published links. If one campaign is supposed to use utm_source=newsletter, but submissions start showing email_news and mailing, fix the links before the dataset grows. The earlier you catch the mismatch, the less manual cleanup you will need.
Check not just completeness, but usefulness. If utm_content is always the same, the team may not actually be distinguishing between ad variants, and the field may not be helping. If referrer is often blank, that may be perfectly normal for that channel. If browser and operating system are rarely used, keep them for support, but do not force managers to review them on every lead.
Mini Audit Before Reporting
- Are there submissions from the expected campaign in the correct date range?
- Do the UTM values match the agreed naming scheme?
- Are there duplicates caused by case differences, spaces, separators, or abbreviations?
- Are submissions being saved in WordPress, not just sent by email?
- Does the manager understand which fields must not be edited manually?
- Are personal data or unnecessary details ending up inside UTM values?
The best User Analytics report is one you can explain in plain language: "this link produced this many leads, these link variants performed better, and this section of the data is incomplete because tagging was missing."
Security, Privacy, and Storage of Analytics Fields
Because User Analytics data is stored together with form submissions, treat it as part of the user's record. UTM parameters by themselves are usually not sensitive, but they are tied to a specific name, email, phone number, or message. Referrer can reveal the page a person came from. Browser and operating system help support, but they are also part of the visitor's technical profile.
The first rule is simple: do not pass personal data through UTM values. Do not put a user's email address, phone number, name, contract number, or other identifiers into the link. UTM values should describe the campaign and source, not the person. If your ad platform offers dynamic parameters, verify that they do not expose anything unnecessary and that they are appropriate to store in WordPress submissions.
The second rule is access control. Ninja Forms submissions may contain personal information, so they should not be visible to every site editor. If someone only needs a campaign report, it is better to give them an export with the necessary columns than full admin access to the panel and every user message. If you use a separate deletion workflow for user data requests, make sure the analytics fields are deleted along with the submission.
The third rule is not storing more than you really need. If the site handles highly sensitive leads, think through the retention period for both submissions and exports. Ninja Forms gives you the mechanics for working with submission records, but responsibility for retention policy and the notice shown on the site still belongs to the project owner. The add-on does not remove the need to clearly explain what data the form collects.
What You Should Not Store in UTM or Hidden Fields
UTM parameters are easy to edit, so sometimes people start using them as a catch-all container for any kind of data. That is a bad practice. Do not pass email addresses, phone numbers, names, physical addresses, internal customer IDs, exact deal amounts, or personal promo codes that directly identify a person through the URL. A URL can end up in browser history, server logs, third-party analytics systems, screenshots, and forwarded emails. If that value is also saved in a form submission, it suddenly exists in several places at once.
If you need to connect a lead to an internal campaign, use an anonymized campaign or partner ID. If you need to tie a lead to a specific customer, do that through a secure process inside the CRM or user account area, not through UTM values. For public campaign URLs, the rule is straightforward: anyone who sees the URL should not learn personal information about someone else.
How to Describe Data Collection to the User
The visible form text does not need to turn into a legal essay, but the site should explain honestly what happens to submissions. If the form collects contact details and technical context, review both the privacy policy and any consent language near the form. The exact wording depends on your jurisdiction and site policy, so there is no reason to copy someone else's text. But the logic should be clear: what data the user submits, what technical and analytics information is stored, why it is needed, and how the user can request deletion or access if that applies.
This also helps the team internally. When the data is documented, it becomes easier to explain why a manager should not export the full table into a personal file, send CSVs to contractors unnecessarily, or keep old exports forever. User Analytics adds value to each lead, but it also makes each submission more detailed. The more detailed the record, the more carefully access to it should be handled.
Common Ninja Forms User Analytics Issues and Troubleshooting
Most problems with User Analytics are not caused by the add-on "not working," but by a break somewhere in the chain: the link was built incorrectly, parameters were lost in a redirect, the form was not saved, submission recording is disabled, the submissions table is not showing all columns, or the referrer is unavailable because of browser rules. The best way to troubleshoot is step by step, from the URL to the saved submission record.
UTM Fields Are Empty After a Test Submission
Symptom: the submission is saved, the regular fields are filled in, but utm_source, utm_medium, or other UTM fields are blank. Possible causes include parameters not reaching the form page, the fields not being added to this form, the form not being saved after changes, or the keys in the URL not matching what the add-on expects.
Check the page URL at the moment the form loads. If the UTM values are already gone from the address bar, look for a redirect, link shortener, incorrect campaign URL, or canonicalization rule. If the UTM values are visible in the address, open the form in the builder and confirm that you added the actual User Analytics fields, not regular hidden fields with similar names. Then click Publish and rerun the test with a new submission.
Referrer Is Blank or Shows the Wrong Source
Symptom: the UTM fields are filled, but the referrer is blank, shortened, or does not resemble the expected site. Possible causes include the referrer policy on the source site, traffic coming from an app, email client, private browsing mode, secure environment, or a redirect chain. Modern browsers and sites may limit how much source URL information gets passed along.
Do not treat this as a form bug until you have checked behavior across several sources. For marketing attribution, UTM links are more reliable because you control them. Referrer is useful as an additional signal, especially for partner and organic traffic, but it does not have to be present on every submission.
The Data Exists in the Record but Not in the Submission List
Symptom: when you open an individual submission, the analytics fields are there, but they are not visible in the main table. Possible causes include column display settings, table width, the wrong form being selected, or an active filter. Ninja Forms includes controls for displaying and filtering submissions, so the list does not always reflect the full contents of the record.
Open the individual record, then check the export. If the CSV contains the required fields, collection is working. From there, either adjust the working view or use export for analysis. Do not add duplicate fields to the form just because they are hidden in the table. That only creates duplicates and more confusion.
Values Stopped Saving After Site Optimization
Symptom: the test worked before caching or optimization was enabled, but afterward the UTM values no longer reach the submission or the form behaves unpredictably. Possible causes include deferred script loading, file merging, page caching with an incorrect form state, or a conflict with another add-on.
First, temporarily disable the questionable optimization setting and rerun the reference test. If the data comes back, re-enable optimizations one at a time and check the form after each change. You do not need to roll back the entire cache setup, only the specific setting that breaks the form. For a page with an important lead form, it is reasonable to exclude it from aggressive optimization if that is the only way to preserve source tracking data.
The Submission Arrives by Email but Does Not Appear in Submissions
Symptom: the notification email arrives, but there is no record with analytics fields in Ninja Forms > Submissions. A likely cause is that the Record Submission action is disabled or the form is configured not to save entries. That is critical for User Analytics because the add-on stores its data inside Ninja Forms submissions.
Open the form, go to actions, and confirm that submission recording is enabled. After making the change, save the form and run a new test submission. Old emails do not prove that a database record exists: email and submission recording are separate actions.
The Export Contains Too Many Blank or Unclear Columns
Symptom: the CSV contains fields nobody analyzes, and the useful columns are hard to find. A likely cause is that every available analytics field was added to the form without a reporting plan, or field labels were never aligned with the reporting process.
Go back to the form's goal. If the team only analyzes campaign and source, keep those as the primary fields. If browser and operating system are useful only for support, do not make them central columns in a marketing report. Rename labels carefully, but do not change the meaning of the UTM parameters. If needed, keep a simple mapping table: form field - meaning - data owner.
Questions About Setup and Limitations
Do You Need Google Analytics to Use Ninja Forms User Analytics?
No. According to the official description, User Analytics data is stored in standard Ninja Forms submissions inside WordPress. Google Analytics can be used in parallel for broader site analytics, but a separate GA account is not required just to view UTM values in a form submission.
Will Visitors See the User Analytics Fields?
No. The whole point of the add-on is that the fields are hidden. Visitors see a normal form, while the analytics values are saved in the background. After setup, you should still check the public form page to make sure the theme or custom styles are not exposing hidden fields on screen.
Which UTM Parameters Should You Use First?
For most campaigns, utm_source, utm_medium, utm_campaign, and utm_content are enough. The first identifies the source, the second the channel, the third the campaign, and the fourth the specific link or ad variant. If the team does not analyze an extra parameter, do not add it to the form just for completeness.
Why Can Referrer Be Blank Even If the Visitor Came from Another Site?
Referrer depends on the browser, the app, the source site's policy, the protocol, redirects, and privacy settings. A blank referrer does not always mean there is a problem with Ninja Forms User Analytics. For managed campaigns, it is better to rely on UTM-tagged links and use referrer as supporting context.
Can This Add-On Help Troubleshoot Form Errors?
Yes, within reason. Browser and operating system help you understand where to reproduce the problem, especially if similar complaints come from the same environment. But the add-on does not show the JavaScript log, the server response, a theme conflict, or the exact user path to the error. More advanced troubleshooting still requires additional tools.
Will Adding Hidden Fields Affect the Form's Appearance?
By design, hidden fields should not change how the form looks. If adding the fields creates extra spacing, blank areas, or strange elements, check for plugin updates, theme styles, and caching. The product changelog has included fixes related to analytics field spacing, so keep the add-on updated.
What If the Site Uses Caching and Script Optimization?
Run a reference test with a UTM link before and after optimization is enabled. If values disappear only after a specific setting is turned on, exclude the form page or the form scripts from that aggressive mode. Roll changes back surgically: test first, change one thing, then run a new test submission.
Is This Add-On a Good Fit If Leads Go Straight into a CRM?
Yes, if the CRM receives data from Ninja Forms submissions and you can pass the analytics fields into it. If the integration sends only the regular form fields, or the team does not use WordPress submissions at all, verify in advance whether the UTM values will actually reach the destination that matters. Otherwise, the data will be collected in WordPress but will not help managers in the real workflow.
When Ninja Forms User Analytics Is the Right Choice
Ninja Forms User Analytics is a strong fit when the site already runs on Ninja Forms, leads are stored in WordPress, and the team needs a clear answer to one practical question: "Which link brought in this person?" The add-on is especially useful for ad landing pages, email campaigns, partner articles, consultation forms, and support forms where both marketing and technical context matter alongside the lead itself.
Before going live, verify three things: the form saves submissions, the UTM link reaches the page intact, and the hidden fields appear in the new record. Once that works, you can connect real campaigns, but do not forget about naming rules, access control, and privacy. If the data will be used in reporting, agree on parameter names and export workflow ahead of time.
If you need a lightweight way to connect Ninja Forms with UTM tags and lead sources without building a separate external dashboard, you can go to the get the Ninja Forms User Analytics file section, install the add-on on a staging copy or a backed-up live site, and run the control scenario from this guide. The setup is successful when, after testing, you no longer see just a form submission, but a clear chain: source, campaign, form, submission, and the team's next action.


