- Storm-response roofing campaigns lose money because Google’s Smart Bidding (the automated bidder) keeps optimizing toward your evergreen conversion data when the storm cohort behaves nothing like it.
- The fix is structural, not tactical: create a dedicated storm conversion action so the bidder learns on the storm cohort only, not 12 months of evergreen data.
- Geo-target NOAA SPC hail swaths at the ZIP level, not metro DMAs. DMA targeting serves ads to neighborhoods that weren’t actually hit.
- Launch on Maximize Conversions with a daily cap for the first 72 hours, then move to tCPA once the new conversion action has roughly 30 conversions in 30 days (per Google’s bid strategy documentation).
- Cap daily budget at the contractor’s field-capacity ceiling: daily inspection slots times inspection-to-contract rate. Ads outrunning trucks tank contact rate and torch reviews.
A single hailstorm can move six figures in roofing revenue. The difference between a profitable storm campaign and a losing one is almost never the cost per click. It’s a structural decision made before the storm hits.
Most agencies launch a storm campaign inside an existing roofing Google Ads account, point it at the same conversion action evergreen is using, and crank up budget. CPCs look fine. Clicks come in. The campaign still underspends during the exact window where impression share matters most.

This is the roofing storm response lead generation paid search playbook we use at Elevarus. Pre-staged account structure, NOAA-derived geo-targets, isolated conversion actions, and a bid-strategy sequence that matches the post-storm claim window. Build it during the off-season. Flip it on within 24 hours of the storm.
Why Storm-Response Campaigns Underperform Even When Your CPCs Look Fine
Smart Bidding under-bids during storm events because it’s still being trained by your evergreen conversion history. When the storm campaign feeds the same conversion action that 12 months of evergreen data has been training, the bidder reads a blended conversion rate and quietly stops chasing impression share. That happens precisely when impression share is the only thing that matters.
Here’s the mechanism. Your evergreen roofing campaigns convert at one rate. During the post-storm claim window, the same keywords convert much higher because intent is compressed and homeowners are actively shopping three contractors at once. If both campaigns share a conversion action, tCPA (target cost-per-acquisition, Google’s bid strategy that aims for a set cost-per-lead) reads the pooled rate and concludes the campaign is hitting its target.
It doesn’t push harder. It doesn’t chase the auctions you’re losing. It coasts.
The diagnostic metric is Impression Share Lost (Budget) inside Google Ads. During a storm, if your storm campaign isn’t pegged near 100% impression share on tightly geo-targeted ZIPs, the bidder is leaving the auction. Post-storm contact rates run materially higher than evergreen baselines during the first two weeks. If your bidder isn’t reflecting that, it’s looking at the wrong data.
Google’s own Smart Bidding documentation confirms the bidder uses historical conversion data to set bids. That’s the feature working as designed. The problem is what “historical” means when your storm campaign is 48 hours old and your account is 5 years old.
None of the top-ranking pages on this topic mention this. They all talk about ZIP targeting. None of them talk about the conversion action.
How to Pre-Stage a Storm-Trigger Account Structure Before the Next Hailstorm Hits
A pre-staged storm-trigger account is a paused, ready-to-launch campaign with its own isolated conversion action, its own ads, and its own Location Group placeholder. Built during the off-season so you can flip it on within hours, not days. The structural work is what makes the campaign profitable. Everything else is execution.
Here’s what we build before the season starts:
- A paused shadow campaign in the existing roofing account, with ad groups split by intent: “hail damage inspection,” “emergency tarping,” “insurance claim roof.”
- Responsive Search Ads pre-written for hail and named-storm scenarios. Two ad variations per ad group. Storm name and city as dynamic insertions where appropriate.
- A dedicated storm conversion action created in advance. Same event (form fill or call), different action ID. This is the most important step.
- Location Group placeholders ready to accept a ZIP list. Configured at “presence: people in your targeted locations,” not “presence or interest.” Storm intent is local.
- Negative keyword lists scoped for storm: “DIY,” “how to,” “insurance claim denied,” anything that signals research instead of buying.
- A landing page variant that speaks to the storm event with copy focused on inspection, expertise, and turnaround.
The dedicated conversion action is the highest-leverage decision in this playbook. By feeding the storm campaign a separate action ID, you keep its conversion data pooled only with itself. The bidder learns on the storm cohort cleanly. When the campaign retires, the conversion action retires with it. Your evergreen learning stays untouched.
The hour-0 to hour-24 launch checklist:
- NOAA SPC confirms the hail swath. Pull the shapefile.
- Convert the swath to a ZIP list. Upload to the Location Group.
- Unpause the storm campaign. Bid strategy: Maximize Conversions with a daily cap.
- Set the daily cap at the contractor’s field-capacity ceiling (more on this below).
- Confirm the campaign is reporting to the isolated conversion action, not the shared one.
- Confirm calls route to a live answering service or a CSR who can book inspections same-day.
This takes 90 minutes if the pre-staging was done. It takes 3 days if it wasn’t. By hour 72 you’ve missed the front half of the window.
How to Turn NOAA SPC Hail Swaths Into a ZIP-Level Geo-Target in Google Ads
NOAA’s Storm Prediction Center publishes hail reports and swath data after every severe weather event. You can convert those swaths into a ZIP-level geo-target by intersecting the polygons with US Census ZIP boundaries and uploading the resulting list as a Location Group in Google Ads. The workflow takes 30 to 45 minutes once you’ve done it twice.
The data sources:
- NOAA SPC Storm Reports at spc.noaa.gov/climo for daily hail and wind reports.
- NOAA NCEI Storm Events Database for confirmed event polygons.
- US Census Bureau ZCTA shapefiles for ZIP code boundaries (technically ZIP Code Tabulation Areas, but close enough for ad targeting).
The workflow:
- Pull the hail polygon for the event date from NOAA SPC or a paid weather data vendor (HailTrace, Interactive Hail Maps).
- Open the polygon in QGIS (free) or any GIS tool that can intersect shapefiles.
- Intersect the hail polygon with the Census ZCTA layer to get a list of ZIPs that fall inside the damage corridor.
- Export the ZIP list as CSV.
- In Google Ads, go to Tools, Shared Library, Location Groups, create from CSV. Paste your ZIPs.
- Attach the Location Group to your storm campaign.
Why this matters: metro DMA targeting (Designated Market Area, Nielsen’s TV market definition) wastes meaningful spend on neighborhoods that weren’t hit. A hailstorm tracking through northwest Dallas doesn’t damage Plano, and a DMA-level target serves ads to both. ZIP-level targeting aligned to the actual swath puts your budget where the damage is, and where the contact rate justifies the bid.
For named storms (tropical systems, derechos), the same workflow applies, but the polygon comes from the National Hurricane Center or a wind-field shapefile. Same principle. Target where the damage occurred, not where the news anchor stood.
What Bid Strategy to Launch With in Hour 1, Day 3, and Day 10 of the Claim Window
Launch on Maximize Conversions with a daily budget cap for the first 72 hours. Switch to tCPA once the isolated conversion action has accumulated enough conversions to set a target. Begin tapering budget once high-intent search volume drops. Bid strategy is a sequence, not a setting.
Here’s why the sequence matters.
Hours 0 to 72: Maximize Conversions with a daily cap. Your storm campaign has zero conversion history on its isolated conversion action. tCPA will starve it because Smart Bidding generally needs roughly 30 conversions in 30 days to set a reliable target (a widely used practitioner threshold, also referenced in Google’s bid strategy guidance). Maximize Conversions lets the bidder spend aggressively against intent signals without waiting for a target. The daily cap is your governor. Set it at the field-capacity ceiling, not the media budget.
Days 4 to 10: Switch to tCPA. Once the storm cohort hits the 30-conversion threshold on the isolated action, the bidder has enough signal to optimize toward a target CPL. Set the target at your maximum profitable CPL: gross profit per signed contract times lead-to-contract rate. For most insurance-eligible roof replacements, that math supports a CPL meaningfully higher than evergreen targets. The bidder will push for impression share on the queries that close.
Days 11 onward: Taper budget. Homeowner search for “roof inspection” and “hail damage” peaks days 3 to 7 post-event, not day 1. Most homeowners wait for visible interior damage or neighbor activity before searching. Once volume drops, drop daily budget by 30%, then another 30% a few days later. Watch impression share and conversion volume. If both hold, taper slower.
Once volume thins out, retire the campaign. Pause the storm conversion action. The evergreen account, which was running this whole time on its own conversion action, is unaffected. That’s the point.
When to Deliberately Throttle Spend: The Field-Capacity Ceiling Most Agencies Ignore
Paid search budget should be capped by the contractor’s daily inspection slots, not by media budget alone. Ads outrunning trucks send leads to voicemail, collapse contact rate, and generate 1-star reviews that follow the contractor into the next storm season. This is the operational governor most agencies skip.
The formula:
Field capacity ceiling = daily inspection slots × inspection-to-contract rate
If the contractor can run 12 inspections a day and converts 40% of inspections to signed contracts, daily lead capacity is roughly 30 leads. Past that, every additional lead either rings out or sits in a voicemail queue. The next call is to a competitor.
The consequences of ignoring the ceiling:
- Contact rate collapses. When CSR call volume spikes overnight, the unanswered rate spikes with it. Lead Response Management research has long shown response time inside five minutes dramatically outperforms anything longer. Storm leads are even more sensitive because the homeowner is calling three contractors simultaneously.
- Smart Bidding learns the wrong thing. Unanswered calls don’t convert. The bidder sees those clicks as failures and pulls back on the exact queries that were working.
- Reviews tank. Homeowners who can’t reach the contractor leave bad reviews for non-responsiveness. Those reviews surface for the next storm.
The fix is operational, not algorithmic. Before launching:
- Confirm CSR coverage extends to evenings and weekends during the claim window.
- Route calls through a tracking platform like CallRail with overflow to a live answering service.
- Use our HVAC call tracking framework as a template. The duration thresholds and routing logic translate directly to roofing.
- Cap daily ad budget at the field-capacity ceiling. Refuse to lift it until inspection capacity grows.
One note on ad copy. Most states have rules about how roofing contractors can talk about insurance deductibles and claim payouts. Keep ad copy focused on inspection, expertise, and turnaround time. Let the contractor’s intake process handle the financial conversation. Talk to an actual attorney before finalizing claims that touch deductibles or claim handling.
Frequently Asked Questions
How should a roofing contractor structure Google Ads campaigns in the first 72 hours after a hailstorm?
Launch a pre-staged storm campaign with an isolated conversion action, NOAA-derived ZIP targeting, and Maximize Conversions bidding capped at the contractor’s daily inspection capacity. The structural work (separate conversion action, dedicated campaign, swath-aligned geo) must be built before the storm hits. Assembling it during the live event burns the first 48 hours, which is half the high-intent window.
Why does Smart Bidding under-bid on roofing storm campaigns even when CPCs look normal?
Smart Bidding pools storm-cohort conversions with months of pre-storm data, so the bidder reads a blended conversion rate and stops pushing for impression share. The storm window converts at a much higher rate than evergreen, but the bidder can’t see the difference if both feed the same conversion action. The fix is creating a dedicated storm conversion action so the bidder learns on the cohort cleanly.
Should I add storm keywords to my existing roofing campaign or build a separate storm-response campaign?
Build a separate storm-response campaign with its own conversion action. Adding storm keywords to an evergreen campaign contaminates Smart Bidding’s learning in both directions: storm conversions inflate evergreen CVR during the event, and evergreen conversions dilute storm CVR after the event. Isolation protects both campaigns and lets each bidder optimize on the right data.
How do I pace a storm-response paid search budget across the post-storm window?
Front-load lightly, peak in days 4 to 10, and taper after. Homeowner search for “roof inspection” and “hail damage” peaks days 3 to 7 post-event because most homeowners wait for visible damage or neighbor activity before searching. Spending 40% of budget on day 1 puts money against curiosity, not buyer intent.
What conversion action should the storm campaign optimize toward, form fill, inspection booked, or signed contract?
Optimize toward inspection booked when call tracking and CRM data make that signal reliable within 24 to 48 hours. Form fill is too noisy because half of storm form-fills are research. Signed contract is too slow. The bidder needs signal density during a short cohort, and signed contracts often lag three weeks or more. Inspection booked is the right midpoint.
When should I turn the storm campaign off?
Retire the campaign once daily search volume drops below the threshold where the isolated conversion action gets enough signal to bid efficiently, or earlier if the contractor’s backlog exceeds 2 weeks of inspections. Running it longer trains the bidder on a thinning cohort and wastes spend on lower-intent queries. Pause the conversion action with the campaign so it doesn’t keep collecting data after the event.
We’re media buyers and lead-gen operators sharing what we see in the field. This isn’t legal advice. Storm-response advertising rules vary by state. Talk to an actual attorney before finalizing ad copy or landing page claims that touch insurance deductibles or claim handling.
If your roofing account isn’t pre-staged for the next storm, the structural work takes about a week, and it pays for itself the first time hail hits a target market. Book a free strategy call with Elevarus and we’ll audit your current setup, build the storm-trigger account structure, and have your isolated conversion action and NOAA workflow ready before the next named event.