Google Ads guide

How to Set Up Google Ads Conversion Tracking for Roofing Companies

Set up Google Ads conversion tracking for a roofing company in the same order that a real opportunity moves through the business: define the action, install the approved measurement path, connect the event to a stable lead record, separate primary from diagnostic actions, and reconcile the result with calls, forms, inspections, estimates, and projects. Start with a qualified lead or booked inspection only when the company can state exactly what qualifies and can identify the record later.

Roofing accounts need more than a generic “contact us” event. A click can be an emergency leak, storm enquiry, replacement request, commercial project, warranty question, existing-customer call, or an out-of-area request. A form can be spam. An inspection can be cancelled. The setup must preserve those distinctions so Google Ads does not learn that the cheapest-to-trigger event is the best business outcome.

Google’s web conversion setup documentation, primary and secondary conversion guidance, and Google tag documentation describe the platform pieces. The roofing company must supply the business definitions, consent decisions, call-routing rules, CRM fields, inspection states, value model, and quality checks.

Decide what the roofing setup must prove

Before opening Google Ads or a tag manager, write down the outcome that the account is supposed to find. It may be a serviceable form, qualified connected call, booked inspection, qualified estimate, signed contract, completed project, or a later offline outcome. These are not interchangeable conversions. Each has a different trigger, source of truth, delay, owner, and value.

Use a short event contract for each proposed action:

  • what the event means in business language;
  • which system proves it happened;
  • the exact trigger and qualification rule;
  • the service type, service area, and customer-state conditions;
  • the stable lead, call, appointment, inspection, or project ID;
  • whether it is primary for bidding or secondary for diagnosis;
  • the consent and data-use condition;
  • who owns the event and how it will be tested; and
  • what change or rollback removes it safely.

Do not choose a call-duration threshold, project-value threshold, or storm rule simply because it sounds plausible. Use the roofing company’s documented qualification policy. If the business cannot prove a proposed event after it fires, treat it as a diagnostic action until the missing record or integration is fixed.

Separate roofing journeys before creating conversions

List the paths that the company actually serves: emergency leak, storm response, inspection, repair, maintenance, replacement, reroofing, commercial property, property manager, material enquiry, warranty support, financing, and insurance-related question. Mark residential and commercial paths separately when their sales cycles or qualification rules differ.

A storm caller may need triage before an inspection can be scheduled. A replacement estimate may remain open for weeks. A warranty caller may already be a customer and should not be treated as new acquisition. A question about an insurance claim must not be represented as coverage advice or a claim result. The tracking design should expose those differences rather than collapsing them into one “roofing lead” number.

Prepare the source systems and permissions

The cleanest setup starts with a source map, not a tag. Identify the website or landing-page platform, phone numbers and call-routing provider, form handler, booking or inspection scheduler, CRM, estimating system, project system, invoicing system, consent-management platform, tag manager, analytics property, and Google Ads account. Record who can change each system and how changes are logged.

Confirm that the company can connect an advertising interaction to a source record without exporting unnecessary private details. A lead ID, call ID, appointment ID, inspection ID, estimate ID, contract ID, or project ID is generally more useful than copying a full address or private call note into an ad platform. Keep the authoritative record in the system designed for it.

Build the event map

Use a table like this before implementation:

ActionTriggerSource of truthGoogle Ads roleLater match
Service-page viewPage rendersWeb analyticsSecondaryPage and session context
Call clickPhone link activatedBrowser eventSecondaryCall record if connected
Qualified callCall meets written ruleCall log or CRMPrimary candidateLead or call ID
Form acceptedRequired request is storedForm handler or CRMPrimary or secondaryLead ID
Inspection bookedScheduler confirms slotBooking systemPrimary candidateAppointment or inspection ID
Estimate acceptedEstimating system records approvalEstimate or CRMDownstreamEstimate or project ID
Contract signedApproved agreement existsContract or project systemOffline/downstreamContract or project ID
Project invoicedInvoice is issued or paid under the chosen ruleProject and finance systemsRevenue analysisProject and invoice IDs

The map prevents a common setup error: selecting the first browser event as the final business conversion. It also gives the implementer a place to record whether a phone event is only a click, a connected call, or a qualified opportunity.

Configure the Google Ads conversion actions

Create only the actions that have an agreed meaning. Google’s guidance on primary and secondary conversion actions is useful here: primary actions can inform bidding and reporting, while secondary actions can remain available for observation and diagnosis. A roofing account might make a serviceable form or qualified connected call primary and keep phone clicks, form starts, page views, and generic contact events secondary.

