TL;DR: Roofing companies can buy ChatGPT Ads today through OpenAI’s self-serve Ads Manager. You can target down to ZIP codes, the minimum is $25 a day, and OpenAI suggests starting bids of $3 to $5 per click. Three things are different for roofers: storm timing (a weekly budget you raise after hail hits your ZIP codes), insurance wording (in Texas, an ad offering to handle the claim breaks state law) and measurement (count booked inspections and signed contracts, not clicks). Nobody has published ChatGPT Ads results for a single roofing company yet, so this guide treats it as a test: example hints and ads, storm budgets, insurance wording, and a 30-day plan with a 90-day check on signed jobs.
This is the roofing version of our ChatGPT Ads guide for home services, which explains the basics, the other ways homeowners reach contractors inside ChatGPT, and how it compares with Google for all trades. Every OpenAI setting below was re-checked in OpenAI’s Ads Manager help center on October 24, 2026. ChatGPT Ads is still labeled beta, so expect changes.
How a roofing ad shows up in ChatGPT
A ChatGPT ad is a card marked as an ad, shown below ChatGPT’s answer. It has your business name, logo, a title, a short description, an image and a link to your landing page (OpenAI ads basics). There are no keywords. OpenAI matches the ad to the conversation, using your ad, your landing page and short descriptions you write called context hints.

