Skip to main content
Google Ads · RecruitmentGoogle Ads × Recruitment

Google Ads conversion tracking for recruitment agencies

A recruitment agency runs two acquisition funnels that share a website and have nothing else in common: candidates applying for roles, and employers with vacancies to fill. What Google Ads adds on top of that is a mechanical requirement: gclid, gbraid and wbraid have to reach the record that holds the money, because Google Ads can only credit a conversion it can tie back to a click it recognizes. This page covers both halves — what a conversion is in recruitment agencies, and what Google Ads specifically needs to accept it.

Free30 minutesNo obligation

Specific to Google Ads × Recruitment

Google Ads for recruiters: candidate and employer searches split

On Google Ads, a recruitment agency should run two conversion actions: candidate applications as a secondary action, and the client vacancy enquiry or vacancy taken as primary. Store gclid, gbraid and wbraid on the ATS and CRM records, then upload placements with the invoiced fee through offline conversion import from the ATS.

Search is where the two sides of an agency collide hardest. A query like "warehouse jobs near me" and one like "temp staffing agency" can land on the same site, and if both submissions feed one conversion action, Smart Bidding will put the budget behind the job seeker every time. Set the candidate application as a secondary conversion action so it is recorded but not bid on, and give the client side its own campaigns with the employer enquiry, or better the vacancy taken in the CRM, as primary.

Google's personalized-ads policy for employment applies to the candidate side in the US and Canada: ads for job opportunities cannot be targeted by age, gender, parental status, marital status or ZIP code. Campaigns selling staffing services to employers are a different message, but confirm how each campaign in your account is classified rather than assuming. Either way, the upload should carry the identifier, the action name, a timestamp and the fee, and nothing about the candidate, the role or the salary.

The place this breaks is the application page. Many agencies send candidates from an ad to a hosted ATS apply page on a different domain, which never receives the gclid, so the placement exists and carries no click. Pass the identifier in the apply link or a hidden field. Contract placements usually close inside the 90-day window and are worth uploading with the fee; for retained search, upload the vacancy taken and keep the fee for reporting.

Google Ads · Recruitment · what breaks

Why Google Ads under-reports for recruitment agencies

  1. 01

    Candidates and clients counted as one conversion

    So bidding buys the cheap side.

  2. 02

    Applications valued equally

    Regardless of role or placement likelihood.

  3. 03

    Placements never fed back

    The only revenue event, invisible.

  4. 04

    Gclid, gbraid and wbraid never reaches the record

    Three parameters, not one. gclid is the long-standing identifier; gbraid and wbraid arrive on iOS traffic where privacy constraints prevent the usual one. Capture code that names only gclid loses a growing share, silently, and the loss is invisible until you audit how many records carry an identifier.

Google Ads · Recruitment · the fix

What working looks like — Google Ads · Recruitment

  • Two funnels, measured separately

    Candidate and client, distinct conversions.

  • Placements fed back with fee value

    So bidding chases revenue.

  • Client-side campaigns given their own signal

    Rather than competing with application volume.

Google Ads · Recruitment · architecture

How Google Ads and recruitment agencies actually connect

  1. 1

    The conversion in recruitment agencies

    Candidate side: application, interview, placement. Client side: enquiry, vacancy taken, placement filled. They meet only at the placement, which is where the fee is.

  2. 2

    Google Ads needs a click to match

    A click identifier inside the 90-day window, a conversion action name that matches one configured in the account, a conversion timestamp for when the outcome happened, and a value. Read the match rate after uploading — a file can upload perfectly and match nothing.

  3. 3

    The identifier: gclid, gbraid and wbraid

    Three parameters, not one. gclid is the long-standing identifier; gbraid and wbraid arrive on iOS traffic where privacy constraints prevent the usual one. Capture code that names only gclid loses a growing share, silently, and the loss is invisible until you audit how many records carry an identifier.

  4. 4

    Where it gets sent from

    your ATS record of placements and fees invoiced.

  5. 5

    Deduplication and window

    There's no shared event ID mechanism like Meta's. What matters instead is the counting setting on each conversion action — 'one' for lead-type conversions so a repeat submitter doesn't count three times, 'every' for ecommerce where a second purchase is a second sale. This is the single most common misconfiguration we find in Google Ads accounts. Google's offline import window is 90 days from the click. Anything older can't be matched, and rows outside it fail as unmatched without much explanation. Measure your median click-to-outcome time against that before designing anything.

