# How to track lead source in ARForms

Stop losing the marketing context behind every ARForms submission. Tie each lead back to the campaign and journey that delivered it.

Source: https://sourceloop.ai/help/track-lead-source-in-arforms/
Updated: 2026-05-28

---

ARForms is the WordPress form plugin that leans into aesthetics, slick AJAX submissions, premium templates, drag-and-drop builder, and a CodeCanyon following. Useful for agencies and lead-gen sites, but it doesn't say which marketing channel produced each entry. SourceLoop fills in that missing field.

Three steps, around five minutes, no ARForms-side configuration required.

## What SourceLoop captures from ARForms

Every ARForms submission lands in SourceLoop tagged with:

- **Acquisition source** of the visitor (paid, organic, social, referral, direct)
- **All UTM parameters** parsed from the landing URL
- **Page-by-page browsing path** taken before the form fill
- **Cumulative time on site** ahead of the conversion
- **Number of distinct sessions** before the submission
- **Email + name** from the ARForms fields
- **Landing page** of the visitor's first session
- **Source of the converting session** (often distinct from first-touch)
- **Device, country, browser** of the lead

## Before you start

You'll need:

- A **SourceLoop workspace** ([free trial](https://app.sourceloop.ai/sign-up))
- **WordPress admin** access (or another way to edit `<head>` markup)
- An **ARForms** form embedded on a published WordPress page

## Step 1: Install SourceLoop's snippet on your WordPress site

From SourceLoop, head to **Setup -> Tracking code** in the sidebar and copy the snippet shown.

![SourceLoop Setup page with the tracking code snippet ready to copy](/help/screenshots/sourceloop-tracking-code-script.png)

Drop it into the `<head>` of your WordPress site. The usual WordPress paths:

- A header-injection plugin (Insert Headers and Footers, WPCode)
- Your active theme's `header.php`, just before `</head>`
- A "Custom Code" field inside Yoast, Rank Math, or SEOPress
- Google Tag Manager set to fire on All Pages

The script must load on every page that contains an ARForms form.

## Step 2: Confirm the form is on a tracked, published page

There's no per-form switch to flip inside ARForms. Once the snippet is live, every ARForms form on every page that includes the snippet is attributable.

Worth confirming:

- The form is on a **published page or post** (not a draft or private page)
- The form **collects an email address**, SourceLoop uses email as the lead ID
- Any performance plugin isn't deferring SourceLoop past the form's submit handler

> **Preview-only links won't carry attribution**
> Sharing a WordPress preview URL or any direct link to a page that excludes the SourceLoop snippet (a draft, a private page, a staging subdomain you didn't set up) means submissions show up in ARForms but appear without a source in SourceLoop. Always route campaigns to a fully published page.

## Step 3: Submit a test entry to verify

Open the form's page in an **incognito tab** with `?utm_source=test&utm_medium=verify&utm_campaign=arforms-check` glued to the URL. Submit a real entry using an email you can check.

Within seconds, the submission should land on the **Contacts Hub** in SourceLoop with the three test UTM values shown on the record.

## Where to see ARForms submissions in SourceLoop

### Contacts Hub

Each submission becomes a contact row at [app.sourceloop.ai/contacts](https://app.sourceloop.ai/contacts). Open a contact to see the full timeline, every page visited, every prior session, every campaign that touched them before the submission.

![SourceLoop Contacts Hub showing an ARForms submission with the lead's full journey](/help/screenshots/sourceloop-lead-journey-demo.webp)

### Attribution dashboard

[app.sourceloop.ai/dashboards/traffic](https://app.sourceloop.ai/dashboards/traffic) rolls up ARForms submissions by source, medium, and campaign. A quick read on which channels are actually pulling weight, vs. which ones just send traffic.

![SourceLoop attribution dashboard with ARForms submissions grouped by source and campaign](/help/screenshots/sourceloop-attribution-dashboard.webp)

### Funnel reports

Build a funnel at [app.sourceloop.ai/funnels](https://app.sourceloop.ai/funnels/) with "ARForms submission" as the final step. Slice by source, content, or device to find the highest-converting paths from first visit to form fill.

![SourceLoop funnel report ending in an ARForms submission conversion step](/help/screenshots/sourceloop-funnel.png)

If paid acquisition is in the mix, forward ARForms submissions back to **Google Ads, Meta, and LinkedIn as offline conversions** so the auction algorithms train on real lead generation. [Connect your Google Ads account](/help/connect-google-ads/) covers the setup.

## Frequently Asked Questions

### ARForms uses AJAX submissions by default. Does that affect SourceLoop?

No. Whether ARForms submits via AJAX or a full page reload, SourceLoop attaches attribution to the submission event the same way.

### Can I track ARForms used in popup, slider, or modal mode?

Yes. ARForms' popup, modal, and slider variants all fire submissions the same way once the visitor reaches the end of the form.

### My ARForms form is on a page protected by a membership plugin. Will tracking work?

Yes, as long as the SourceLoop snippet loads on that protected page. If the membership plugin defers script loading aggressively, place the SourceLoop snippet outside the deferred bundle.

### Are ARForms' Mailchimp, ActiveCampaign, GetResponse, and webhook connections affected?

No. All your existing ARForms integrations continue to fire as configured. SourceLoop layers attribution data on top in its own dashboard, without intercepting anything ARForms does.

### I custom-styled my ARForms with CSS. Does the snippet impact styling?

No. SourceLoop's snippet is invisible, no DOM injection, no CSS, no styling impact whatsoever. Your ARForms designs render exactly as before.
