Google Ads conversion tracking for solar companies
Solar has one of the longest and highest-value consumer sales cycles there is: an enquiry, a phone qualification, an in-home or virtual consultation, a proposal, and a signed contract months later worth five figures. 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 solar companies, and what Google Ads specifically needs to accept it.
Free30 minutesNo obligation
Specific to Google Ads × Solar
Google Ads for solar: bid on attended consultations, not form fills
Track solar on Google Ads by importing an attended consultation as the primary conversion action against the gclid, gbraid or wbraid stored on the CRM lead at first enquiry. Send it from the CRM through offline conversion import with an estimated system value, and keep raw enquiries as a secondary, non-bidding action.
Solar search traffic mixes people pricing a system with people chasing a "$0 down" or "free panels" offer, and enquiry-optimized bidding cannot tell them apart. Mark the raw form fill and the call from the ad as secondary conversion actions so they still report, and make the CRM's consultation-attended status the only primary action in the solar campaigns. That one change moves Smart Bidding off the cheapest queries and onto the ones that survive a phone screen.
The 90-day import limit decides the rest. Many residential contracts sign after it closes, so a signed-contract upload will reject a share of rows as too old. Upload contracts anyway as a separate secondary action carrying the contract amount, because the rows that do match show which campaigns produce kilowatts rather than appointments. If leads come through Google lead form assets, check that the click ID in the webhook payload is written to the CRM; it is easy to keep the name and phone and drop the identifier.
Where it breaks for solar: the consultation is booked by a setter on the phone, often days later, and the record created at that moment is a fresh one without the gclid from the web form. Merge on phone or email before any import runs. And if your ads promote solar loans or financing terms, check whether Google's credit and financial services rules limit the audience targeting you can use before planning Customer Match lists around it.
Google Ads · Solar · what breaks
Why Google Ads under-reports for solar companies
- 01
Cheap enquiries that never qualify
A market full of them.
- 02
Signed contracts months after the click
Straining every attribution window.
- 03
Flat conversion values on five-figure contracts
Bidding blind to system size.
- 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 · Solar · the fix
What working looks like — Google Ads · Solar
Qualified appointments as the bidable event
Inside the window, and predictive.
Signed contracts fed back with value
So bidding chases real jobs.
Lead quality visible by channel
Which reorders the ranking sharply in this vertical.
Google Ads · Solar · architecture
How Google Ads and solar companies actually connect
- 1
The conversion in solar companies
Enquiry, phone qualification, consultation, proposal, contract signed. Qualification rates in solar vary enormously by channel, which is why the first stage is nearly worthless as a target.
- 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
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
Where it gets sent from
your CRM's record of signed contracts and installed systems.
- 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 · Solar · events
The conversion map for solar companies
Five stages across months, with a qualification rate that differs wildly between channels.
| Event | What it means here |
|---|---|
| Enquiry | Browser-side plus call tracking. High volume, low quality, poor target. |
| Phone qualification passed | Server-side from the CRM. The first meaningful signal. |
| Consultation attended | Server-side. The realistic optimization target. |
| Proposal issued | Server-side with estimated system value. |
| Contract signed | Server-side with real contract value, uploaded where the cycle fits the window. |
Google Ads · Solar · diagnose
Diagnostic order — Google Ads · Solar
- 01
Count records carrying gclid, gbraid and wbraid
- 02
Optimizing on raw enquiries
Qualification rates vary so much by channel that enquiry-optimized bidding reliably finds the worst traffic.
- 03
Click ID lost over a months-long cycle
Cookies expire; the CRM record doesn't, if you write to it.
- 04
Flat values on five-figure contracts
System size varies enough that value-based bidding is worth a lot here.
- 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 · Solar · prove
How it gets proven — Google Ads · Solar
Source of truth
your CRM's record of signed contracts and installed systems
- Click ID present on a live CRM record.
- Qualification outcome confirmed flowing back as a conversion.
- Signed contracts uploading with real contract value.
- Contracts reconciled against the CRM for a closed quarter.
- The match rate on the upload, not the success message read directly, not inferred from an upload succeeding.
Google Ads · Solar · free audit
What we check in the free audit
- Count records carrying gclid, gbraid and wbraid
- Optimizing on raw enquiries
- Click ID lost over a months-long cycle
- Flat values on five-figure contracts
- Read the match rate on the upload, not the success message
Checked against
your CRM's record of signed contracts and installed systems
Free30 minutesNo obligation
Google Ads · Solar · when not to buy
When you don't need this — Google Ads · Solar
- If Google Ads already reports conversions that reconcile against your crm's record of signed contracts and installed systems 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 · Solar · what we deliver
What gets built — Google Ads · Solar
Click ID captured and written to the CRM
It has to survive months.
Qualification recorded and sent
Phone screen outcome, not raw enquiry.
Site survey and consultation tracked
As staged conversions.
Signed contracts uploaded with system value
Offline conversion import.
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 CRM's record of signed contracts and installed systems. Miss it and we keep working at no cost.
From $400 · See packages
FAQ
Google Ads · Solar questions, answered
Yes, as a backstop. It matches the hashed email or phone from the form to the later CRM outcome when the gclid was lost, which happens often when setters re-key leads. Confirm its lookback in your account; it does not make a six-month contract matchable.
The attended consultation, set as the only primary goal for that campaign. Given the raw enquiry as a goal, Performance Max will find form fills across Display and YouTube placements that rarely pass qualification.
Because qualification rates differ hugely between channels. Enquiry-optimized bidding finds the cheapest leads, and in solar the cheapest leads are overwhelmingly unqualified.
Optimize on consultation attended, which sits inside the window and predicts contracts well. Use signed contracts for budget decisions rather than bidding.
The contract amount. System sizes vary enough that flat values push bidding toward the smallest jobs.
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.
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.
By reading the match rate on the upload, not the success message and reconciling against your CRM's record of signed contracts and installed systems. An upload that succeeds is not an upload that matched.
More on Google Ads · Solar
- SolarConversion tracking for solar, from enquiry to signed contract
- Google Ads · Home securityGoogle Ads conversion tracking for home security companies
- Google Ads · Pest controlGoogle Ads conversion tracking for pest control companies
RELATED GUIDES
More for solar companies: other angles on the same outcome
- SolarConversion tracking for solar, from enquiry to signed contract
- Google Ads · Siding contractorsGoogle Ads conversion tracking for siding contractors
- Google Ads · Deck buildersGoogle Ads conversion tracking for deck builders
- Google Ads · Quote → closed jobHow to track quote request to closed job for Google Ads
- Google Ads × Job SystemHow to reconcile Google Ads against your job management system
- Solar installersLocal Services Ads for solar installers: renters, canvassed homeowners and cost per installed system
- Google Ads · Self-storageGoogle Ads conversion tracking for self-storage facilities
- Google Ads · Masonry contractorsGoogle Ads conversion tracking for masonry contractors
Free · 30 min
Get Google Ads reporting what solar companies actually earn
Free30 minutesNo obligation
