Home/Blog/Tech/Conversion Tracking/how-to-setup-capi-for-real-estate
Real estate conversion tracking flow from enquiry through site visit and booking sent back via the Conversions API
Pillar: Tech|Topic: Conversion Tracking| July 31, 2026| 20 min read

How to Set Up CAPI Properly for a Real Estate Business

DS

Deeptanshu Sharma

Verified Expert

Director of Growth | 9+ Years Scaling Global ARR & Media Budgets

Real estate has the widest gap between the conversion your tracking records and the conversion your business cares about of any category in performance marketing. A browser fires a Lead event when someone submits a form. The event that actually predicts revenue — a person standing in a model flat on a Sunday — happens five weeks later, in a physical location, and is recorded by a security guard with a register.

That gap has a direct cost. Meta's delivery system optimises toward whatever event you send it. Send form fills and it will become extremely good at finding people who fill forms: students researching, brokers harvesting inventory, and buyers whose budget is a third of your ticket size. The campaign looks excellent on cost per lead and produces almost no bookings, and the usual response is to blame lead quality rather than the instruction given to the algorithm.

""The primary scaling limiter in enterprise marketing is never your maximum bidding capacity—it is almost always how cleanly your tracking architecture correlates raw user intent with network-level event parameters."

This guide is the full Conversions API build for a property business: the event ladder from enquiry to registration, how to send offline site visits and bookings back from your CRM, how to make phone-number identity matching actually work with Indian mobile numbers, deduplication with the pixel, and the sequencing that keeps campaigns stable while you migrate optimisation deeper into the funnel.

★ Primary Golden Sponsor / AdSense Partner

Executive Performance Asset

Download Deeptanshu Sharma's Multi-Touch GTM Attribution & Server-Side CAPI Playbook

Get immediate access to pre-built GTM server containers, first-party cookie extenders, and value attribution matrix sheets built for Series A to E companies.

Quick Answer

What "properly" means for real estate

A correct real estate CAPI setup does three things a standard install does not. It sends five events, not one — enquiry, contacted, qualified, site visit, booking — so the algorithm can be moved deeper as volume allows. It pushes the offline events back from the CRM with action_source set to physical_store or system_generated, because site visits and bookings never touch a browser. And it treats the normalised phone number as the identity spine, since it is the one identifier collected at the ad, at the call, and at the gate. Everything else in this guide is implementation detail for those three decisions.

1. Why Real Estate Breaks Standard Conversion Tracking

Four structural features of property marketing each break a different assumption built into browser-based tracking.

The cycle outlives the attribution window

Enquiry to booking commonly runs 30 to 180 days. Standard click and view windows close long before the outcome occurs, so the platform never learns which click produced the sale unless you send it back explicitly.

The decisive event is physical

Site visits and bookings happen in a sales gallery, not a browser. No pixel can observe them. They exist only in your CRM, which means they only reach Meta if you build the path.

Lead-to-buyer ratios are brutal

A category where a small single-digit percentage of enquiries reach site visit, and a fraction of those book, cannot be optimised on enquiries. The signal-to-noise ratio at the top of this funnel is worse than almost anywhere in marketing.

Everything happens on the phone

Calls, WhatsApp, missed-call callbacks. These are conversion surfaces with no browser session, and each needs its own action_source rather than being quietly dropped from measurement.

Add browser-side signal loss — ad blockers, tracking prevention in Safari and Firefox, iOS restrictions, consent tooling — and a pixel-only setup in this category typically observes a materially incomplete picture of even the browser events it was designed for. CAPI addresses both problems at once: reliability for the events that do occur online, and existence for the events that do not.

1-on-1 Executive Growth Consultation

Tired of Rising CAC & Attribution Leakage?

Work directly with Deeptanshu Sharma to audit your media strategy, funnel bottlenecks, and server-side tracking.

2. The Real Estate Event Ladder

Design the events before touching any code. This ladder is the entire strategy; the API call is plumbing. Each rung is more predictive of revenue and less frequent than the one below it.