Choose names that reveal the state instead of hiding it. “Roofing — qualified call” and “Roofing — booked inspection” are more useful than “Lead 1” and “Conversion 2”. Describe the included service types, exclusions, source system, value treatment, and primary or secondary role in the action notes or project documentation.

Use the Google tag and the approved event path

Install the Google tag through the company’s approved site or tag-management process and keep the configuration in one governed place. Follow Google’s Google tag guidance for the current implementation pattern. Do not add duplicate tags to solve a reporting mismatch; first determine whether the page, consent state, trigger, or event mapping is wrong.

For a web form, fire the event only after the form handler accepts the request under the company’s validation rule. A button click is not necessarily a stored lead. For a booking, use the scheduler’s confirmed state rather than the first step of a multi-page form. For a call, distinguish a phone-link click from a connected call and from a qualified call.

Keep conversion values interpretable

If the action has a value, name what it represents: modeled qualified-lead value, booked-inspection value, approved estimate, signed-contract value, invoiced revenue, realized revenue, or contribution. Keep modeled values separate from actual project and invoice results. Record the assumptions and source of the model, including differences between repair, replacement, commercial work, travel, materials, financing, discounts, credits, cancellations, and no-shows.

Never make a guessed average roof-replacement value look like realized revenue. If the value model is not ready, a clearly documented non-revenue value or no value is safer than an unexplained number that trains bidding toward the wrong work.

Implement phone and form tracking carefully

Phone and form tracking often produce the first apparent conversion volume, so they need explicit boundaries. Keep a click-to-call action for diagnosing intent if useful, but use a connected or qualified-call action for bidding only when the call provider and CRM can prove the business condition. A missed call, voicemail, vendor call, existing-customer support call, duplicate call, and out-of-area call should not silently become the same acquisition outcome.

For forms, define the accepted state and preserve the original lead ID through validation, retry, CRM synchronization, qualification, inspection, estimate, and project stages. The same visitor may refresh, resubmit after an error, call after submitting, or book an inspection with a different system. The data model should relate those records without counting every interaction as a new qualified lead.

Add consent-aware behavior

Review consent choices, the privacy notice, retention period, access controls, and approved integrations before sending identifiers or lead fields. Google’s conversion measurement and data-use guidance should be read with the company’s own legal and privacy requirements. Document which event is allowed when consent is granted, declined, or changed, and whether the measurement path is reduced, delayed, or omitted.

Keep full addresses, payment details, private claim notes, and unnecessary household information out of advertising events. A broad area, service type, state, stable internal ID, value category, and channel may be enough to reconcile a lead without exposing details that do not help measurement.

Connect inspections and offline outcomes

An inspection, estimate, contract, or completed project is usually established outside the browser. Connect those states to the original lead or call record in the CRM or approved offline workflow. Keep the relationship explicit: one lead may have several calls, one appointment may be rescheduled, one estimate may become a contract, and one project may produce several invoices or credits.

Use the event that the company can reliably prove as the primary action. If a booked inspection is the first dependable milestone, make it primary and keep contract or project outcomes for later reconciliation until their timing and import process are dependable. If the business has a mature call qualification process, a qualified call may be primary while a booked inspection remains a later-stage action.

Keep status changes from creating new leads

Do not fire a new acquisition conversion when a lead is qualified, an inspection is rescheduled, an estimate is updated, a contract is signed, or an invoice is issued unless that action has its own deliberately defined role. Preserve the original ID and append the new state to the source record. A project system’s new identifier should link back to the acquisition record, not replace it.

If the company uses offline conversion imports or approved enhanced-conversion workflows, follow the current Google documentation and the company’s privacy controls. Google’s enhanced conversions best practices should not be treated as permission to send every CRM field. Use only the data, consent state, matching key, retention, and access path that the company has approved.

Test the complete roofing setup

Test in a controlled environment with approved test contacts before relying on the data for campaign decisions. A tag debugger can show whether an event request was attempted, but it cannot prove that a roofing lead was genuine, serviceable, contactable, or booked. Check the browser event against the source record and the expected Google Ads action.

Cover normal, storm, and failure cases

At minimum, test these paths separately:

  • service page view, phone-link click, connected call, missed call, voicemail, and callback;
  • accepted form, validation error, refresh, retry, duplicate request, and out-of-area request;
  • emergency storm enquiry, scheduled repair, replacement request, commercial enquiry, warranty contact, and existing-customer support;
  • inspection booking, reschedule, no-show, cancellation, estimate, contract, project, and invoice match; and
  • consent granted, consent declined, consent changed, mobile browser, desktop browser, after-hours routing, and regional service rules.

