Skip to content
PPC Managementby Webso Digital

Measuring Google Ads for a recruitment agency: count vacancies and placements, not CV uploads

What a recruitment agency should count as a Google Ads conversion on each side, and how vacancies and placements get from the CRM back to the bidding.

By Daniel Stoychev, Webso Digital · 3 November 2026 · 8 min read

A whiteboard planner with the days of the week across the top and coloured notes in the rows

Count what the agency is paid for, as close to the fee as the data allows. On the client side that means an employer enquiry at first, then a vacancy you agreed to work and a placement, sent back from your CRM to Google Ads as offline conversions against the click that started them. On the candidate side a CV upload is a cost the agency carries until someone is placed, so it is reported but not bid on unless a live role needs applicants. An account that counts every form and every CV as the same conversion learns to buy whichever is cheapest, and in recruitment that is nearly always a job seeker.

Why the CV upload is the wrong number to optimise

Smart Bidding chases whatever the account marks as primary, and it does not care who filled the form. A candidate looking for work may upload a CV to several agencies in one evening; a hiring manager with one vacancy sends one enquiry. Mark both as primary and the bidding finds the first kind of person faster, the cost per conversion falls, and the report improves every month while the employer pipeline empties. That is why the conversion column has to be designed by someone who knows where the fee comes from, rather than inherited from whoever built the website form.

Splitting the account into a client campaign and a candidate campaign, which our guide on the two sides covers, stops the searches mixing. This guide is the other half of the job: deciding what each campaign is told a success looks like, and getting the answers from the CRM back into the account where the bidding can use them.

The ladder: what to count on each side

Every placement climbs the same rungs, and each rung happens later and less often than the one below it. The higher the rung you can feed back, the closer the bidding gets to the fee; the lower the rung, the more examples it has to learn from. This is the ladder we set up.

RungClient side (employers)Candidate sideHow it reaches Google AdsBid on it?
First contactEmployer form, or a call long enough to be a conversationApplication or CV uploadWebsite tag and call tracking, the same dayClient side at the start; candidate side no
QualifiedA vacancy you agreed to work, terms acceptedAn applicant who meets the role's must-havesOffline import from the CRMClient side, once it arrives every week
ShortlistCandidates sent to the employerCandidate put forward to a clientOffline importReport only
PaidPlacement made, fee invoicedCandidate startedOffline import, with a valueOnly with enough of them to learn from

Values make the ladder useful. If roughly one vacancy in four that the agency takes on ends in a placement, a vacancy is worth about a quarter of an average fee, and a shortlist sits between the two. Give each imported rung its value and the account can compare a desk that produces many cheap enquiries with one that produces fewer, dearer ones that turn into fees.

Getting CRM stages back into Google Ads

The thread between an ad click and a placement is the click identifier Google adds to the landing page address, the GCLID. Capture it in a hidden field on the employer form, store it against the contact or the vacancy in the CRM, and every later stage can be sent to Google Ads with that identifier and the time it happened. Google matches it to the original click, and the conversion appears against the search, the ad and the campaign that produced it.

Google's offline conversion FAQ sets the rules. Google keeps the click identifier for 90 days, so a conversion that happens more than 90 days after the click cannot be matched, and the FAQ asks for uploads at least daily. Enhanced conversions for leads, which match on a hashed email address or phone number instead, accept conversions up to 63 days old, and Google names qualified lead or converted lead as the best-practice goal for them. And Google's help on import errors says that from 15 June 2026 these uploads move to its Data Manager API and are blocked in the Google Ads API, so a CRM connector built on the old route needs checking before anyone trusts its silence.

The 90 days bite harder in recruitment than in most trades. A permanent placement can land months after the first call, often outside the window, which is exactly why the vacancy rung matters: it happens within days of the enquiry, it always falls inside the window, and it is the earliest point at which a consultant has judged the enquiry real.

When to move the bidding onto an imported stage

Do not move it on the day the import starts. The same Google FAQ advises uploading consistently for one to two conversion cycles before an imported action goes into the Conversions column, the one bidding reads. Until then, keep the employer form and qualifying calls primary and let vacancies arrive as secondary, so the report shows both and the bidding is not starved. When vacancies arrive every week and the counts match the CRM, swap them over: vacancies primary, the form secondary.

Placements usually stay in reporting. An agency that takes on a handful of vacancies a month from ads produces too few placements for any bid strategy to learn from, and pretending otherwise makes the bidding erratic. The placement line belongs in the monthly report, as cost per placement against the average fee, and in the decision about which desk gets next quarter's budget.

Check the counting before you judge it

Conversions arrive late, and an account read too early looks broken. On 9 October 2026 a removals company's account we run showed 18 clicks and no conversions at 18:27, and the owner asked whether tracking had failed. At 18:40 one primary conversion appeared, timed at 12:00, from the search removal companies near me; the quote request had been in the owner's inbox for six hours. GA4 showed it the next day. Imported CRM stages add their own delay, since Google says processing of imported conversions typically takes under 12 hours. Read the account the next morning, and say none reported yet rather than none.

The same account had a second fault. Its GA4 imports for call taps, WhatsApp and the form were hidden, so phone taps after an ad click were invisible in Google Ads; we set them to enabled secondary actions. A recruitment account collects actions from GA4, call tracking and the CRM, and any of them can sit hidden or misfiled. A tag that fires is not proof either: the same day, on a vehicle remapping business's site in Chester, the site's Content Security Policy stopped the browser sending the conversion at all, and no error reached Google.

The first week, in order

  1. Add a hidden click identifier field to the employer form and a matching field in the CRM, then send a real test enquiry through and confirm the identifier lands on the record.
  2. Create the imported conversion actions in Google Ads: vacancy taken on, shortlist sent, placement made, each with a value, each secondary to begin with.
  3. Agree with the consultants which CRM status means a vacancy you will work, so the import counts the same thing every week.
  4. Schedule the export daily, and check the first fortnight's imported counts against the CRM by hand.
  5. Open Goals, then Conversions, and confirm nothing the agency relies on is hidden, duplicated or marked primary by mistake.

How we build and run this for agencies, from the employer campaign to the placement line in the monthly report, is on the page for PPC for recruitment agencies.

If you would rather we looked at your own account, send your desks, your CRM and your average fee through the quote form and the plan comes back in writing.

Questions on this topic

Should CV uploads count as conversions in Google Ads?

Only as secondary actions, which are reported but ignored by bidding. Candidates upload far more readily than employers enquire, so a primary CV action teaches the account to buy job seekers.

How do placements from our CRM get into Google Ads?

Through offline conversion import. The employer form captures the click identifier Google adds to the landing page address, the CRM stores it, and each later stage is uploaded with that identifier and a timestamp so Google can match it to the click.

Our placements land months after the first enquiry. Can Google still match them?

Not if the click was more than 90 days earlier, which is how long Google keeps the click identifier. Import the vacancy you agreed to work, which happens within days, and keep placements as a reporting line.

Google Ads shows no conversions today, but an employer rang. Is tracking broken?

Probably not. Conversions often appear hours later, timed to when they happened. Check the next morning; if a real enquiry is still missing after a day, test the form and the call yourself.

What value should a vacancy have in Google Ads?

The average fee multiplied by the share of vacancies taken on that end in a placement. Work the share out from the CRM and revisit it every quarter.

Tell us what you spend. We reply with a fixed fee and the first three changes.

Your monthly spend, what a lead is worth to you and the address of the page your ads land on. Daniel Stoychev replies within one working day with the tier, the fee, what he would change first, and whether your sector and area are still free.