Real estate CAPI event ladder from enquiry to registration Five stacked event rungs. Enquiry and lead events are captured in the browser and sent by both pixel and Conversions API. Contacted, qualified, site visit, booking and registration are captured in the CRM and sent only by the Conversions API with an offline action source. Volume falls and predictive value rises as the ladder ascends, with the recommended optimisation event marked at the qualified lead and site visit rungs. EVENT LADDER · VOLUME FALLS, PREDICTIVE VALUE RISES 1. Lead · enquiry submitted browser · pixel + CAPI · action_source: website 2. Contacted · call connected CRM · CAPI only · action_source: phone_call 3. Qualified · budget + intent CRM · CAPI only · system_generated 4. Site visit done CRM · physical_store 5. Booking · value OPTIMISE HERE Rung 3 when 50+ qualified/ad set/week Rung 2 while volume is still building SEND ANYWAY, DO NOT OPTIMISE Rungs 4 and 5 are usually too sparse to drive delivery, but they are what makes reporting reflect reality.
Send every rung. Optimise on the deepest rung that clears roughly 50 events per ad set per week — below that, the algorithm is learning from noise.
Event Fired when Source action_source
Lead Form submitted or instant form completed Browser + server website
Contact Call connected for 60+ seconds, or WhatsApp replied Telephony / CRM phone_call
QualifiedLead Budget, configuration, location and timeline confirmed CRM stage change system_generated
Schedule Site visit booked into the calendar CRM system_generated
SiteVisitDone Visitor marked present at the project Visit register / CRM physical_store
Purchase Booking amount received CRM / finance physical_store

Two decisions inside this table do most of the work. First, Contact requires a real connect, not a dial — a 60-second threshold from your telephony system, because a dialled-and-abandoned call carries no information. Second, QualifiedLead needs a written definition agreed with sales and enforced in the CRM. If "qualified" means whatever each rep feels, you are training a multi-million-rupee algorithm on individual opinions.

3. Identity Matching: Phone Number Is the Spine

Every offline event you send is worthless unless Meta can match it to a person who saw an ad. In e-commerce, email carries that load. In real estate it is the phone number, because it is captured at the enquiry, verified by OTP, dialled by the call centre, and written in the register at the gate. Get the phone normalisation wrong and your entire offline pipeline silently fails to match while reporting success.

Normalise before hashing, every time

  1. Strip everything that is not a digit. Spaces, hyphens, brackets and the leading plus all go.
  2. Remove local trunk prefixes such as a leading zero before applying the country code.
  3. Prepend the country code — 91 for India — producing a digits-only string such as 919812345678.
  4. Lowercase and trim every other field before hashing: email, first name, last name, city, state.
  5. Hash with SHA-256 and send as lowercase hexadecimal. Never send raw personal data in these fields.
  6. Do not hash client_ip_address, client_user_agent, fbc, fbp or lead_id. Hashing these breaks them.

The most common defect in Indian real estate implementations is hashing 9812345678 in the CRM and 919812345678 at the website. Those produce entirely different hashes, so nothing matches, and because the API returns success for a well-formed request, nobody notices until someone examines Event Match Quality months later.

Use lead_id when the lead came from an instant form

If a lead originated in a Meta lead form, store the lead_id on the CRM record and send it on every downstream offline event. This is a direct identifier that bypasses probabilistic matching entirely and is by far the highest-fidelity path available. In a category where instant forms often drive most volume, capturing lead_id at intake is a five-minute change with a disproportionate effect on offline match rates.

Capture fbc and fbp at the first touch and keep them

When a visitor lands from an ad, read the fbclid parameter, construct the fbc value in Meta's documented format, read the _fbp cookie, and write both onto the lead record in your CRM. Six weeks later, when that person books, you attach those same values to the Purchase event. This is the single change that turns offline attribution from approximate to precise, and almost nobody does it because it requires the CRM schema to change before the campaign starts.

CRM fields to add before you write any code

  • fbc, fbp, lead_id, first-touch landing_url and gclid for the Google equivalent.
  • phone_e164 as a separate normalised field, so hashing never depends on whatever a rep typed.
  • An event_id per lifecycle event, generated once and stored, so retries never double-count.
  • A per-event sent_to_meta_at timestamp, which is how you audit the pipeline later.

4. Implementation: Seven Steps

Step 1 — Map the funnel before the code

Write down the actual stages a lead passes through in your CRM and last quarter's conversion rate between each. You need these numbers to decide which rung can support optimisation. A project generating 900 enquiries and 12 bookings a month cannot optimise on bookings, and knowing that before you build prevents a month of confusion.

Step 2 — Ship the website event server-side

Send the Lead event from your backend at the moment the form is accepted, in parallel with the browser pixel. Include the hashed identifiers, fbc, fbp, client IP, user agent, event_source_url and a shared event_id. Three implementation routes, in descending order of control: a direct server-to-server call from your own application, a server-side Google Tag Manager container, or your CRM's native Meta integration. Native integrations are fastest to launch and consistently the least flexible on custom events.

Step 3 — Get deduplication right on day one

  • Generate one event_id per real-world conversion — a UUID is fine — and pass the same value to both the pixel and the server call.
  • The event_name must match exactly between the two sources. Lead and lead are different events and will not deduplicate.
  • Never generate the event_id independently on each side. Generate once, server-side if possible, and hand it to the browser.
  • Verify in Events Manager that the event shows both sources with deduplication applied, not two separate counts. Do this before spending anything.

