Client work · Benefits nonprofit · Ongoing engagement

A form submission wasn’t the same as a new member.

I started by checking what the campaigns counted as a conversion. That led to a bigger question: why were existing members enrolling again, and what could we change to help them find what they needed?

Measurement & paid mediaMember recognition & personalizationStatus updated September 21, 2026

The business problem

The campaigns needed to bring in new members.

A benefits nonprofit uses marketing to bring eligible members into its program. The goal was to enroll new members, but existing members were registering again. Those repeat registrations were being counted alongside the new members the organization wanted to acquire.

A click could count without a submission.

At first, clicking the submit button counted as a conversion. That could happen even when an error stopped the form from submitting. The campaigns were optimizing toward those clicks.

The event later moved to the thank-you page. But a completed form could still belong to someone who was already enrolled. We needed to check the enrollment records to tell the difference.

The same person could appear in multiple records.

The organization markets to people on its lists. The same person can use different email addresses or phone numbers, which makes it harder to recognize someone who is already a member.

Fixing the event alone would not solve that. We also needed to understand who was receiving the marketing and what they saw when they reached the website.

How the pieces fit together

Use the data to decide what to change.

We’re connecting website activity with enrollment records so we can investigate which campaigns and pages bring existing members back to the form. That will help us decide what to change.

Marketing & visits

What brought someone to the site and which pages they visited.

Member recognition

Whether we recognize an app user or an existing member.

Bring the records together

Connect website activity with enrollment status in BigQuery.

Change what people see

The homepage is personalized. The enrollment page is next in the proposal.

The homepage changes and Client ID capture are in place. The BigQuery connection is underway, and enrollment-page personalization is proposed.

What has been built

What’s in place and what comes next.

Implemented

Homepage personalization

I built a system to tag visitors by their app and enrollment status. I used Google Tag Manager to personalize the homepage based on that information.

The homepage can now show different content to visitors we recognize as app users or enrolled members.

Capture implemented

Google Client ID capture

I added Google Client ID capture so we can connect recorded website activity with enrollment records and investigate repeat registrations.

As the enrollment records are connected, we’ll be able to examine browsing activity associated with duplicate enrollments and identify the main traffic sources and pages involved.

Integration underway

Enrollment and journey analysis

We’re now connecting that data with frontend and backend enrollment status in BigQuery.

We want to see whether particular campaigns or pages are associated with repeat enrollments. Those findings will help us decide where to focus the next website changes.

Proposed · not launched

A personalized enrollment page

Every duplicate enrollment passes through the enrollment page. I’ve proposed personalizing that page for people we recognize as existing members, helping them get to what they need without enrolling again.

This has not launched. It gives us one place to intervene while we investigate the different paths people take to get there. Those findings will help us prioritize personalization elsewhere on the site.

Campaign improvement

Improving campaigns while fixing the data.

While we worked on enrollment data quality, I also put social and paid-media best practices into place, along with a regular process for reviewing performance, choosing the next change and measuring the result.

Over an earlier eleven-week period, the campaign reports showed lower costs and more leads on the same monthly budget.

$13.51 → $6.08Reported cost per lead
$17.24 → $11.38Reported cost per acquisition
2×Reported lead volume

These are historical campaign figures, not costs per verified new member. Duplicate enrollment is still being addressed, and the proposed enrollment-page changes have not launched.

We’re still checking enrollment quality.

The foreign-language campaigns I launched are showing a lower duplicate rate than the original Facebook figure. That is encouraging, but they are different campaign groups. It is too early to present this as a before-and-after result.

I’ll add the numbers once the dates, registration counts and matching method are documented. We’ll report campaign results separately from the site-wide figures.

Why it matters

The team needs to know what to do next.

The point of this work is to help the team decide what to change. That meant checking the conversion event, building member recognition into the homepage, and connecting the records needed to investigate repeat enrollment.

As the BigQuery connection comes together, we’ll use the findings to guide campaign reviews and the proposed enrollment-page changes. Then we’ll measure what happens.

The client’s name and logo are withheld. This case study will be updated as the work progresses.

Do your campaign conversions match your customer records?

We can trace what gets counted, identify where the records diverge, and work out what needs to change.

Talk through your measurement