For each test, record the expected truth condition, event name, conversion role, source record, stable IDs, service type, area, storm or scheduled state, customer state, value treatment, consent result, and deduplication result. Keep the test evidence with the release or tag version that produced it.

Use Tag Assistant without confusing it with business QA

Google’s Tag Assistant help can help inspect tags and diagnose whether a configured event reaches the page or browser path. Use it alongside the call log, form handler, scheduler, CRM, and project records. If a browser event fires twice, check duplicate tags and retries. If it fires once but no lead exists, check validation, consent, storage, and integration. If a lead exists but Google Ads has no event, check the approved event path, identifiers, timing, and account action.

Reconcile the first reporting period

After launch, compare the Google Ads actions with source-system records for a stated period. Reconcile counts and samples rather than judging the setup by the Google Ads total alone. Investigate whether a difference comes from attribution, reporting delay, call routing, duplicate merging, missed calls, consent, browser behavior, time zones, service-area rules, storm demand, cancellation, no-show, repeat contact, or offline referral.

Segment the comparison by call versus form, emergency versus scheduled, repair versus replacement, residential versus commercial, service area, property type, campaign, device, landing page, inspection state, estimate state, and later contract or project state where approved. A mismatch only in storm calls needs a different investigation from a mismatch affecting every form.

Keep a change log

Record changes to phone numbers, call routing, forms, landing pages, consent banners, Google tags, tag-manager containers, CRM mappings, conversion action settings, campaign goals, scheduler behavior, staffing, service areas, storm coverage, inspection capacity, and value rules. Date the change and note the expected effect. Without a change log, a later spike can be misdiagnosed as an advertising improvement when the phone provider or form flow changed.

Do not add a second conversion tag to hide a discrepancy. Fix the source definition or the integration, keep the old action’s history understandable, and document any replacement or deprecation. If a conversion definition changes materially, treat it as a new measurement decision rather than silently comparing it with the old series.

Avoid common setup mistakes

  • Creating a conversion for every button click and then using all of them as bidding goals.
  • Firing a form conversion before the form handler accepts and stores the roofing request.
  • Treating a phone-link click as a connected or qualified call.
  • Counting missed calls, repeat callers, vendor contacts, support calls, or duplicates as new opportunities.
  • Making a booking-start event primary when only a confirmed inspection has business meaning.
  • Combining storm, repair, replacement, commercial, warranty, and insurance-related paths without separate status fields.
  • Replacing a stable lead ID with a new appointment, estimate, project, or invoice ID.
  • Calling a modeled value revenue or using a guessed roof-replacement average as the bidding value.
  • Sending unnecessary addresses, claim notes, payment data, or private call content.
  • Testing only a successful desktop form and ignoring consent, mobile, phone, cancellation, or out-of-area paths.
  • Changing campaigns or adding tags before identifying the source record that proves the mismatch.

Roofing Google Ads tracking setup checklist

Use this checklist before declaring the implementation ready:

  1. The primary outcome and each secondary diagnostic action have written definitions.
  2. The website, phone, form, scheduler, CRM, estimating, project, invoice, consent, tag, and Google Ads owners are identified.
  3. The event map states the trigger, truth condition, source system, role, stable ID, and rollback for every action.
  4. Service type, service area, property type, storm or scheduled status, new versus existing customer, and commercial or residential path are represented where needed.
  5. Phone click, connected call, qualified call, accepted form, booked inspection, estimate, contract, project, and invoice states are not conflated.
  6. Modeled, booked, approved, contracted, invoiced, realized, and contribution values are named and kept separate.
  7. Consent, privacy, retention, access, matching, and approved data-transfer rules are documented.
  8. Normal, storm, after-hours, mobile, duplicate, retry, cancellation, no-show, out-of-area, and existing-customer tests pass.
  9. Google Ads actions, phone records, forms, CRM leads, bookings, inspections, estimates, projects, and invoices can be reconciled.
  10. The change log, release version, test evidence, and rollback owner are stored where the operating team can use them.

For a practical account workflow, adz.so can help organize evidence and review steps around these definitions. It does not inspect roofs, provide insurance, legal, engineering, or licensed-contractor advice, dispatch crews, estimate or sign contracts, manage claims, or replace the company’s CRM, phone, booking, project, finance, privacy, or professional workflows.

Sources and further reading