End of July at a real estate agency in Almaty. Nurzhan, who runs it, opens the report: January leads produced 12 deals, April leads fewer so far, and he wants to switch off the April campaign. But January buyers have had time to reach a contract, while some April buyers are still going to viewings. Compare the groups as they stand and you will switch off ads over a result that simply has not had time to happen.
The agency earns a commission on each sale. The numbers and assumptions in this lesson are illustrative. Six months is how long we watch each lead here. How long a purchase takes for your client is something their own history of leads, contracts and payments will tell you.
Define the result of advertising
A manager may call a reservation, a signed contract or money in the account a deal. The report needs one definition, and it is worth choosing it with sales and accounting, or everyone will read your numbers their own way. Here a deal is a signed contract on which the first payment has arrived. A reservation without payment is an intermediate stage.
Someone may call about a listing on Krisha, then come to view a completely different apartment and return a month later through a broker. In the new-buyer group they are one person. All the calls and property changes stay in the CRM, as in the links between leads and deals. If the same buyer later takes a second apartment, that is a repeat deal, not a new customer.
For each event, the CRM records the buyer and contract IDs, the property, the time, the status and what confirms it. Accounting confirms a payment; the employee who ran a viewing confirms the viewing. A status of "thinking about it" gives you nothing: it tells you neither why they declined nor when to call again.
Give each lead the same amount of time
In both January and April the agency received 100 new unique leads. By 31 July every January lead had run its full 180 days, while April leads had run only their first 30. Count from each lead's own date, then add up the group.
| New-lead group | Leads | Deals in the first 30 days | Deals in the first 180 days |
|---|---|---|---|
| January | 100 | 3 | 12 |
| April | 100 | 4 | Window open |
Deals at the same lead age
| Group | Unique leads | First 30 days | First 180 days |
|---|---|---|---|
| January | 100 | 3 | 12 |
| April | 100 | 4 | Window still open |
At 30 days the difference is one deal. A budget decision also needs properties, prices, availability and sales handling.
At the same age, April produced 4% and January 3%. The difference is one deal, which is not enough for a budget decision. You need to know which properties were on sale, at what prices, what was available and how the managers worked. People in January and April may have been looking for quite different apartments.
Leave the open cell empty. A zero there would say the time had passed with no deals, and it has not passed. July sales from January leads go into July's calendar report but stay with the January group in the cohort report. If you divide them by new July leads, the two reports merge into one that describes nothing.
Count the agency's money
The apartment price goes to the seller; the agency keeps its commission. So putting apartment values into the agency's ROAS makes no sense: you would be measuring payback on money the agency never had.
Suppose acquiring January's 100 leads cost 300,000 ₸. By the end of the 180-day window, all 12 contracts had brought the agency 300,000 ₸ commission each, and that money has been received. Handling each deal cost 90,000 ₸, covering the related payments and work. There are no other variable costs in the calculation.
| January group item | Calculation | Amount |
|---|---|---|
| Commission received | 12 × 300,000 | 3,600,000 ₸ |
| Variable costs | 12 × 90,000 | 1,080,000 ₸ |
| Contribution before advertising | 3,600,000 - 1,080,000 | 2,520,000 ₸ |
| Advertising | Campaign spend | 300,000 ₸ |
| Remainder after advertising | 2,520,000 - 300,000 | 2,220,000 ₸ |
Ad spend per buyer with a contract is 300,000 / 12 = 25,000 ₸. One deal brings 210,000 ₸ of contribution before advertising. Out of the 2,220,000 ₸ remainder the agency still pays fixed costs and taxes. And this covers the deals the CRM linked to the campaign: how many of them the ads actually added takes a different comparison.
Commission already in the account is an assumption of the task. If the agency gets paid later, those receipts are not in today's cash calendar. So before you discuss the next budget, ask Nurzhan when the agency actually receives its commission. Even if the campaign is in profit by month six, the agency has already paid for month one's ads out of its own money.
Watch viewings while contracts mature
Waiting six months for contracts to find out a campaign broke is too long. Between lead and contract there are steps you can see earlier: you reached the person, the request fits, they came to a viewing. Each step needs a definition and an employee who marks it in the CRM.
The agency might define a suitable request like this: there is an available property, a budget range has been discussed and the next step agreed. If nobody has reached the person, you do not know what they need. Marking them "unsuitable" then hides a handling problem: the manager simply had no time to call.
A scheduled viewing and a completed one are different statuses. If a meeting is moved, it stays with the same buyer. Then you look for where people drop out: no contact, no suitable property, terms did not work, the person cancelled. The answer decides the work: change the offer, update the property list or arrange another call.
Make the ad match the property
Buyers come to a viewing with questions: what the price includes, what the apartment looks like in person, when they can move in, what payment terms there are. If the Krisha listing, the website and the manager give different answers, the buyer leaves the viewing with one question: whom to believe.
Label a rendering as a project image; a photo of a finished property shows what it looks like now. A school and a park the developer only plans are described as plans, and anything said to exist nearby is checked first and written second. A promise of rental returns needs a calculation, and a pretty rendering will not stand in for one.
Every active listing needs someone who keeps it current. When a property sells or its price or completion date changes, that person tells marketing and the managers. The link is easy to test on a single lead: see the ad, open the page, call and hear the same terms. If anything differs, note the ad version and the time.
A late contract may never reach the ad account
Google Ads offline conversion imports have a time limit after the associated last click. According to the Google Ads help page (checked 15.10.2026), a regular import will not accept a conversion uploaded more than 90 days after the click, and for enhanced conversions for leads the limit is 63 days. Before setup, check the transfer method and current limits against the help page: the offline conversion transfer setup itself depends on the method.
A contract 180 days after that same click will no longer get through such an import and will stay only in your own analytics. Do not move the contract date to squeeze it in: the CRM and the ad report would then describe different events.
To give the ad account a signal sooner, you can send a confirmed suitable request or a completed viewing, if the tool and the process allow it. Name these conversions for what happened, so nobody mistakes a viewing for a sale. One person's lead, viewing and contract are one buyer, and adding up the events does not turn them into three sales.
Only the agreed fields go to the ad account. Buyer documents, negotiation details and the full CRM history are not needed for this event. Whoever owns the integration keeps the result of each upload and any rejection reason. Otherwise a late deal the ad account rejected will look as if it never happened.
Exercise: cheaper leads, costlier viewings
Nurzhan sends two more campaigns, 300,000 ₸ each, and the observation period for viewings has closed on both. The first produced 100 leads and 20 completed viewings, the second 200 leads and 15 viewings. He asks whether to move the whole budget to the second. Work out the cost per lead and per viewing for him and write down what data is missing before the budget moves.
The first campaign's CPL is 3,000 ₸ and a completed viewing costs 15,000 ₸. In the second, CPL dropped to 1,500 ₸ but a viewing rose to 20,000 ₸. Twice the leads, fewer people at viewings. Before moving anything you need the reason: what requests the second campaign brings, whether there were properties for them, whether the managers got through and how many meetings were cancelled.
It is too early to judge the money; that needs contracts and commissions over the same period. So the working report keeps spend, buyer IDs, group age, completed viewings, contracts and commission received. Then Nurzhan can see what is already known, what can be fixed now and which decision waits until the window closes.