Step 4 — Build the CRM upload job

A scheduled job — hourly is comfortable, daily is acceptable — that finds records whose stage changed since the last run and posts the corresponding event. Requirements that are easy to skip and expensive to retrofit:

  • event_time is when the thing happened — the actual visit timestamp — not when your job ran. Getting this wrong destroys attribution windows.
  • Idempotency. Store the event_id and a sent flag so a re-run never re-sends. Retries are inevitable; duplicates need not be.
  • Backfill carefully. On first launch, upload only events inside Meta's permitted lookback window for offline events, and check the current limit in the documentation rather than assuming.
  • Log the response. Meta returns received counts and warnings. An unmonitored integration that silently stops is the single most common failure in offline conversion pipelines.

Step 5 — Attach values, and pick the right one

Send value and currency on the Purchase event so value-based optimisation and honest ROAS become possible. The question is which value. Total unit price is the intuitive answer and usually the wrong one, because in a category with staged payments and cancellations it overstates realised revenue by a wide margin. Two defensible options: booking amount received, which is conservative and certain, or expected gross margin on the unit, which is more useful for bidding. Pick one, document it, and never mix the two across projects.

Step 6 — Migrate optimisation gradually

Do not switch every campaign from Lead to QualifiedLead on a Monday. Move one ad set, let it exit the learning phase, and compare cost per site visit — not cost per lead — against the control. Expect cost per lead to rise by a meaningful margin and lead volume to fall. That is the mechanism working: you asked for a rarer, better person, and rarer people cost more.

Step 7 — Monitor four numbers weekly

  • Event Match Quality per event. Anything below about 6 on offline events means your identifiers are too thin to match reliably.
  • Deduplication rate on the Lead event. A sudden change means someone altered the event_id logic.
  • CRM-to-Meta event ratio. If your CRM recorded 40 site visits and Meta received 31, find the missing nine before they become a pattern.
  • Cost per site visit and per booking, which are the only two numbers that should influence budget decisions in this category.

5. Doing the Same Thing on Google Ads

Real estate is one of the few categories where search intent is genuinely strong — people type project names, locality plus "flats", and configuration queries with real purchase intent. Most property advertisers therefore run substantial Google budgets alongside Meta, and a CAPI project that ignores Google leaves half the problem unsolved. Google's equivalents are two separate mechanisms and they are frequently confused.

Mechanism Identity key What it is for Real estate use
Offline Conversion Import GCLID captured at click Uploading CRM stage outcomes against the original click Site visits and bookings, the primary path
Enhanced Conversions for Leads Hashed email or phone Matching outcomes when GCLID was not captured The fallback, and useful for lead form extensions

The GCLID path is more accurate and the one to prioritise, but it has a hard prerequisite that catches almost everyone: the GCLID must be captured at the moment of the click and stored on the lead record. It arrives as a URL parameter, it is not recoverable afterwards, and if your landing page strips query parameters on redirect — which many CMS and page-builder setups do by default — you have permanently lost the ability to attribute that lead. Test this before anything else: click your own search ad, submit the form, and check whether the GCLID reached the CRM.

Build both paths in the same job

  • Add gclid and wbraid / gbraid fields alongside fbc and fbp on the lead record. The same CRM change serves both platforms.
  • Define the conversion actions in Google to mirror your Meta event ladder exactly — qualified lead, site visit, booking — so the two platforms are being judged on the same definitions.
  • Set the Google conversion action's click-through window generously. Default windows are far shorter than a property sales cycle, and outcomes uploaded outside the window are simply discarded.
  • Run one scheduled job that reads CRM stage changes and posts to both platforms. Two independent pipelines drift apart within a quarter and then nobody can explain why the numbers disagree.
  • Where GCLID is missing — organic, direct, or a stripped parameter — fall back to enhanced conversions on hashed phone and email rather than dropping the record entirely.

One consequence worth anticipating: once both platforms receive booking-level outcomes, they will each claim credit for overlapping deals, and the sum of platform-attributed bookings will exceed your actual bookings by a considerable margin. This is expected behaviour, not a bug in your implementation. Decide in advance that the CRM is the reporting system of record and that platform attribution is used only for optimisation decisions within each platform — otherwise the first monthly review turns into an unresolvable argument about whose number is real.

6. Pros and Cons of a Full CAPI Build in Real Estate

Pros Cons
The algorithm optimises toward buyers instead of form-fillers. Cost per lead rises, which is politically difficult to explain mid-quarter.
Offline site visits and bookings finally appear in campaign reporting. Depends entirely on CRM data discipline — unmarked site visits are invisible.
Signal survives ad blockers, browser restrictions and consent tooling. Requires engineering ownership; it is not a marketing-team-only project.
Value-based bidding becomes possible across configurations and projects. Choosing the wrong value definition biases delivery toward the wrong inventory.
Long sales cycles stop being invisible to the platform. Learning is slow — deep events are sparse, so feedback loops take weeks.
Broker and junk lead patterns become measurable and excludable. Handling personal data server-side raises consent and governance obligations.