Three facts shape a roofing campaign more than anything else:
- The ad cannot change the answer. If a homeowner asks “who should I call about hail damage in Plano,” the businesses ChatGPT names in its answer come from organic signals like reviews, listings and your website. The ad sits under it. Our guide to showing up in ChatGPT and Google AI answers covers the organic side.
- Not everyone sees ads. OpenAI does not show them to Plus, Pro or Business plan users, or to accounts identified as under 18. Homeowners on the Free and Go plans see them.
- You will likely bid against Angi. In OpenAI’s Angi customer story (September 22, 2026), Angi says its pilot “began with a simple campaign setup across roughly 20 home service categories, including roofing, handyman, and HVAC,” and later added nearly 30 more. Its cost per lead fell 34% after it switched to conversion-optimized campaigns. That is a marketplace result published by OpenAI, not a roofer’s, but it shows roofing clicks already have a big buyer.
Roofing questions worth an ad group
Homeowners use ChatGPT to think through a roof problem before they call anyone: is this leak serious, is the damage from hail, repair or replace, which material. Each of those is a different need, and OpenAI’s context hints guide says to “consider separate ad groups when use cases require different messaging or landing pages.” For a roofer that usually means four or five ad groups, each with its own page:
| What the homeowner is working through | Ad group | Landing page | Priority |
|---|---|---|---|
| “Water stain on my ceiling after last night’s rain, is my roof leaking?” | Leak repair | Roof leak repair in [city], with how fast you can come out | High: urgent, ready to book |
| “How do I know if hail damaged my roof?” | Storm and hail inspection | Free roof inspection after hail or wind, with what the inspection includes | High in storm season |
| “Should I repair or replace a 20-year-old shingle roof?” | Full replacement | Roof replacement in [city], price ranges, financing, warranty | High ticket, longer decision |
| “Is a metal roof worth it compared with asphalt shingles?” | Metal or premium roofing | Metal roofing page with real project photos | Only if you install it |
| “Who replaces flat roofs on small commercial buildings?” | Commercial or flat roofs | Commercial roofing page | Separate campaign if you do commercial |
These prompts are our illustrative examples, not OpenAI data. Start with the two or three ad groups for the jobs you most want; gutters and small repairs can wait.
Context hints and ad copy for roofers
Each ad group gets a few context hints: plain sentences about what you offer, who it is for and when it helps. OpenAI’s own example for a local business is “After-hours residential plumbing in [city], with an $89 service-call fee for urgent repairs.” The roofing version works the same way: one idea per hint, with a real detail.
| Ad group | Example context hint |
|---|---|
| Leak repair | “Residential roof leak repair in Oklahoma City, usually inspected within 48 hours of the call” |
| Storm and hail inspection | “Free roof inspections after hail or wind storms for homeowners in Wichita, with photo reports” |
| Full replacement | “Asphalt shingle roof replacement for older homes in suburban Kansas City, with financing and a 10-year workmanship warranty” |
| Metal roofing | “Standing seam metal roofs for homeowners in the Dallas-Fort Worth area who want a roof that lasts longer than shingles” |
These are our examples, set in hail-belt cities; replace every detail with your real inspection time, warranty and cities. Two limits to know:
- Hints do not set your service area. They “cannot enforce geographic limits, schedules, or exclusions,” per OpenAI. Set your ZIP codes in the campaign’s location settings instead.
- Hints describe the job, not the customer you wish you had. OpenAI’s wording: “Wanting to reach a customer group does not, by itself, make your offering relevant.” A hint about “homeowners with good insurance” does not help; a hint about the inspection you do after hail does.
Ad titles and descriptions
OpenAI’s ad creation guide asks for “a high volume and diverse set of ads (multiple title/copy variations per offering)” and benefit-focused copy over catchy lines. Write three to five per ad group, each with a different angle. Our examples (swap in your city and real offer):
| Title | Description |
|---|---|
| Roof Leak Repair in Tulsa | Licensed local roofers. Inspection within 48 hours, written quote before any work. |
| Hail Damage? Free Roof Inspection | Photo report of every damaged area so you know what you are dealing with. Serving Amarillo. |
| Replace Your Roof Before Winter | Shingle and metal roofs in Oklahoma City. Clear pricing, financing options, 10-year workmanship warranty. |
Send each ad to the matching service page, not your homepage, and make sure your robots.txt does not block OAI-AdsBot, which visits submitted landing pages “to ensure it complies with our policies” (OpenAI crawler docs).
Insurance and storm wording: what not to say
OpenAI’s rules. Local services are one of the categories OpenAI currently accepts, per its ad policies (updated September 10, 2026). Every ad must be “truthful and not misleading, including unfounded claims about capabilities, pricing, outcomes, affiliations.” “Get a free roof paid by insurance” promises an outcome you do not control; “Free inspection and photo report after hail” says what you actually do. Insurance itself is a restricted financial category, so keep the ad about the roof, not about the policy.
State law. Texas is the clearest example. The Texas Department of Insurance says:
- “It’s also illegal in Texas for a contractor to offer to waive, rebate, or absorb a property policyholder’s deductible.”
- “Texas doesn’t allow a roofer or contractor to act as a public insurance adjuster” on a job they are doing, and “you can’t advertise that you would do so, either.” Problem examples include “offering to negotiate claim settlements or file a claim for the policyholder.”
- Texas rules count a website as an advertisement, so your landing page is covered too.
That means a hint or ad like “we handle your insurance claim for you” or “we cover your deductible” is a problem in Texas, the state with the most hail events in 2025. Our home services pillar used “help filing insurance claims” as a sample roofing hint; for Texas roofers, use “photo documentation you can share with your insurance company” instead. Other states have their own contractor and storm rules, so check yours before you write storm ads. This is not legal advice.
Storm season: budget and timing
Roofing demand moves with the weather, and hail is concentrated in a few states. NOAA’s Storm Prediction Center counted 5,432 hail events in 2025 (hailstones one inch or larger), per the Insurance Information Institute, and Texas alone had 902.
Chart: the 10 states with the most major hail events in 2025 (hailstones one inch or larger), from NOAA Storm Prediction Center data as published by the Insurance Information Institute. Texas had 902 of the 5,432 US events.
Timing varies by region. NOAA’s severe storms lab says Nebraska, Colorado and Wyoming usually have the most hailstorms, and the area where they meet averages seven to nine hail days a year. For southeast Wyoming and western Nebraska, the National Weather Service in Cheyenne puts the peak in June, with a second peak in late July. Your local NWS office has the pattern for your area.
How ChatGPT’s budget rules fit storm work
- The daily budget is a weekly average. OpenAI’s campaign guide says one day can spend up to twice the daily amount, and a Sunday to Saturday week stays within seven times it. A busy day after a storm can take more, but a campaign that spends its week early “may stop delivering until the next budget week.” Raise the budget after a storm instead of hoping the average covers it.
- Set up before the season, not the morning after. Verification, billing and ad review come before the first impression, and OpenAI does not publish how long review takes. Build the campaign off-season at the minimum, so after hail you only raise the budget and switch on the storm ad group.
- Use a separate campaign for each region. OpenAI recommends “separate campaigns for meaningfully different objectives, regions, or product categories.” If you work two metros, a storm in one should not drain the budget for the other.
- There is no hour-of-day schedule. We found no ad scheduling setting in OpenAI’s campaign documentation, and hints “cannot enforce” schedules. If nobody answers at night, do not promise “24/7 emergency tarping.”
Track booked inspections, not clicks
A click from ChatGPT is worth nothing until it becomes an inspection on your calendar. For roofing, the chain to track is: spend, clicks, calls and forms, inspections booked, inspections done, contracts signed, revenue. Insurance jobs can take weeks from inspection to signed contract, so judge the channel on booked inspections first and on signed jobs over a longer window.
- Calls: put a call tracking number on each ChatGPT landing page. Most roofing leads still call.
- Forms: install the OpenAI Pixel and, if your developer can, the Conversions API, and fire the conversion on a booked inspection, not on a page view. OpenAI’s measurement guide says to preserve the “oppref” click reference through redirects and use the same event ID when you send the same conversion both ways.
- Your CRM: add UTM parameters to the landing page URLs, and have whoever answers the phone set the lead source to “ChatGPT Ads” whenever the call comes in on that tracking number. If a homeowner fills in a form and calls later, merge the two into one lead so it is counted once. That source field is what lets you see, weeks later, which signed jobs started in ChatGPT.
- Spend lags: OpenAI says spend figures can lag 7 to 8 hours behind clicks, so a $0 on the morning after a storm does not mean nothing ran.
The two numbers that matter: cost per booked inspection (spend divided by inspections booked) and cost per signed job. Judge the first at 30 days. Judge the second on the leads from those 30 days, about 90 days later, because insurance jobs close slowly. Compare both with the same numbers from your Google Ads, Local Services Ads and any lead lists you buy, for the same period.
A 30-day test plan for a roofing company
The 1.5x threshold and the 60-second call rule are our working suggestions, not platform benchmarks. OpenAI has not published any for roofing.
ChatGPT Ads vs Google Local Services Ads for roofers
| ChatGPT Ads | Google Local Services Ads | Google Search Ads | |
|---|---|---|---|
| When it reaches the homeowner | While they work out what is wrong and what to do | When they search for a roofer | When they search for a roofer or roof service |
| How you target | Context hints + location | Service categories + location (Roofers is an eligible category) | Keywords + location |
| You pay | Per click or per 1,000 views | Per lead | Per click |
| Track record | New, no published roofer results | Years of contractor use | Years of contractor use |
| Best role | A test budget for early questions and storms | Core lead source | Core lead source |
Google’s Local Services Ads category list includes roofers, and Google is still where most “roofer near me” calls come from. ChatGPT reaches the homeowner a step earlier, while they are still asking whether the ceiling stain is a roof problem. That is the reason to test it, and to keep Google running while you do. If your Google campaigns are not profitable yet, fix those first; our roofing PPC management page explains how we run them.
Should your roofing company test ChatGPT Ads now?
| Test now if… | Wait if… |
|---|---|
| Google Ads or LSA already bring you profitable jobs | You cannot say what a lead from Google costs you |
| You track calls and booked inspections by source | All leads land in one inbox with no source |
| You have separate pages for repair, storm and replacement | Every ad would go to your homepage |
| You work in a hail or storm area and can answer the phone fast | You cannot handle more inspections in storm season |
| You can spend about $750 a month to learn | Every dollar has to pay back this month |
The bottom line
For a roofing company, ChatGPT Ads are a small, measurable test: ZIP-code targeting, $25 a day, and homeowners who are still working out what is wrong with their roof. Build two or three ad groups around real jobs, keep insurance promises out of the copy, set the campaign up before storm season, and judge it on booked inspections and signed contracts next to your Google numbers. For the general setup and the other trades, see our ChatGPT Ads guide for home services; if you sell to businesses, see the B2B version.
One more thing, unrelated to ads: we built a free AI social media post generator for roofing companies that writes storm-season, inspection and project posts for Facebook and Instagram. It is one of 21 trade generators on our free tools page.
About the sources: OpenAI settings come from its Ads Manager help center (campaigns, context hints) and ad policies, re-checked October 24, 2026. Hail figures are NOAA data via the Insurance Information Institute. Other sources are linked where each fact appears.