Google Ads · Recruitment · events

The conversion map for recruitment agencies

Two funnels that share a website and meet only at the point revenue exists.

Candidate applicationBrowser-side. Very high volume, near-zero individual value.
Client vacancy enquiryBrowser-side plus call tracking. Low volume, high value.
Vacancy takenServer-side from the CRM. The client-side conversion worth bidding on.
Placement madeServer-side from the ATS, with the fee as the value.
Fee valueVaries enormously by role. Worth sending accurately.

Google Ads · Recruitment · diagnose

Diagnostic order — Google Ads · Recruitment

  1. 01

    Count records carrying gclid, gbraid and wbraid

  2. 02

    One blended conversion action

    Candidate volume overwhelms client value and bidding optimizes toward applications.

  3. 03

    No click ID in the ATS

    So placements can never be attributed to a campaign.

  4. 04

    Job board traffic counted as site conversions

    Inflating the website's apparent performance.

  5. 05

    Read the match rate on the upload, not the success message

    A conversion action that stops receiving hits is flagged as inactive 30 days later — by which point a month of budget has already run against a missing signal. Check the last-received date on every action monthly; it takes two minutes and it's the cheapest monitoring available.

Google Ads · Recruitment · prove

How it gets proven — Google Ads · Recruitment

Source of truth

your ATS record of placements and fees invoiced

  • Separate conversion actions confirmed for candidate and client sides.
  • Click ID present on live records in both systems.
  • Placements uploading with real fee values.
  • Placements reconciled against the ATS for a closed month.
  • The match rate on the upload, not the success message read directly, not inferred from an upload succeeding.

Google Ads · Recruitment · free audit

What we check in the free audit

  • Count records carrying gclid, gbraid and wbraid
  • One blended conversion action
  • No click ID in the ATS
  • Job board traffic counted as site conversions
  • Read the match rate on the upload, not the success message

Checked against

your ATS record of placements and fees invoiced

Get my free conversion tracking audit

Free30 minutesNo obligation

Google Ads · Recruitment · when not to buy

When you don't need this — Google Ads · Recruitment

  • If Google Ads already reports conversions that reconcile against your ats record of placements and fees invoiced within a few percent, this is working and there is nothing to buy.
  • Measure identifier coverage yourself first — pull your last hundred records and count how many carry gclid, gbraid and wbraid.
  • If you're running Performance Max exclusively and haven't separated your conversion actions, the import will work and the reporting won't tell you much. Worth sorting the account structure first.

Google Ads · Recruitment · what we deliver

What gets built — Google Ads · Recruitment

  • Separate conversion actions per side

    Candidate application, client vacancy enquiry.

  • Click ID written to the ATS and CRM

    Both sides.

  • Placements uploaded with fee value

    Offline conversion import.

  • Job board traffic separated from owned

    Two different channels.

  • Dispatch via Google's offline conversion import

    Uploaded against the click identifier, either through the Google Ads API or as a file. The upload is the easy part; what limits it is how many of your records carry an identifier at all. Verify the current column format against Google's own template — it has changed before.

Written guarantee

95%+ tracking accuracy

Measured against your ATS record of placements and fees invoiced. Miss it and we keep working at no cost.

Get my free conversion tracking audit

From $400 · See packages

FAQ

Google Ads · Recruitment questions, answered

The restrictions are aimed at ads for job opportunities. Ads selling recruitment services to businesses are a different thing, but check how Google classifies each campaign, because a campaign mixing both messages can be treated as an employment ad.

Free · 30 min

Get Google Ads reporting what recruitment agencies actually earn

Free30 minutesNo obligation