Tracking stops the moment a lead is recorded. Everything that happens between that lead and an actual move-in is invisible.
For a property management business, that gap is where the real campaign performance lives.
One client runs their leasing pipeline through AppFolio. AppFolio's API can expose key stages after the inquiry, such as: showings scheduled, applications submitted, approvals, move-ins.
Connect that data to your campaign reporting and the CPL number on your dashboard gets a lot more context.
What Gets Tracked After the Lead
AppFolio records a lead source on every guest card created. When a prospect contacts a property through Zillow, that source is logged. Same for Apartments[dot]com, Zumper, Facebook, and direct website traffic. For paid campaigns, for most AppFolio configurations, a link to your website with a utm_source parameter gets tracked automatically, no additional setup needed.
There is also a manual option. According to AppFolio's documentation, appending &source=YourSourceName to links pointing to your site and AppFolio stamps that source on every guest card created from that visit within 30 days. This works for email campaigns, QR codes, partnerships, anything outside the major platforms.
Many property managers have never configured any of this. Everything defaults to "Website" and the source breakdown becomes meaningless noise.
The result: you know how many guest cards you received. You have no reliable way to know where they came from, or more importantly, which sources actually produce tenants.
The Gap Between Lead Volume and Move-ins
This is where the standard reporting setup breaks down.
When a property is running paid campaigns across Google, Meta, and listing platforms simultaneously, the question that matters most is not "how many leads did we get?" It is "which sources generate leads that close?"
Those are different questions with different answers.
Results will vary from website to website. This is what happened with this client. A property had Zillow generating the highest inquiry volume of any source. The website, by comparison, produced less. On raw volume, Zillow looked like the best performance.
When you look at move-ins by source, the picture flips. Website traffic converted, proportionally, more inquiries to move-ins. The website's inquiry-to-move-in rate was nearly 10%. Zillow's was much less.
Without connecting AppFolio's leasing data to the source breakdown, you would keep optimizing for inquiry volume and keep sending budget toward the channel that produces the lowest quality leads.
Why Listing Platforms Produce Volume, Not Tenants
Zillow and similar platforms attract renters at the earliest stage of their search. Someone browsing Zillow on a Tuesday night has not decided where they want to live, what they can afford, or when they are moving. They are researching. The inquiry they send is low friction, one tap on a mobile app, and it goes to multiple properties simultaneously. The intent and conversion diluted into several possibilities.
Website traffic behaves differently. Someone who found your property through a search ad, clicked through, navigated the listing, and then submitted an inquiry has already self-qualified. They know the location, the price, the amenities. The friction was higher and they stayed anyway. That is a different buyer at a different stage.
This does not mean listing platforms have no value. Zillow produced 180 inquiries in a single month for this client. That volume keeps the pipeline full and creates opportunities to nurture prospects who are not ready yet. But optimizing ad spend toward inquiry volume on listing platforms is a different goal than optimizing for tenants. Conflating the two is where budget gets wasted.
Why YouTube Looked Like It Wasn't Working
The same property was running 50-plus video campaigns on YouTube, a mix of original creative that had performed well and AI-generated variations built to scale what was working. Sessions from cross-network traffic were over 24,000 in a single month. AppFolio showed zero guest cards attributed to YouTube.
The client had a feeling the videos were building awareness. There was no way to confirm or deny it. That conversation kept circling back to the same place: a feeling on one side, silence in the data on the other.
Connecting the full funnel did not make YouTube attribution perfect. What it did was confirm, specifically, that YouTube traffic was not converting to AppFolio guest cards through any tracked path. That is a different conversation than "we're not sure if video is working." It is actionable.
The recommendation shifted from "should we pause the video campaigns?" to "keep the branding spend, fix the attribution gap, and stop scaling variations until you know what the original campaigns are actually doing."
I've watched clients scale campaigns before the tracking is solid. The result is always the same: more spend, more questions, no answers.
Building a Funnel That Crosses Both Systems
The structural problem is that GA4 and AppFolio live in separate systems with no native connection. GA4 shows you what happens on the website. AppFolio shows you what happens in the leasing pipeline. Neither shows you both.
A connected funnel stitches these together in a single view, ordered by the sequence that matches how your business actually works:

When this funnel is in place, two things become visible that were not before. First, you can see exactly where volume drops off, across both systems in one sequence. Second, you can tag which stage counts as a "lead" and which counts as a "conversion" for that specific client. For a property management business, an inquiry is the lead event. A move-in is the conversion. Those definitions change how CPL and CPA are calculated, and they change what optimization decisions look like.
A $5.67 CPL sounds efficient. When you define "lead" as an AppFolio inquiry and "conversion" as a move-in, the CPA shifts to $239. That is the number that connects to actual business outcomes.
What You Can Do Before Connecting Any API
If you are running paid campaigns and your AppFolio lead source data is collapsed into "Website," the first step has nothing to do with custom integrations.
Start with your Google Ads tracking template. Most accounts either leave this blank or use a basic UTM string that only feeds GA4. A template that feeds both GA4 and AppFolio looks like this:
{lpurl}?utm_source=google&utm_medium=cpc&utm_campaign={campaign}&source=google_{campaignid}
The utm_source and utm_campaign parameters handle GA4 attribution as usual. The source=google_{campaignid} parameter at the end is what AppFolio reads. Using the campaign ID in the source name means each campaign gets its own attribution label in AppFolio, not just a generic "google" bucket. When you have multiple campaigns running, this is the difference between knowing Google drove an inquiry and knowing which specific campaign did.
Set this at the account level in Google Ads under Settings, then verify it is passing through by checking a few guest cards in AppFolio after the next campaign goes live. If every guest card still shows "Website," the parameter is not passing through and something in the URL chain is stripping it.
For any non-paid sources you want to track separately, add ?source=YourSourceName to those links directly. Alphanumeric characters only, no spaces or special characters.
Once source data is clean in AppFolio, pull the inquiry-to-move-in rate by source. That number is more useful than inquiry volume alone, and it is already in your system.
The connected funnel comes after the data is clean. Scaling campaigns comes after the funnel is confirmed.
Where to Start If This Is Your Setup
If you are running paid campaigns and managing your leasing pipeline in AppFolio, the connection between those two systems is worth building. The data is already there on both sides. The gap is the bridge.
Start with the Google Ads tracking template above and verify the source parameters are showing up on guest cards in AppFolio. That alone will tell you more about campaign performance than any dashboard your ad platform produces.
If you want to go further and connect the full leasing funnel to your campaign reporting, that is what we build at k0k1man.com. No generic dashboards — a funnel configured around how your specific business converts visitors into tenants.