Skip to main content
Microsoft × Job SystemRun this yourself

How to reconcile Microsoft Ads against your job management system

This is the check we run first on every account, written out so you can run it without us. It takes about thirty minutes and needs two numbers: what Microsoft says it produced, and what your job management system actually shows. The gap between them is the only honest measure of whether your tracking works — and if it comes back small, you do not need us.

Free30 minutesNo obligation

Specific to Microsoft × Job System

Microsoft Ads vs completed jobs: msclkid into the job record

Capture msclkid on the booking form, store it on the job, and upload completed, invoiced jobs through Microsoft's offline conversion import. Compare against jobs completed in the same closed month. A small shortfall is normal; UET conversions far above completed jobs usually mean the goal counts form submits or calls rather than finished work.

Microsoft Ads search traffic for trades often comes from homeowners who search on a desktop and then pick up the phone, which makes it a reasonable fit for job-level reconciliation but a heavily phone-driven one. The join key is msclkid, appended by auto-tagging, captured in a hidden field on your request form and written to a custom field in ServiceTitan, Jobber or Housecall Pro. Calls join only if your call tracking passes the click ID or a campaign-specific number into the job.

If the account was built by importing campaigns from Google, the conversion goals may have arrived as form submissions with settings nobody revisited. Check each goal's counting, attribution window and view-through setting in Microsoft's own interface rather than assuming they mirror Google. Where the reporting allows it, compare by conversion date so a job quoted in one month and completed the next lands in the same period on both sides.

Use Microsoft's conversion goal reporting for the platform figure and your completed-jobs export by completion date for the other. Volume is usually low enough that matching each job on msclkid is practical, so every discrepancy can be traced individually. The most common mismatch is UET counting a booking-form submission, which lets cancelled and quoted-but-lost jobs inflate Microsoft's figure.

Microsoft × Job System · what breaks

Why Microsoft and your job management system disagree

  1. 01

    Quotes counted as won work

    A quote is a van, a person and an hour already spent. In trades the quote-to-job rate varies enormously by source, so counting quotes rewards the channels producing price-shoppers.

  2. 02

    Estimate value used instead of invoiced value

    Change orders, extras and variations move the final figure. The estimate is a forecast; the invoice is revenue.

  3. 03

    Repeat customers credited to the original click

    A maintenance customer booking twice a year for five years produces ten jobs against one click.

  4. 04

    Phone-first demand invisible

    Trades are overwhelmingly phone-driven. Without dynamic number insertion, most of the funnel is unmeasured.

Microsoft × Job System · the fix

What you get from this — Microsoft × Job System

  • A number instead of a suspicion

  • The likely cause, narrowed

  • A basis for deciding

Microsoft × Job System · architecture

What each side is actually counting — Microsoft × Job System

  1. 1

    What Microsoft counts

    msclkid inside the import window, a conversion goal name matching one in the account, a timestamp and a value.

  2. 2

    How Microsoft attributes it

    Microsoft's click identifier, appended when auto-tagging is enabled. It depends on the UET tag being present on the site — without UET, msclkid arrives in the URL and there's nothing consuming it, which is a common half-configured state on accounts imported from Google.

  3. 3

    The window it uses

    Check Microsoft's current offline import window and attribution settings directly. They resemble Google's closely enough to be assumed and differ enough to matter.

  4. 4

    What your job management system counts

    Jobs completed and invoiced, at the amount actually billed, found in ServiceTitan, Jobber, Housecall Pro, Simpro or whatever holds your job records.

  5. 5

    The filter that makes them comparable

    Status is complete and invoiced — not quoted, not scheduled, not in progress.

Microsoft × Job System · events

Reading the gap — Microsoft × Job System

15%+ platform higherUsually the wrong event entirely — the platform is counting quotes, cancelled jobs, or repeat customers as new acquisitions.
20%+ platform lowerUsually structural — the platform is missing jobs it produced — almost always phone calls with no number tracking.

Microsoft × Job System · diagnose

Diagnostic order — Microsoft × Job System

  1. 01

    Confirm both numbers cover the same period and channel

  2. 02

    Quotes counted as won work

    A quote is a van, a person and an hour already spent. In trades the quote-to-job rate varies enormously by source, so counting quotes rewards the channels producing price-shoppers.

  3. 03

    Estimate value used instead of invoiced value

    Change orders, extras and variations move the final figure. The estimate is a forecast; the invoice is revenue.

  4. 04

    Repeat customers credited to the original click

    A maintenance customer booking twice a year for five years produces ten jobs against one click.

  5. 05

    Read the upload's match rate and Microsoft's conversion goal diagnostics

    Almost every Microsoft account we open was imported from Google Ads, and the import copies campaign structure without copying the tracking. The result is a live account spending money with UET missing, msclkid unconsumed, or conversion goals pointing at pages that don't exist on the site any more.

Microsoft × Job System · prove

How to know you did it right — Microsoft × Job System

Source of truth

your job management system — completed jobs for a fully closed month

    Microsoft × Job System · free audit

    What we check in the free audit

    • Confirm both numbers cover the same period and channel
    • Quotes counted as won work
    • Estimate value used instead of invoiced value
    • Repeat customers credited to the original click
    • Read the upload's match rate and Microsoft's conversion goal diagnostics

    Checked against

    your job management system — completed jobs for a fully closed month

    Get my free conversion tracking audit

    Free30 minutesNo obligation

    Microsoft × Job System · when not to buy

    When the answer is that you do not need us — Microsoft × Job System

    • If almost all of your completed jobs come from a channel with no click behind it, no tracking work will reach them — and knowing that is worth more than a build.
    • If your Microsoft account is a straight import you've never separately configured, fix the account structure and UET installation first — offline import on top of an unconfigured account produces data nobody will trust.

    Microsoft × Job System · what we deliver

    The method, step by step — Microsoft × Job System

    • Pull what Microsoft reports

      The upload's match rate and microsoft's conversion goal diagnostics.

    • Pull what your job management system shows

      Export completed jobs by completion date for a closed month, with the invoiced amount, and separate first jobs from repeat customers.

    • Filter both to the same thing

      Status is complete and invoiced — not quoted, not scheduled, not in progress.

    • Compare per record, not on totals

    FAQ

    Microsoft × Job System questions, answered

    Mostly, by swapping gclid for msclkid and creating a matching offline conversion goal. Check Microsoft's own import window and file format rather than assuming they match Google's.

    Free · 30 min

    Found a gap between Microsoft and your job management system?

    Free30 minutesNo obligation