7. Advantages and Disadvantages in Practice

What changes after a quarter

  • The lead quality argument ends. Sales and marketing stop disputing quality because both are looking at site visits per thousand impressions rather than at each other's anecdotes.
  • Creative testing gets meaningful. Judging creative on cost per qualified lead rather than cost per form fill regularly reverses which ad was believed to be winning.
  • Budget moves to the right projects. With booking value attached, a project generating expensive leads that convert can finally out-argue one generating cheap leads that do not.
  • The CRM gets cleaned up. Once stage changes drive ad spend, stage hygiene stops being optional — an underrated organisational side effect.

What goes wrong

  • Sparse events stall learning. Optimising on an event occurring eight times a month gives the system nothing to learn from. Stay one rung shallower than ambition dictates.
  • Silent pipeline failures. A CRM field rename breaks the upload job, the campaign quietly reverts to optimising on stale signal, and nobody notices for three weeks. Alert on event volume, not just on errors.
  • Garbage qualification in, garbage optimisation out. If reps mark leads qualified to hit activity targets, you are paying Meta to find more people who resemble those mislabelled leads.
  • Attribution disagreements get sharper, not softer. CRM-sourced bookings and Meta-attributed bookings will differ. Decide in advance which is the reporting system of record.
  • Consent obligations are real. Server-side transmission of hashed personal data still requires a lawful basis and honest disclosure. Involve whoever owns privacy before launch, not after.

8. Myths and Facts

Myth Fact
CAPI replaces the pixel. They are complementary. The pixel supplies browser signals such as fbp and fbc; CAPI supplies reliability and offline events. Run both, deduplicated.
CAPI will lower our cost per lead. It usually raises it, deliberately, while lowering cost per site visit and per booking. Judge it on the deep metric or you will conclude it failed.
Offline uploads are just for reporting. They are training data. Once volume is sufficient they change who gets shown the ad, which is the entire point.
Our CRM has a Meta integration, so we have CAPI. Native integrations typically send one shallow event with minimal identifiers. Check the actual payload and Event Match Quality before assuming coverage.
Hashing personal data means consent is not required. Hashed identifiers are still personal data used to identify individuals. Consent and disclosure obligations apply regardless of hashing.
Send every CRM stage as an optimisation event. Send every stage; optimise on one. Multiple optimisation events across overlapping ad sets fragment learning and worsen delivery.
A 200 response means the event landed correctly. It means the request was well-formed. Mis-normalised phone numbers return 200 and match nothing. Event Match Quality is the real check.
Site visits are too infrequent to bother sending. Even when too sparse to optimise on, they are the only honest measure of channel performance in this category and belong in every report.
The Bottom Line

In real estate, CAPI is not a tracking upgrade — it is how you stop paying an algorithm to find form-fillers. Build the five-rung ladder from enquiry to booking, send every rung, and optimise on the deepest one clearing roughly 50 events per ad set per week. Make the E.164-normalised phone number your identity spine, capture fbc, fbp and lead_id onto the CRM record at first touch, and hash consistently on both sides — the mismatch between 9812345678 and 919812345678 has quietly broken more offline pipelines in this category than any other single defect. Then expect cost per lead to rise and tell your leadership why before it does, because the number that should fall is cost per site visit, and that is the only number in this business worth optimising toward.

You Might Also Like

Topic Cluster

Conversion Tracking Playbook Cluster

Explore strategic playbooks in the TechConversion Tracking cluster

Tech8 min read

n8n vs Zapier (2026): The Ultimate Automation Architecture Guide

Deciding between n8n and Zapier? Discover the key differences in pricing, hosting, integrations, and logic to choose the right automation tool for your business.

Read Article →
Tech11 min read

Google Analytics 4 Setup Guide for Service Businesses (2026)

Universal Analytics is gone. Here's the complete step-by-step guide to setting up Google Analytics 4 correctly for service businesses — from account creation to conversion tracking, GA4 Explorations, and connecting Google Ads.

Read Article →
Tech10 min read

Best Marketing Analytics Tools for Service Businesses in 2026 (Compared)

Overwhelmed by the analytics tool landscape? We compare GA4, Hotjar, CallRail, HubSpot Analytics, Looker Studio, and Triple Whale — and show you how to build a lean, powerful analytics stack for under $200/month.

Read Article →
Article Tags & Related Keywords
#CAPI for Real Estate#Conversion Tracking#Tech#GTM Strategy#Performance Marketing#MarTech