July, and Almaty is hot. An air-conditioner repair shop spent 100,000 ₸ on ads in a month and got 100 leads, 1,000 ₸ each. The owner asks whether that is good or bad. Cost per lead cannot answer that: you need to know how many of the hundred leads became completed jobs, how much the shop earned on them, and whether the money went to the right place at all. The numbers in this lesson are made up.
Performance marketing is advertising judged by its business result: a lead, an order, a payment. Money moves to wherever the result comes cheaper. To work this way you need to understand two things: where demand comes from in the niche, and what happens to a lead after someone submits the form.

Where demand comes from
Before you pick a platform, answer one question: does the customer look for your service on their own, or do you have to show it to them?
When an air conditioner breaks in July, nobody waits for an ad. The person types "air conditioner repair Almaty" into Google or opens 2GIS and looks for the nearest shop. The demand already exists, and your ad has to be in front of them at the moment they search. People look for flats on Krisha, cars on Kolesa and goods on Kaspi or OLX the same way. This kind of demand has a ceiling: advertising can capture a bigger share of the people searching, but it cannot make more people search.
In spring the same shop sells cleaning, and hardly anyone searches for it: until the heat arrives, nobody thinks about the air conditioner. To get April orders, the shop has to show the offer: an Instagram and Facebook ad aimed at its own district, or a post in a residential complex's Telegram channel. "Get your air conditioner cleaned before the heat, while our technicians still have free days." Here you create demand instead of catching it, and the ad has to explain why this is worth doing now. In this kind of advertising the ad itself selects the audience: in a Meta lead campaign the targeting is broad, and the creative is what stops people.
One shop has both kinds of demand, just in different months. Your niche may be a mix too: some customers search on their own, the rest have to be persuaded.
How to tell whether people search for your service
- Write down five phrases a customer would use to describe the problem: "air conditioner repair", "air conditioner not cooling", "air conditioner regas Almaty". Type them into Google and 2GIS. If the results show competitors' ads and a dozen shops, people search for this, and someone is already paying for those searches.
- Check how often these phrases are searched in Google Ads Keyword Planner. It is free, but it only works in an account with payment details. You can set a country, region or city and see how many times a month each phrase is searched.
- If you sell a product, see how many sellers already offer it on Kaspi and OLX.
- Ask the owner how the last ten customers found the business. If the owner does not know, that is an answer too: the CRM needs a "how did you hear about us" field first.
If every phrase comes up empty and customers say they saw you in a friend's stories or in their building's chat, you will have to create the demand.
How to pick two channels
The first channel goes where demand arises in the niche. If people search, start with search: someone typing "air conditioner not cooling" has already decided they need a technician, and your ad answers the question they asked. If they do not search, start by showing the offer, and then the ad does most of the work. The second channel either catches the same demand somewhere else (a map instead of search) or reaches people who are not searching yet.
Here is how that can look in a few niches:
| Niche | Where demand comes from | First channel | Second channel |
|---|---|---|---|
| Air conditioner repair in summer | People search: it broke, it is hot | Google Search | 2GIS |
| Air conditioner cleaning in spring | Has to be shown: until it gets hot, nobody thinks of it | Instagram and Facebook in your district | Residential complex Telegram channels |
| IELTS preparation | Some look for a course once the exam date is set, the rest need persuading to start | Google Search |
A rationale for a channel fits into three sentences: where the demand comes from, why this channel reaches it, and what you will count as the result. For summer repairs it might read: "In summer air conditioners break and people look for a technician themselves: Google already shows competitors' ads for 'air conditioner repair Almaty'. A search campaign shows our ad to someone looking for a technician right now. We count a completed job as the result, not a call, so the CRM records the source of every lead."
The path from lead to completed job
A channel brings a lead, but the money comes from the job. There are several steps in between, and a lead can get lost at each one. For the shop the path looks like this:
- The ad promises what the shop actually does: repairs and cleaning, not selling new units.
- The landing page or the 2GIS listing shows the districts it covers, the price of a diagnostic visit and how to book.
- The lead lands in the CRM with its source from UTM tags and a manager who owns it.
- The manager calls back and sets a status: reached, qualified (our service and our area), technician booked, job done and paid, or lost.
A lost lead needs a reason picked from a short list: outside our area, wants a new unit, too expensive, never reached. After a month these reasons show what to fix: the ad copy, the page or how fast you respond.
Without statuses the report shows a hundred leads and 100,000 ₸ of spend, and nothing else. With statuses you can see at which step the other eighty dropped out.
How much you can pay for a lead
Of the 100 leads, the technician completed 20 jobs. After parts, the technician's pay and other variable costs, but before advertising, each job leaves the shop 8,000 ₸. That is the contribution per job.
| Calculation | Result |
|---|---|
| Share of leads that became jobs | 20 / 100 = 20% |
| Cost per lead (CPL) | 100,000 / 100 = 1,000 ₸ |
| Ad spend per job | 100,000 / 20 = 5,000 ₸ |
| Contribution from jobs before advertising | 20 × 8,000 = 160,000 ₸ |
| Left after advertising | 160,000 - 100,000 = 60,000 ₸ |
The 60,000 ₸ is not profit yet: rent, the receptionist's salary and other fixed costs come out of it. Repeat orders are not included.
That gives you a ceiling on cost per lead. If one lead in five becomes a job, each lead brings in 8,000 × 0.2 = 1,600 ₸ of contribution on average. Pay 1,600 ₸ per lead and the whole contribution goes to advertising. So 1,600 ₸ is the break-even ceiling. The working limit sits lower, so that something is left for fixed costs.
The ceiling moves with the share of leads that become jobs. If only one lead in ten becomes a job, it drops to 800 ₸, and the same 1,000 ₸ leads start eating money. That is why CPL alone, without the share of leads that reached a job, cannot tell you whether the advertising pays off.
CPL fell, but jobs did not grow
A month later the media buyer reports: on the same 100,000 ₸ budget there were 200 leads, and CPL halved to 500 ₸. He moved more money into Instagram, where leads are cheaper. Meanwhile the managers complain that more than half of their calls are wasted: people want to buy a new unit or live out of town, where the technician does not go.
There are still 20 completed jobs. Ad spend per job is still 5,000 ₸ and what is left after advertising has not changed, except that the managers now call twice as many people.
When CPL falls and managers talk about unqualified leads, open the CRM and break the leads down by campaign: how many were qualified, how many reached a paid job, and how much advertising went into each of those jobs. For that, every lead needs a utm_campaign and a status.
| Campaign | Spend | Leads | CPL | Qualified | Completed jobs | Ad spend per job |
|---|---|---|---|---|---|---|
| Google Search | 40,000 ₸ | 40 | 1,000 ₸ | 30 | 12 | 3,333 ₸ |
| 60,000 ₸ | 160 | 375 ₸ | 40 | 8 | 7,500 ₸ | |
| Total | 100,000 ₸ | 200 | 500 ₸ | 70 | 20 | 5,000 ₸ |
On CPL, Instagram is almost three times cheaper. On jobs, the picture flips: a job from Instagram cost 7,500 ₸, nearly the whole contribution of a job, and a job from search cost 3,333 ₸. But there are only twenty jobs, twelve and eight, and one or two cancelled jobs would shift these numbers noticeably. So you do not move the whole budget after one month. A sensible step is to rewrite the Instagram ad, stating the districts covered and that the shop does not sell new units, and to watch ad spend per job over the next month. That is a hypothesis, and only next month will test it.
What to give the ad platform
Google Ads counts conversions on a website, calls, and offline conversions uploaded from a file or through the API. The shop completes twenty jobs a month, and each one becomes known several days after the lead. The system needs a frequent event to learn from (Meta ads), so the campaign optimises for leads, and once a month you check yourself how leads turn into jobs, using the table from the previous section. CRM statuses will not reach the ad account on their own: they are uploaded as offline conversions, which is the subject of end-to-end analytics.
Before launch, walk the lead path yourself: submit the form, submit it with an error, submit it twice. A successful submission should produce one lead in the CRM and one event in the ad account, and an error should produce none.
Exercise: two channels for your niche
This is the week 2 task of the Start track. The result is a "channels and why" paragraph in your profile note.
A good rationale starts with demand, not with the platform. "Instagram, because everyone is on it" explains nothing: your customers are there, and so is everyone else. For the IELTS centre from the week 2 test, the rationale for the second channel could read: "Six of the last ten students were not looking for a course; they came after an Instagram ad when they started thinking about the exam. An ad with a free trial lesson and a level test finds people who are thinking about the exam but not yet choosing a course. We count the people who came to the trial lesson as the result, not leads."
Reread your two paragraphs. If the sentence about demand rests on no observation (search phrases, competitors in the results, what customers said), it is still a guess. And if every search phrase came up empty but both your channels are search, you are planning to pay for searches that do not happen.