Ad Guides · Roofing × Instagram

Instagram ads for roofing companies

The app reaches fewer of the same homeowners, not different ones — so buy the thing it is actually good for. Facebook buys memory. Instagram buys evidence, and evidence is the only part of a roofing pitch that survives a year of waiting.

The honest opening for this page is a concession, and it is more useful than the flattering version. Instagram is the worst platform fit of any trade on this site. Pew's November 2025 survey puts it at 40% of 50- to 64-year-olds and 19% of over-65s against Facebook's 74% and 57%, and an asphalt roof reaches the end of its life at around twenty years, which means the household most likely to need one is the household that has lived in the same house for twenty years. Every other Instagram guide in this cluster can say it reaches a different buyer. Roofing has to say it reaches fewer of the same one.

So the question this page answers is not whether to be here — with Advantage+ placements on, which is what almost every contractor runs, you already are, and the app split is a delivery outcome rather than a decision you made. The question is what to brief. And the answer follows from the one thing this app is genuinely better at: this trade's real problem is not that homeowners have not heard of you, it is that they cannot verify anything. They cannot see the roof, cannot evaluate a crew, cannot tell a good estimate from an expensive one, and cannot tell you from the person who knocked on the door after the hail. On Facebook the adversary is that person on the porch and the money buys memory. Here the adversary is the identical claim — every roofer in the feed says fast, certified, honest, twenty-five years — and the money buys evidence.

There is a second reason to be specific about it, and it comes out of the ten audience briefs behind the ads below. They are not different people from the Facebook page's readers. They are the same households caught earlier in the same tenure: two winters after boarding out the attic, one ice dam in, one deferred winter, the renovation money already spent on the roof. The Facebook guide's own finding is that the gap between an inspection and a signature in this trade is frequently a year. This app buys the top of that cycle, and the only part of a roofing pitch that survives a year of waiting is an artefact — a photograph taken from a staked position, a card listing what you will never do, a quote that foots.

What follows is which of the six objectives to buy on an app with no way to capture demand, which offers are worth putting here and which belong on the other page, which targeting levers change (fewer than you would think, and not the ones the HVAC page changes), whether a click should become a page, a form, a call or a message thread, how to brief a before-and-after that proves anything at all, and the budget arithmetic that makes an Instagram-only ad set the worst structure available in this trade. The ads are real output rather than mockups drawn for the argument: seven of the ten on the roofing Instagram examples page, published exactly as generated, for contractors that do not exist. Every price is invented — $189 for an attic survey, $285 for a night tarp, $27,375 for a re-roof — and so are most of the credential figures. Three of them appear twice on that page under two different invented companies, which is a thing worth knowing before you publish ten generated ads side by side.

Two things this page is not. It is not legal advice, and that sentence is doing real work here rather than covering a base: roofing's binding constraints are state contractor and insurance statutes rather than Meta's policies, they vary by state, they change, and nothing about them softens because the render went to a 4:5 Instagram feed image. Meta approves the ads that break them here exactly as it does on Facebook. The correct next step for anything in the insurance section is your own counsel and your state's department of insurance. And it is not a benchmark report. The arithmetic that matters is in the budget section and you do it with your own numbers.

Generate Instagram ads for your roofing company

Paste your site and best-in-slot reads it the way the invented contractors above were read — services, service area, positioning — then writes the concepts, renders the images and drafts the copy. Free to start, no card.

What you are buying here, and what you are giving up

Start with the concession, because everything else on this page is built on it. Pew's November 2025 survey puts Instagram at 40% of 50- to 64-year-olds and 19% of over-65s, against Facebook's 74% and 57%. Roof age tracks tenure and tenure tracks the age of the occupant more reliably in this trade than in any other on this site, so on the band that actually owns twenty-year-old roofs this app has roughly half Facebook's reach in one direction and a third of it in the other. That is not a reason to skip it. It is a reason to stop expecting it to do the Facebook page's job and to buy the thing it is good at instead.

The next thing to establish is that the argument the HVAC pair makes for Instagram is unavailable to roofing, because it is the obvious argument and it does not survive contact with this trade. That page's case is sequence: the format selects small photographable jobs, a $340 duct audit is how a household acquires a contractor, and the replacement a decade later goes to whoever did the small job — so what the app is really buying is a customer record. Roofing has no cheap half. The cheapest thing in the offer table below is a $189 attic survey and everything else needs a truck, a ladder and somebody on the roof. Worse, the Facebook guide in this pair has already established that a roof is bought roughly twice in a lifetime, which makes the customer list mostly an exclusion. Both of the usual defences of an Instagram budget — it reaches a different buyer, it builds a list that pays out later — are gone at once.

What is left is the format, and in this trade the format is worth more than it sounds, because roofing's actual problem is verification. A homeowner cannot see their own roof. They cannot evaluate a crew, cannot tell a thorough estimate from an expensive one, and after a storm they cannot tell the local company from the one with the out-of-state plate. Every roofer in the feed makes the identical claim. What this app can carry that a paragraph cannot is the artefact that settles it: a pair of frames shot from the same staked position eleven days apart with the dates printed on them, a membrane rolled out across bare deck before the shingle pallet opens, a card listing the three things this contractor will never say, an itemised quote with a number on it. Facebook buys memory. Instagram buys evidence, and evidence is the only part of a roofing pitch that survives the year most of these decisions actually take.

The batch behind this page is also the proof that the evidence is hard to make rather than automatic, which is why the creative section below is the longest one. The before-and-after was briefed with the camera position, the hour and the light pinned, and it came back genuinely matched: the roof geometry, the gable, the tree and the valley all register, and the timestamps read 2024-05-06 07:42 and 2024-05-17 07:41 — eleven days apart to the day and one minute apart in the hour, agreeing exactly with a headline that says eleven days. That registration is the entire evidentiary content of a before-and-after. And then the thing nobody pinned drifted: only the front plane was re-roofed, the slope across the valley is the same weathered brown in both frames, and the fascia, gutter and rake trim were replaced without being asked for, under copy reading that nothing else changed except the roof. Pin the scope as tightly as you pin the camera.

Now the part that does not invert at all, and it is the whole spine of the Facebook guide carried across unchanged. The two sentences this trade runs more than any others are prohibited advertising for a contractor in a growing list of states. Texas Business and Commerce Code section 27.02(c) makes advertising to pay, waive, absorb, rebate or credit a homeowner's deductible an offence, a Class B misdemeanour under 27.02(d). Texas Insurance Code section 4102.163(a) forbids a contractor to act as a public adjuster or, in the statute's own verb, to advertise to adjust claims on property they are working on. Minnesota Statutes section 325E.66 subdivision 1 bars both and gives the homeowner and the insurer a right to sue. None of those statutes mentions a platform. They attach to what the advertisement says, so a claim ad is exactly as unlawful in a 4:5 Instagram feed image as in a Facebook one, and Meta approves both without comment here as well.

Storm work is the one place where this app can do something the HVAC Instagram page explicitly said its trade could not. That page ran no emergency ad at all, on the correct grounds that nobody opens Instagram to find a contractor while the house is at 88 degrees. Roofing's emergency is different in kind: a severe storm is announced hours in advance and arrives across a whole neighbourhood at once, so an ad in this feed on the evening of a warning is not capturing demand — it is being the name already in the phone when the demand arrives two hours later. That is a real job for this app, and it is also the single most dangerous thing on it, because Meta's standard on commercial exploitation of crises prohibits content that exploits crises for commercial purposes and names natural disasters as its example. Our own storm ad is the cautionary case and its note is in the creative section: briefed with no countdown and no scare copy, it came back with a last-slot countdown anyway.

Then the specs, where the received wisdom is backwards. Meta's ads guide recommends about 40 characters of headline for an Instagram Feed image ad against Facebook Feed's 27, so the app everyone treats as the wordy one is the more generous of the two, with primary text about 125. The image is 4:5 at 1440 by 1800, identical to Facebook Feed, so one export serves both — but the aspect-ratio tolerance is 1% here against 3% there and the minimum width is 500 against 600, which means a crop a few pixels out of true passes on one app and fails on the other from the same file. There are four image placements here against Facebook's nine, and none of the missing five is a search result, a right-hand column or a Marketplace listing. Do not buy 1.91:1: nothing on this app is built to want it, which is why the Browse batch contains none.

Measured against that batch rather than assumed, and re-counted for this page rather than copied from the Browse note: 49 of the 50 headlines fit 40 and seven fit Facebook's 27, which is an unusually high rate of short headlines — across all seven Instagram batches published here, only 21 of 350 fit 27. Of the ten lead headlines, nine fit 40 and two fit 27. None of the 50 primary texts fits 125; they run 208 to 559 characters, and across all fourteen batches the count is now 700 of 700 over the recommendation, the shortest ever written being 200 characters. Six of ten descriptions fit 30, in a field this feed does not show and Marketplace does. Seven of the ten exports are 4:5 and three are 9:16 for Stories and Reels, and every one of them was re-framed off a square draft — one came back padded, which is what the export check in the creative rules is for.

Which objective to buy

Ads Manager offers the same six objectives here as anywhere — Awareness, Traffic, Engagement, Leads, App promotion and Sales — and this page differs from its Facebook twin on two of them. Traffic becomes the default rather than Leads, and Awareness, which the Facebook page argues for harder than any other guide in this cluster, is the objective that transfers worst.

Traffic first. The reason is the same missing surface the HVAC Instagram page found, plus a second reason that page did not have. There are no search results here, no right-hand column and no Marketplace, so nobody arrives with a problem and every ad interrupts. That alone would push toward the read rather than the ask. What roofing adds is the size of the ask: even the cheapest transaction in this trade needs somebody to climb a ladder, and the thing most of these ads are actually arguing is a specification the reader has never heard of — a nailing pattern, an ice-and-water membrane at the eaves, what a layover hides, why a two-frame before-and-after proves nothing. Asking a scrolling stranger for an appointment before any of that is asking too early, and the click is cheaper than the lead. The Browse batch split five Traffic, four Leads and one Awareness, the mirror image of the Facebook batch's five, four and one.

Leads is still a real answer for four ads in ten, and it earns its place on a narrower test than on the Facebook page: the offer has to be priced, bookable and need no explanation. A $189 attic survey passes. A flat $285 night tarp passes. A five-figure replacement does not convert from a feed whatever button you put on it, and pinning Leads to it produces a form fill from somebody who wanted a free thing.

Awareness is where this page and its twin genuinely part company, and it is worth being explicit because the Facebook guide makes an unusually strong case for it. That case is the door-knocker: a competitor will physically be on the porch within seventy-two hours of the hail, no bid wins against a doorbell, and the only defence is having been heard of first. It is a memory buy, and a memory buy is worth exactly what its reach is worth. On the bands that get door-knocked, this app has a third of the other one's reach. So the objective the Facebook page argues hardest for is the one that transfers worst — not because the argument is wrong, but because it is the argument that depends most directly on the number this page opened by conceding. There is one Awareness ad in the batch and it is the strongest ad on the page; it is still the smallest line in the budget here.

Sales is a flat no and roofing states it more absolutely than any other page in this cluster. Both roofing batches came back with no Sales ad, and so did both dentist batches, both real-estate ones and gym's Facebook one — seven of the fourteen published here have none, so that is not peculiar to this trade. What is peculiar is how far it reaches: a practice can still sell a whitening kit and an agent a report, and roofing has nothing at all a homeowner buys without somebody physically going up a ladder first.

  • TrafficDefault

    The default here where Leads is the default on the Facebook page, for two reasons rather than one. There is no surface on this app that captures demand, so every reader is mid-scroll; and most of what this trade has to say is a specification the reader has never heard of. Buy the read, put the price and the form at the bottom of that page, and retarget the readers — that pool is what the warm stage of the funnel runs on.

  • LeadsSometimes

    Four of the ten in the Browse batch, and the test is narrower than on the Facebook page: priced, bookable, needing no explanation. The $189 attic survey and the flat $285 night tarp both pass. Use the Higher intent Instant Form type rather than More volume, for the same reason as everywhere else — a pre-filled lead is a name and a number the person never looked at, and you will be ringing back into a queue.

  • AwarenessSometimes

    The objective the Facebook guide argues hardest for and the one that transfers worst here, because a memory buy against the door-knocker is worth what its reach is worth and this app has a third of the reach on the bands that get knocked on. Still worth a line, spent on the shop rather than an offer: the permit, the payroll crew, the owner who does not knock. Judge it on whether calls in month two mention it.

  • EngagementRarely

    It optimises for the cheapest available reaction, and after a storm the cheapest reaction in a local feed is an argument about somebody's claim conducted in public under your ad. There is a second hazard on this app: engagement buys direct messages, and a message thread on a storm night is not a dispatch system. Build the retargeting pool with Traffic instead.

  • SalesNo

    There is no checkout in this trade. Both roofing batches are Sales-free, as are both dentist batches, both real-estate ones and gym's Facebook one — seven of the fourteen here. The difference is that a practice can sell a whitening kit and an agent a report, while roofing's cheapest transaction is a $285 tarp that still needs a truck, a ladder and a person on the roof. A deposit taken online is a lead with a card attached.

  • App promotionNo

    A roof is bought roughly twice in a lifetime. Paying a stranger's install cost to deliver a booking screen for a purchase they make every twenty years is the most expensive lead in this guide, and it is worse here than on Facebook because this app's strongest age band is substantially renters.

What to advertise here, and what to leave on the other page

This is not the Facebook table with different pictures, and the sorting rule is the most useful thing on the page. An offer belongs here if its proof is an artefact you can photograph, and on the other page if the reader has to take it on trust. That is why the warranty transfer, the certified-installer argument and the financed replacement are missing below: they are all claims about a document somebody else holds, and a feed is the worst place in the world to ask a stranger to believe one. What is here instead is the attic photograph, the membrane on bare deck, the fixed-point pair, the never-list card, the quote that foots and the timestamped night tarp.

Each row pins the same four decisions as its twin: who the offer is actually for, which angle family argues it best — every one is a page in the angle library — which objective buys it, and, where the batch has one, a finished ad showing the whole thing assembled. Ten of the twelve have one, which is every ad in the batch used exactly once. Two do not, and an absence is more honest than borrowing a neighbouring ad.

One row needs reading before the rest, because it is the reason the Facebook guide's four-word rule exists and it is the best result this cluster has produced. The claim-work row below is the same offer that failed on the Facebook page. Briefed neutrally there, it attacked deductible waiving by name and then promised to file supplements, stated what the carrier covers, and signed off with a four-word description line handing the whole claim over — the famous violation avoided and the obscure one walked straight into. That page diagnosed it and prescribed a fix: document, meet, invoice, never negotiate. This batch wrote that boundary into the brief, and it held across all eleven artefacts, with the rendered card naming both prohibitions correctly and the fifth primary text stating the line outright. One brief variable flipped the compliance outcome. The disclosure is a property of the brief, not of the model.

Identity and Emotion is on this page as it is on the Facebook one, and for the same closed rule rather than a preference: define the audience by a decision rather than a demographic. The row below is aimed at people who spent the renovation money on the roof, and what came back is second person, frankly emotional, and asserts nothing about anybody — the family voted kitchen, you voted ice-and-water membrane. Meta's personal attributes policy is a list of attributes, and a renovation you chose to do is not on it. An identity ad is dangerous when it tells the reader what they are and workable when it tells them what they did.

The attic survey, photographed

Leads
Who it is for.
Households who boarded the attic out for storage a couple of winters ago and have not been up there with a flashlight since.
Angle.
Problem & PainThe cheapest first transaction this category has, in a trade whose usual opening ask is five figures, and Hidden Problem is the only family that can carry a defect the reader cannot see and does not believe in. It belongs on this app rather than the other because the argument is a photograph: a stain blooming across the sheathing with the nail shanks pricking through, taken by somebody lying between the storage boxes. Define the reader by the decision — they finished the attic — and the ad stops reaching for a fact about them.
Example adYour Attic Hasn't Been CheckedSee the brief →

Tear-off and replacement inside one day

Traffic
Who it is for.
Homeowners who have already put the job off through one winter, mostly because they are dreading a week of skips, noise and nails in the drive.
Angle.
Benefit & OutcomeConvenience is the honest objection and every competitor answers it with an adjective, which is why an adjective differentiates nobody. Answer it with a clock instead: the hour the dumpster lands, the hour of the last magnet pass, burned into the frame and repeated in the copy. That cross-artefact agreement is what makes the ad read as reportage rather than as a promise, and it is exactly the kind of proof this app can carry and a paragraph cannot.
Example adDone Before Dinner. Seriously.See the brief →

Ice-and-water membrane at the eaves and valleys

Traffic
Who it is for.
Households who have already had one ice dam, paid for the ceiling, and were told to buy a roof rake.
Angle.
Product & MechanismThe best-selling mechanism in cold-climate roofing and almost nobody advertises it, because it is invisible three hours after it is installed — which makes it perfect for the one app where you can show it going down on bare deck. Ingredient and Material is the family: rubberised asphalt bonded to the wood, sealing around every nail shank driven through it. Name your own role in the brief, not just the material; the Facebook batch briefed the same membrane with no seller attached and the pipeline invented a manufacturer, so the ad ended on advice to ask your roofer.
Example adWhat's Under Your Shingles MattersSee the brief →

Fixed-point photography on every job

Leads
Who it is for.
People who have been shown a glossy before-and-after by three contractors and could not tell what any of them proved.
Angle.
Proof & TrustThis is the offer that is only available on this app, and it is a practice sold as a product: every roof photographed from one staked position, before tear-off and at completion, same morning hour, date printed in the corner. Before and After is the most abused family in home services and this is the version that earns it, because the evidentiary content is the registration rather than the roof. Read the creative section before briefing your own — pinning the vantage is necessary and not sufficient.
Example adSame Spot. Same Hour. See the Difference.See the brief →

The four-question roof check

Traffic
Who it is for.
Homeowners who have decided to wait until it leaks, usually because somebody told them there were five years left in it.
Angle.
Comparison & PositioningMyth Busting against the most expensive belief in the category — that a roof is fine until water comes through a ceiling — and the disciplined version hands the reader a check they can run themselves rather than a scare. Publish the actual checklist your inspectors use and let the reader self-score; the click that follows is somebody who has already found two of the four. Keep every item genuinely observable from the ground, which is the mistake in the generated version.
Example adThe 4-Question Roof Truth TestSee the brief →

Storm-damage documentation, described lawfully

Leads
Who it is for.
Households sitting on a claim they do not understand, who have been offered a free roof by somebody at the door this week.
Angle.
Objection & Risk ReversalThe trade's biggest offer and the one where the wording is a legal question before it is a creative one. The strongest version on this app is a list of what you will never do, rendered as a card the reader can keep: never waive a deductible, never promise a free roof, never negotiate a claim. That is the compliant description of the service turned into the ad, and it is the one argument here a storm chaser cannot copy. Read the creative section first — the four words are document, meet, invoice.
Example adWe Will Never Say 'Free Roof'See the brief →

The whole price, with the denominator

Traffic
Who it is for.
People comparing a roof against a kitchen and a used car by sticker alone, because nobody has ever handed them the other number.
Angle.
Offer & EconomicsCost Per Day is a frame most trades use to hide a total, and this is the version that publishes both: the sticker, the term, the division, and the arithmetic set as typography so it can be checked. It is also the cleanest way to run a price ad in a category whose house style is a monthly payment with no rate on it — because if there is no credit offer, Regulation Z's triggering terms have no credit advertisement to attach to. Only run it if the system genuinely carries the rating you are dividing by.
Example ad$3.00 a Day. 25-Year Roof.See the brief →

Emergency tarping on the night of the warning

Leads
Who it is for.
Households who lost shingles once before, saved the number, and are watching a severe-weather alert come in at nine in the evening.
Angle.
Scarcity, FOMO & TimingThe one thing this app does that the HVAC Instagram page could not: a storm is announced hours ahead and lands on a whole neighbourhood at once, so an ad in the feed that evening is not capturing demand, it is being the name already in the phone. Read the ad below as a warning rather than a model — it was briefed with no countdown and no scare copy and produced both, because the same brief pinned a scarcity sub-angle. Brief this as speed or availability, price it flat, and route it to a phone that somebody answers.
Example adOne Crew Slot Left TonightSee the brief →

The detail nobody will ever see

Traffic
Who it is for.
People who spent the renovation money on the roof instead of the kitchen and would quite like somebody to notice.
Angle.
Identity & EmotionThe row that proves this family is safe when it is pointed at a decision rather than a person. Six feet of self-adhering membrane at the eave, sealed before the first shingle goes down, photographed at first light — an expensive answer to a question nobody else in the household was asking. Keep the subject the work and the choice they made; the moment the copy starts describing the reader or their family it is on the personal attributes list. And if you photograph a crew, look at what they are wearing before you publish it.
Example adThe Roof Nobody Argued AboutSee the brief →

The promise not to knock

Awareness
Who it is for.
Homeowners who let a door-knocker onto the roof after the last storm and have regretted it since.
Angle.
Story & Founder POVThe one Awareness buy and the strongest ad in the batch, because the confession costs the advertiser something real: three weeks out in the week after a hailstorm, crews who live inside the radius they work, and an explicit invitation to hire somebody else if you cannot wait. An Awareness ad that gives the reader permission to go elsewhere is a much better advert than one that does not, and it is the only argument on this page an itinerant crew cannot make. Sign it as the owner and do not let the brief invent a name.
Example adThree Weeks Honest. One Crew. Done.See the brief →

Flashing, skylights and gutter work

Leads
Who it is for.
Households with one recurring stain in one place, who have been told twice that it needs the whole roof doing.
Angle.
Benefit & OutcomeThe closest thing this trade has to the small photographable job the HVAC guide builds its whole Instagram case on, and the batch below has no ad for it, which is that batch's clearest gap. A chimney counterflashing, a skylight curb or a section of fascia is a one-visit fixed-price job, it photographs well because the failure and the fix are both visible in one frame, and it puts you on the roof of a household that will need the rest of it inside five years. Sell the specific repair, and let the inspection that comes with it do the rest.

No example ad for this offer on the examples page yet.

The tear-off documented on the deck

Traffic
Who it is for.
Homeowners holding two quotes four thousand dollars apart, being told the cheap one is the same roof for less money.
Angle.
Proof & TrustThe version of the before-and-after with information in it, and the batch below does not contain it. Two frames prove only that they are the same roof; three prove what you did — the tired roof, then the bare deck with the rot cut out and the sheathing numbered, then the finished one. It is the tear-off-against-layover argument in the only form that cannot be rebutted, because a layover has no middle frame by definition. If you photograph one job a month, photograph this one.

No example ad for this offer on the examples page yet.

Browse Instagram ad examples for a roofing company

Targeting: mostly the same cage, and two levers that invert

Begin by conceding what a reader arriving here usually wants to hear, because it is not true. Choosing this app is not a targeting decision and cannot be used as one. The special ad category is declared on the campaign, and Instagram Feed, Stories, Reels and Explore are placements inside it — so a roof advertised on a fixed monthly payment loses exactly what it loses on the other page, and the loss is more expensive in this trade than in any other. The restricted list removes ZIP codes, neighbourhoods, sub-city, sub-neighbourhood, metro area, small geographic area and electoral district as location types, along with location exclusion, lookalikes, saved audiences, custom age ranges, behaviour and demographic targeting and interest exclusion, and it sets a radius floor of 15 miles or 25 kilometres in the US and Canada. A hail swath is a ZIP list a few miles wide. So declaring the category does not cost a roofer a drive time, it deletes the campaign — and running the financed ad here buys that same deletion against a third of the homeowners.

The declaration itself is compulsory either way and has been since 31 March 2020: every campaign created through the Marketing API specifies a value, with NONE as the answer for the survey, the tarp, the tear-off and the certification. Roofing is not one of Meta's four categories. The category attaches to what an ad offers, not to what a company sells.

The storm plan is the second thing that does not belong to Facebook, and it is worth saying plainly because the Facebook guide's targeting section is built on it. A postcode list is set on the ad set, and placements sit underneath it, so the swath the hail actually crossed targets Instagram delivery exactly as it targets Feed and Marketplace. Storm reports give you that list within a day, a mile outside the stripe there is nothing to sell, and this remains the most valuable lever in a roofing account whichever app the impression lands on. What changes here is only how much of the stripe you can reach.

Now the two levers that genuinely invert, and both of them invert against the advice on the HVAC Instagram page, which is the closest neighbour to this one in the matrix. The first is age, and it is doing more work here than on any other page in this cluster. That page bands toward 30 to 49 because this app's strongest band, 18 to 29 at 80%, is substantially renters. The renter problem is identical in roofing, and there is a second one on top of it: this trade's buyer is defined by tenure, so even the owners in the app's strongest band are the least likely people in the country to be living under a twenty-year-old roof. You are banding against the platform's strength. That is survivable, and the way it survives is the offer table — the ads above are aimed at the same households the Facebook page sells to, met earlier: two winters after finishing the attic, one ice dam in, one deferred winter. Target a band and never name it in the copy, because age is on the personal attributes list.

The second inversion is the radius, and here the HVAC page's advice is actively wrong for this trade. That page says to hold the radius tighter than feels comfortable, because a $349 thermostat install cannot absorb a forty-minute drive. Roofing's tickets are five figures and its cheapest job is a tarp with a flat price built to cover the call-out, so the drive is not the constraint — crew logistics and licensing are. Set the radius to the area you can actually put a crew in, which for most single-depot contractors is wider than the HVAC rule and tighter than the county. The ordinary floor is 0.63 miles or 1 kilometre, far tighter than anybody sets it.

Two things survive everything and both are under-used. Custom Audiences keep inclusion, exclusion and expansion even under the financial products and services category, along with Advantage+ Audience and Detailed Targeting Expansion, which makes your own data the only precision instrument left inside a declared campaign — and you can check a list with is_eligible_for_sac_campaigns before launch rather than discovering the problem at it. In roofing the valuable list is not the customer list, because a roof is bought twice in a lifetime. It is everyone you inspected and did not sign: a roof you have personally been on, a written finding, and a decision already in progress that frequently takes a year to close. This app is one of the places that list gets filled, and the funnel section is built on that.

One hard-error footnote, because it fails at launch rather than in delivery. A business admin has to accept Meta's non-discrimination policy in Business Settings before a housing, employment or financial campaign will deliver at all: the API returns error 2859024, Certification Required. Its neighbour 2909035 comes back for a custom age range, a saved audience, a lookalike, or a radius under the floor. If a financing campaign will not start, read those two codes before touching the creative.

Special ad categoryCampaign, not placement
Declared on the campaign, with the Instagram placements inside it, so moving a financed roof ad here changes none of the restrictions and costs you two-thirds of the homeowners. The list it removes includes ZIP codes, and a hail swath is a ZIP list — which is why in this trade the category deletes the storm campaign rather than widening it. Roofing is not one of Meta's four categories; declare NONE on everything that is not a credit offer.
Placement selectionLeave it on Advantage+
One ad fills four Instagram surfaces and nine Facebook ones from a single export and headline, and the app split becomes a delivery outcome rather than a decision. That is usually right, and in this trade it is close to compulsory: the events here are expensive and an Instagram-only ad set is the most likely thing in this guide to sit in learning limited. An Instagram strategy for a roofer is which offers you brief, not which boxes you tick.
ZIP / postcode targetingUse it — and it still is the plan
Set on the ad set, so the swath applies to every placement underneath it and the storm plan is not a Facebook feature. Storm reports give you the postcodes hail crossed within a day and a mile off the stripe there is nothing to sell. It is the most valuable lever in the account on either app, and the financial category is the one thing that takes it away.
AgeBand it, against the app's strength
Doing more work here than on any other page in this cluster. Instagram's strongest band is 18 to 29 at 80% and it is substantially renters; worse, this trade's buyer is defined by tenure, so the owners in that band are the least likely to be under a twenty-year roof. The bands that own failing roofs are 40% and 19% here against 74% and 57% on Facebook. Band to the offer, expect the replacement bands to be thin, and never name a band in the copy.
RadiusWider than the HVAC rule
Do not import the small-job advice from the HVAC Instagram page. That trade tightens the radius because a $349 install cannot pay for a long drive; roofing's tickets are five figures and its emergency job carries a flat call-out price, so the binding constraint is crew logistics and licensing rather than drive economics. Ordinary floor 0.63 miles or 1 kilometre; 15 miles or 25 kilometres once a campaign is declared financial.
Custom Audiences — unsigned quotesUse it — the best list you have
Not the customer list: a roof is bought roughly twice in a lifetime, so past customers are mostly an exclusion and a referral pool. The list that compounds is everyone you inspected and did not sign — a roof you have been on, a written finding, a decision in progress. Custom Audiences survive the financial category when lookalikes and saved audiences do not, which makes this the only precision left inside a declared campaign.
Location exclusionUse it — unsupported when financed
A roofing service area has holes in it: a county you are not licensed in, a historic district whose permit process you decline, an association that will not accept the shingle you sell. Subtract those on every ordinary campaign, and accept that a declared financial campaign cannot subtract anything at all.
Lookalikes and saved audiencesCareful
Available and useful on ordinary campaigns, removed entirely under the financial category. Build a lookalike off the signed-job list rather than off profile engagers, and do not assume a saved audience carries into a financed campaign — error 2909035 is how you find out that it does not.
Detailed targeting (interests and behaviours)Rarely
Inside a storm swath the geography is already the targeting, and layering interests leaves an audience too thin to leave the learning phase — which bites harder here, because the reach is smaller before you narrow anything. Homeowner-status segments are the obvious temptation; look in the picker rather than trusting any guide, including this one. Under the financial category behaviour and demographic targeting go away entirely.
ExclusionsUse it
Exclude anyone whose roof you replaced in the last decade from everything — they are not buying another one, and the ad reads as a company that does not know its own customers. Exclude signed jobs from the storm creative the day they sign, because an ad about the storm you are currently working on their house for is the worst impression available in this account.
Ad scheduling (dayparting)Lifetime budget, and only for the storm night
Worth more here than on the HVAC Instagram page and less than on the roofing Facebook page. There is a genuine evening buy in this trade — the hours between a severe-weather warning and the storm — and nothing else on this app needs an hour boundary. It requires a lifetime budget and exact hour boundaries at least an hour apart, and the schedule runs in the audience's local time zone while Ads Manager reports in the account's.

Page, form, call, or thread?

The default here is a landing page, and it follows from Traffic being the default rather than being a separate decision. Almost everything above is arguing a specification the reader cannot name — a membrane at the eaves, what a bare deck shows, why two frames of a finished roof prove nothing — and that needs a page with the price on it. Never the homepage: somebody who tapped an ad about a stain on their own attic sheathing and lands on a rotating drone shot has been asked to start over.

The Instant Form is right for the two offers that are priced and bookable, and the type matters. Meta gives you two, and More volume is built to be filled and submitted in one thumb movement from pre-filled profile data. That is what makes it cheap and what makes it useless in this trade, because you will be ringing back hours later into a queue of people who have been called by six roofers. Use Higher intent, add two or three qualifying questions — age of roof, own or rent, storm date if there was one — and accept the volume drop.

The call ad is the interesting one, because the HVAC Instagram page removes it entirely and this page keeps it. That page is right about its own trade: nobody opens Instagram to be rescued from a 96-degree house, so buying call ads there is buying the format without the moment. Roofing's emergency arrives differently. A severe storm is announced hours in advance and lands on a whole neighbourhood at once, so the evening buy is real, and call ads do deliver on Instagram Feed and Stories. Judge it on 60-second calls rather than calls placed, daypart it to the hours somebody answers, and understand what you are buying: not a rescue, a phone number in the right place two hours early.

Anything touching an insurance claim gets a landing page, and this is a compliance decision rather than a conversion one. The statutes that make handling a claim prohibited do not stop at the ad unit — a page saying the same thing is making the same representation with more words, and it is advertising too. Write it to the same standard as the ad: document, meet, invoice, never negotiate, never interpret.

The fourth option is the one this app adds and the one to be most careful with, and roofing has a better use for it than most trades. Lead ads can open a conversation on Messenger, Instagram or WhatsApp, and the instant forms and Messenger conversion location runs one campaign and lets delivery pick per person. In this trade the thread is where a photograph arrives without anybody asking for it: shingles in the garden, a stain on a bedroom ceiling, a phone held up at the roofline. That is genuine triage and it is worth having. It is also where a household messages at eleven at night during a storm, gets no reply until Tuesday, and believes the whole time that a crew is coming. Use it where a person actually answers and the conversation ends with a date, and never as the destination for the storm ad.

The recommendation: A landing page with the price on it for anything that needs explaining, which is most of this page; an Instant Form on Higher intent for the two offers that are priced and bookable; a call ad for the storm night, dayparted and judged on 60-second calls; a message thread only where somebody answers it, which in this trade is worth having because photographs arrive in it. A claim page written to the same statutory standard as the ad. Never the homepage.

Creative direction

Start with the law, because it is the only section on this site where the binding rule is not Meta's and because nothing about it changes on this app. Texas Business and Commerce Code section 27.02(c) makes it an offence for a seller expecting payment from insurance proceeds to advertise or promise to pay, waive, absorb, rebate or credit the insured's deductible, a Class B misdemeanour under 27.02(d), with a 12-point boldface notice required by 27.02(b) on such contracts of $1,000 or more. Texas Insurance Code section 4102.163(a) says a contractor may not act as a public adjuster or advertise to adjust claims for property they are providing or may provide contracting services for, regardless of a licence or a power of attorney. Minnesota Statutes section 325E.66 subdivision 1(a)(1) bars advertising or promising to pay any part of a deductible as an inducement, subdivision 1(a)(3) bars interpreting policy provisions or advising on coverages without a public adjuster licence, subdivision 1(c) includes residential roofers by name, and subdivision 2 gives both the insured and the insurer an action. The operative verb in both statutes is advertise. Meta will approve either sentence without comment.

The compliant version of the service is four words long and this batch proved it can be briefed. Document, meet, invoice: you photograph the damage, you are on the roof when the adjuster is, you invoice the carrier directly. That describes exactly the same work, asserts nothing about what a policy pays and claims to act for nobody. The Facebook batch produced the failure — a claim ad that attacked deductible waiving by name and then promised to file supplements, stated what the carrier covers, and handed the whole thing over in a four-word description line. This batch wrote the boundary into the brief instead, and it held across all eleven artefacts: the rendered card lists both prohibitions correctly, all five primary texts stay inside the line, and the fifth states it outright — never waive your deductible, never promise a free roof, never negotiate your claim, and then what the contractor will do, which is inspect, document and build to scope. One brief variable flipped the outcome, which is the general finding: the disclosure is a property of the brief rather than of the model.

That result is one half of the batch's central finding and the other half is the expensive half. Five briefs stated a positive requirement and all five came back exact — the statutory boundary, the advertiser's role, arithmetic that foots to the cent, the signature, the vantage. Three stated a prohibition and all three lost, every one of them to something else the same brief had asked for. The storm ad pinned a scarcity sub-angle and then said no countdown and no scare copy; it came back with the briefed weather alert deleted, a glowing last-open-crew-slot notification, five scarcity headlines out of five, and an invitation to watch a ceiling stain spread. The quiz forbade pre-marking an answer by enumerating the markers it must not use — marked, circled, ticked, highlighted or otherwise indicated — and came back with an orange accent bar down one option that appears on none of the others. The crew photograph asked for roofers harnessed and tied off to a ridge anchor, and the harness is in the frame, lying loose on the deck, while a roofer works on his hands beside it. Brief what you want, not what you fear: a prohibition survives only when nothing else in the brief pulls against it, and the sub-angle, the visual direction and the format all pull.

The three failures each have a mechanical form worth carrying into any brief in any trade. A prohibition cannot defuse the sub-angle the same brief pinned, because the taxonomy is what the concept stage is built to execute and the prohibition is a sentence — if you do not want urgency mechanics, do not buy a scarcity angle. Prohibiting by enumeration invites the item you did not enumerate; specify the positive invariant instead, which here would have been that all four rows are identical in styling. And naming a noun does not name its state: the brief got its harness and never said it had to be worn, which in a trade governed by fall-protection rules is not a detail, and the copy inherited the omission because the copy stage reads the render and describes what is actually in the frame.

The same mechanism runs through people and figures, and both replicate cleanly here. This batch contains two author-implying directions with one variable different between them: the founder's card was told to sign as the owner rather than by a name and signed exactly that, with no name and no face, while the storm ad named a role — the dispatcher on duty — without forbidding a name, and the pipeline invented two people and then sold the practice as a feature. So the corpus rule sharpens from name the speaker to this: the pipeline invents a proper name unless the brief forbids one, because a role is a slot and slots get filled. The proof-slot rule is the same mechanism applied to numbers and it replicated for the fourth batch running — zero of the ten images here renders a fabricated statistic, because a raw phone photograph, a quiz, a lock screen, a quote card and a before-and-after split have nowhere to put a tally. Every invented figure on that page is in the copy, where it is easier to catch.

Then two number rules that pull in opposite directions and are both replicated in this batch. A count set as typography is reliable: four numbered callouts were briefed on the membrane ad and exactly four render, and the four figures on the cost-per-day poster are all correct. Arithmetic is reliable when it is written into the brief: $27,375 across a 25-year system is 9,125 days at $3.00 exactly, restated correctly in the copy as a division. What is not reliable is a count of drawn objects, which is why the Facebook batch's nailing diagram drew five nails under a caption saying four and seven under a caption saying six. If the number is the argument, keep it in type and let the picture carry the mechanism.

Regulation Z gets a paragraph even though this batch has no financing ad, because the result is the useful kind. The HVAC Instagram batch found a credit line in an ad that was never briefed for one, so this batch deliberately contained no financing brief at all and its price ad invited the payment frame while forbidding credit. Nothing came back: no monthly payment, no APR, no instalments, no deferred terms anywhere in fifty headlines and fifty primary texts, and the ad says instead that the job is paid in full when the crew finishes. Worth stating precisely, because the HVAC finding is easy to misread. 12 CFR 1026.24(d) makes four things triggering terms — the amount or percentage of any downpayment, the number of payments or period of repayment, the amount of any payment, and the amount of any finance charge — and they attach to a consumer credit advertisement. This ad offers no credit, so no deposits required is not a triggering term here. The moment you do quote a monthly figure, the ad owes the reader the downpayment, the repayment terms over the full term and the annual percentage rate using that phrase, and your finance partner has approved language for exactly that.

Finally the shapes and the counts, and they are not the Facebook page's. Render 4:5 at 1440 by 1800, the same export Facebook Feed wants, but hold the crop to 1% rather than 3% and mind a minimum width of 500 rather than 600. Do not buy 1.91:1 — the surfaces built to want it are Facebook's right-hand column and search results, and this app has neither, which is why the batch contains none. Keep 9:16 for Stories and Reels, where three of these ten sit, and check every re-framed export by eye: one of those three came back with a flat cream band across the top where the square draft ran full-bleed. On copy, write the headline to 40 characters and check it against 27 as well if the same ad runs on Facebook Feed, because both numbers are live on one ad with Advantage+ placements on. Seven of this batch's fifty headlines fit 27, which is a high rate — only 21 of 350 across seven Instagram batches do — but half of those seven are claims rather than nouns, so the rule the apparel page derived, that 27 characters is room for a noun and not for a claim, does not hold cleanly here. None of the fifty primary texts fits 125, and none of the 700 in this whole corpus does. Longer is not forbidden, it is truncated, so the argument has to survive inside the first sentence.

  • Never advertise paying, waiving, absorbing, rebating or crediting a deductible, in any phrasing, and do not assume the app changes it. No out of pocket, we will take care of your deductible and free roof are the same representation, and in Texas advertising it is a Class B misdemeanour.
  • Never advertise handling, filing, negotiating or interpreting an insurance claim. Document, meet, invoice. Write that boundary into the brief rather than checking for it afterwards — the one ad here that was briefed with it came back clean across eleven artefacts.
  • Do not state what a policy covers. Telling the reader their carrier pays replacement-cost value is interpreting a policy provision, which is the licensed activity, and it is the sentence nobody notices themselves writing. Read the description line last.
  • Brief what you want, not what you fear. Five positive requirements in this batch came back exact and all three prohibitions lost, every one of them to something else the same brief asked for.
  • Do not buy a scarcity sub-angle and then forbid the countdown. The taxonomy is what the concept stage executes and the prohibition is a sentence; brief a storm ad as speed or availability instead.
  • Never prohibit by enumeration. Listing the markers a quiz may not use produced the one marker that was not listed. State the positive invariant — all four rows identical — because a positive requirement is the kind of instruction this pipeline reliably follows.
  • Name the state of a thing, not just the thing. The brief asked for a harness and got a harness lying loose on the deck beside an unharnessed roofer, and the copy inherited the omission because it describes what is actually in the frame.
  • Pin the scope as tightly as you pin the camera. The vantage held perfectly — same corner, timestamps eleven days and one minute apart — and the unpinned scope drifted anyway: half a roof re-shingled, and fascia and gutters replaced under copy saying nothing else changed.
  • Forbid an invented name whenever a direction implies an author. A card told to sign as the owner signed as the owner; a lock screen that named a role got two invented people and a fabricated practice to go with them.
  • Name your own role, not just the offer. A membrane briefed with no seller attached came back branded as a manufacturer and ended on advice to ask your roofer, which is a roofing company's own click sent to a competitor. Eleven words fixed it here.
  • Choose a visual direction with no slot for a statistic. Zero of these ten images renders a fabricated figure, because a raw phone pic, a quiz, a lock screen and a quote card have nowhere to put one — this is the fourth batch in a row where that has held.
  • If a count is the argument, set it in type. Four briefed callouts rendered as exactly four; a drawn quantity is the one thing this pipeline gets wrong, as the Facebook batch's four-against-six nailing diagram showed by drawing five and seven.
  • Write the arithmetic into the brief and it will foot. $27,375 across a 25-year system rendered as 9,125 days at $3.00 exactly, with the division restated correctly in the copy.
  • Check the weekday when a rendered date carries no year. The storm ad's lock screen reads Thursday, October 9, which is a valid pair for 2025 and wrong for 2026, when the batch ran.
  • Render 4:5 at 1440 by 1800 — the same file Facebook Feed wants — but hold the crop to 1% rather than 3%. A file a few pixels out of true passes there and fails here.
  • Do not buy 1.91:1 on this app, and check every 9:16 re-frame by eye. One of the three here has a flat band across the top where the square draft ran full-bleed, and every occurrence of that defect in this cluster has been a photograph.
  • Write the headline to 40 characters and check it against 27 as well if the ad also runs on Facebook Feed. Both numbers are live on one ad with Advantage+ placements on, and 27 is the harder one by a distance.
  • Write the 30-character description line even though this feed will not show it. Marketplace does, and it is free — six of the ten here fit and four are wasted.
  • Read every ad in the set for a credit line, not just the one you think of as the financing ad. This batch had no financing brief and came back with no credit language at all in a hundred pieces of copy, which is what a clean sweep looks like.
  • Photograph your own crews, your own trucks and your own street — and look at what the crew is wearing before you publish it. A drone shot of a finished roof against a blue sky is the category's default, indistinguishable from every competitor's, which is the definition of a wasted impression.
  • Put your real credential numbers in the brief or leave the slot out. Six of these ten ads carry an invented count, and three of those magnitudes each appear twice on the same page under two different invented companies.

Funnel structure

Three stages, and a fourth line that is deliberately not on this app at all. The shape rhymes with the Facebook page's and the weights do not, because the middle stage there is a burst and the third stage here is the payout.

Keep it this thin on purpose. A single-depot roofer's budget is small relative to the audience arithmetic Meta's delivery system wants, and it is smaller again on an app with a third of the reach, so every extra ad set divides the same evidence into thinner piles. Variation belongs at the ad level inside one ad set, and the thing that varies is the offer rather than the audience. This is also the reason not to build Instagram-only ad sets, which the budget section works through.

The third stage is the one to read carefully, because it is what this app is actually buying. The Facebook guide's finding is that in roofing the customer list is mostly an exclusion — a roof is bought twice in a lifetime — and that the list which behaves like a customer list is the one nobody uploads: every inspection that never became a job. Those households have a roof you have been on, a written finding and a decision already in progress, and the interval between the inspection and the signature is frequently a year. The ads at the top of this page are how strangers enter that list, and the documentation arguments are what keep them warm through the year it takes. An Instagram budget in this trade is a bet on that interval, which is why the measurement advice below is about twelve months rather than thirty days.

  1. Cold

    ≈40% of budget

    Audience. Crew-logistics radius around the depot, banded to the age of the housing stock and the offer, out-of-licence areas excluded, signed jobs and recent installs excluded.

    Running. The photographable arguments — the attic survey, the membrane on bare deck, the four-question check, the cost-per-day poster. Mostly Traffic, with Leads on the two that are priced and bookable.

  2. Storm

    ≈25%, spent in bursts of budget

    Audience. The postcodes the hail actually crossed, from storm reports rather than from a radius. Signed jobs excluded the day they sign.

    Running. Tarping and inspection, including the evening-of-the-warning buy that only exists on this app. Raised inside an ad set that already exists rather than launched as a new one.

  3. Unsigned quotes and warm

    ≈35% of budget

    Audience. Your inspection list, profile visitors, video viewers and site readers from the last 90–180 days. The inspection list is the valuable half.

    Running. The documentation arguments again, now to people who have met you: the fixed-point pairs, the never-list card, the itemised quote. Leads, and patient — a year is a normal interval here.

  4. Financing (declared)

    Budget it on the other page of budget

    Audience. Its own campaign, declared financial products and services: 15 mile / 25 km floor, no ZIP targeting, no exclusions, no lookalikes, age 18–65+. Custom Audiences survive and are the only precision left.

    Running. Not from this budget. The category deletes the postcode list either way and this app buys that loss against a third of the homeowners — run it on the placements that actually perform for a replacement, which is the Facebook page's argument.

Budget, the learning phase, and the year this app is betting on

Do the arithmetic before you copy a number from anywhere, including here. Meta's delivery system needs roughly 50 optimisation events per ad set per week to leave the learning phase; below that the ad set sits in learning limited, which is not a penalty so much as an admission that the system cannot optimise with what you are giving it. Take your own cost per lead, multiply by 50, and that is the weekly spend at which one ad set delivers with full information.

Now the concession, and it is the exact thing the HVAC Instagram page got to celebrate. That page's good news is that its offers are small, so its events are cheap, so 50 a week is reachable in a way it is not for a campaign selling five-figure replacements — the app with the worse reach has the better chance of getting an ad set out of the learning phase. Roofing gets the opposite of that on both terms. The offers are not small, so the events are expensive, and the audience is a third to a half the size before you have narrowed anything. An Instagram-only ad set in this trade is the most likely structure in this entire guide to sit in learning limited indefinitely.

Which produces the most practical instruction on this page, and it is a structural one rather than a creative one: do not buy this app as its own ad set. Leave placements on Advantage+, let one ad set pool its evidence across all thirteen surfaces, and treat Instagram as a briefing decision — which offers you write, and how you photograph them — rather than as a media buy with its own budget line. Restricting placements to Instagram is a real cost and needs a real reason, and the only good one in this trade is a 9:16 asset built for Stories, which is a reason to add a placement rather than to subtract eight.

The storm collision from the Facebook page carries across and gets one wrinkle worse. The learning phase runs about a week, a hailstorm's advertising window is a few days, and the door-knockers are on the street within seventy-two hours — so an account switched on the morning after the hail spends the whole window learning while somebody is ringing doorbells. Keep a standing storm ad set alive at a low budget through the quiet months so that the storm week is a budget increase and a creative swap rather than a cold start, and accept the honest trade-off: adding the swath's postcodes is an audience change, which is a significant edit, so there is no version of this advice that avoids some learning cost. The Instagram wrinkle is that you cannot spin up an app-specific ad set for a single evening and expect it to deliver, which is another way of saying the same thing as the paragraph above.

Finally, what to judge it on, because the wrong report kills this budget faster than the wrong creative. Do not compare an Instagram cost per lead to the Facebook one — and on a properly built account you cannot anyway, because the split is a delivery outcome inside a shared ad set rather than two campaigns. Judge the whole account on booked inspections inside the postcodes you targeted, and judge this app's contribution the way its own funnel works: on how many households entered the inspection list, and on how many of them signed something between six and eighteen months later. An account judged on a thirty-day window in a trade whose decision takes a year will switch off the campaign that was working, and it will do it right before the campaign pays.

  • Test the offer, not the headline. Swapping five words is a significant edit that restarts learning for a change too small to detect.
  • Test the visual direction as deliberately as the copy, and prefer directions with no slot for a statistic. That one choice is the difference between an image with an invented figure in it and one without.
  • One change at a time, and give it seven days — the learning phase is measured over a week, so anything shorter is reading noise.
  • Do not run Instagram-only ad sets. The events in this trade are expensive and the reach here is a fraction of the other app's, which is the combination that keeps an ad set in learning limited forever.
  • Judge the storm burst on booked inspections inside the targeted postcodes, not on cost per lead. A hail swath produces cheap leads by construction and most of them are collecting free inspections.
  • Track how long an unsigned inspection takes to convert before deciding the retargeting does not work. A year is a normal interval in this trade, and a thirty-day verdict will indict the stage that pays out.
  • For the storm-night call ad count 60-second calls. Calls placed includes the hang-ups, the wrong numbers and everyone who found out you cannot get there tonight.
  • Check every export by eye before launch. The tolerance here is 1% against Facebook's 3%, and the padded re-frame defect has now appeared five times in this cluster and always on a photograph.
  • Before you blame the creative, check whether the ad set ever left the learning phase. On this app, in this trade, it is the likeliest single explanation.

Seven of these ads, in full

Every ad below was generated by best-in-slot for a roofing company that does not exist, with its audience, angle and objective pinned before the run — and published exactly as it came back. They are seven of the Instagram examples for a roofing company; the rest, with the full brief and the alternate headlines behind each one, are on that page.

Browse Instagram ad examples for a roofing company

Mistakes specific to this trade on this app

The first three are not about advertising performance at all, and they are first because Meta's approval tells you nothing about any of them. The rest are the ways a workable roofing account quietly becomes a worse one, and most of them come out of the ten ads on the Browse page rather than out of anybody's opinion.

  1. Assuming the statutes are a Facebook problem

    They attach to what an advertisement says, not to which app rendered it. Texas Business and Commerce Code section 27.02(c), Texas Insurance Code section 4102.163(a) and Minnesota Statutes section 325E.66 subdivision 1 all reach an Instagram ad exactly as they reach a Facebook one, and Meta approves the ads that break them here as readily as there. Ad review checks the ad against Meta's policies and knows nothing about either statute book. In this trade it is the least important review your creative goes through.

  2. Advertising that you will cover the deductible

    The most-run promise in storm roofing and an offence to advertise in Texas: Business and Commerce Code section 27.02(c) covers advertising or promising to pay, waive, absorb, rebate or credit an insured's deductible where payment is expected from insurance proceeds, and 27.02(d) makes it a Class B misdemeanour. Minnesota section 325E.66 subdivision 1(a)(1) bars the same thing as an inducement, includes roofers by name, and gives both the homeowner and the insurer a right to sue. Every phrasing is the same representation. There is no clever wording of this one.

  3. Advertising that you will handle the insurance claim

    The one almost nobody treats as a legal question, and it appears in more roofing ads than the deductible line. Texas Insurance Code section 4102.163(a) says a contractor may not act as a public adjuster or advertise to adjust claims for property they are working on, regardless of a licence or a power of attorney. Minnesota section 325E.66 subdivision 1(a)(3) bars interpreting policy provisions, advising on coverages or adjusting a claim without a public adjuster licence. Say what you actually do: photograph the damage, be on the roof when the adjuster is, invoice the carrier directly.

  4. Running the financing ad here to escape the special ad category

    It does nothing and it costs you twice. The category is declared on the campaign and the Instagram placements sit inside it, so the fifteen-mile floor, the missing location exclusion, the removed lookalikes and the fixed 18–65+ age range all still apply — and in this trade the restricted list also removes ZIP codes, which is the swath and therefore the storm plan. You would be buying the identical deletion against a third of the homeowners. If somebody has recommended this, they have confused a placement with a declaration.

  5. Buying a scarcity angle for a storm ad

    Our own storm ad is the demonstration. It was briefed with a severe-weather alert, a dispatch confirmation, no countdown and no scare copy, and it came back with the weather alert deleted, a glowing last-open-crew-slot notification, five scarcity headlines out of five and an invitation to watch a ceiling stain spread. The prohibition lost to the sub-angle the same brief pinned. Meta's standard on commercial exploitation of crises prohibits exploiting a crisis for commercial purposes and names natural disasters as its example — offering a tarp and an arrival window is the defensible side of that line, and making the storm the urgency engine is not.

  6. A before-and-after that pins the camera and not the roof

    The pair on the Browse page holds everything it was told to hold — same corner, same morning hour, timestamps eleven days and one minute apart — and then re-roofs only the front plane while replacing the fascia, the gutter and the rake trim nobody asked about, under copy saying nothing else changed. A before-and-after exists to prove one thing, that both frames are the same roof in two states. Pin the scope as tightly as you pin the vantage, and if you want the pair to argue rather than to decorate, put the bare deck in the middle.

  7. Briefing what you do not want instead of what you do

    The batch's central finding and the most transferable thing on this page. Five briefs stated a positive requirement and all five came back exact, including a statutory boundary that held across eleven artefacts. Three stated a prohibition and all three lost, each to something else the same brief had asked for: a countdown from the scarcity angle, an orange accent bar from a ban list that enumerated every other marker, and an unworn harness from a brief that named the equipment and not its state. A prohibition survives only when nothing else in the brief pulls against it.

  8. Publishing a crew photograph without looking at the crew

    The identity ad on the Browse page is a good ad with a serious problem in it: green webbing and a carabiner lying loose on the deck while a roofer works on his hands beside them. The equipment rendered and the practice did not, and the copy never flags it because the copy describes what is in the frame. That image will be read by people deciding whether you are the careful contractor. Whether it is generated or shot on your own job, check the fall protection before it goes anywhere.

  9. Leading with the drone shot

    The category default on this app is an aerial of a finished roof against a blue sky, and it is indistinguishable from every competitor's, which is the definition of a wasted impression. It also proves nothing: every finished asphalt roof looks like every other one. The images that work here are the ones a homeowner could not take themselves — the underside of their own deck, a membrane going down before the shingle pallet opens, one staked position photographed twice.

  10. Publishing invented credential numbers side by side

    Six of the ten ads on the Browse page carry an invented count, and three of those magnitudes each appear twice on the same page under two different invented contractors — 3,100, 4,100 and 1,900. Across all fourteen batches published here only two others have any magnitude repeated across two ads, so this is a property of briefing a whole batch in one trade rather than a general fault. Put your real numbers in the brief, or choose a direction with no slot for one.

  11. Importing the small-job radius advice

    The HVAC Instagram guide says to hold the radius tighter than feels comfortable, because a $349 thermostat install cannot absorb a forty-minute drive. That is correct there and wrong here: roofing's tickets are five figures and its emergency job carries a flat call-out price, so the binding constraint is crew logistics and licensing rather than drive economics. Squeezing the radius on an app that already has a third of the reach is how an ad set ends up with nobody in it.

  12. Buying this app as its own ad set

    The structural mistake that quietly ruins the account. Restricting placements to Instagram means asking for roughly 50 optimisation events a week from a third of the audience on offers that cost five figures — the combination most likely to leave an ad set in learning limited permanently. Leave placements on Advantage+, let one ad set pool its evidence across all thirteen surfaces, and make Instagram a decision about which offers you brief rather than a budget line.

  13. Judging the account on a thirty-day window

    The gap between an inspection and a signature in this trade is frequently a year, and the households this app reaches are the same ones the Facebook page sells to caught earlier in their tenure. So a thirty-day report reliably indicts the stage that is working: the unsigned-inspection list is the best asset a roofing account has and it pays out over six to eighteen months. Measure how many households entered that list and how many signed something later, and get the second number from your own job records rather than from Ads Manager.

  14. Treating the message thread as a dispatch line

    The thread is genuinely valuable in this trade, because photographs arrive in it without anybody asking — shingles in the garden, a stain on a bedroom ceiling, a phone held up at the roofline. It is also where a household messages at eleven at night during a storm, gets no reply until Tuesday, and believes the whole time that a crew is coming. Use it where a person actually answers and the conversation ends with a date, and never as the destination for the storm ad.

Questions

Do Instagram ads work for roofing companies?
They work, and this is the trade with the worst platform fit on this site, so it is worth knowing which part works before you budget. Pew's November 2025 survey puts Instagram at 40% of 50- to 64-year-olds and 19% of over-65s against Facebook's 74% and 57%, and the household under a twenty-year-old roof is usually the household that has been there twenty years. So this app reaches fewer of the same buyer rather than a different one. What it gives back is the format: roofing's real problem is that a homeowner cannot verify anything, and the artefacts that settle it — a fixed-point photo pair, a membrane on bare deck, a stain on their own attic sheathing — are exactly what a feed carries and a paragraph does not.
Does running ads on Instagram change what a roofer is allowed to say?
No, and it is the most expensive misunderstanding in the trade. The rules that bind a roofing advertiser are mostly not Meta's — they are state statutes, and they attach to what the advertisement says rather than to the app that rendered it. Texas Business and Commerce Code section 27.02(c) makes advertising a deductible waiver a Class B misdemeanour; Texas Insurance Code section 4102.163(a) forbids a contractor to act as a public adjuster or advertise to adjust claims on property they are working on; Minnesota Statutes section 325E.66 subdivision 1 covers both and lets the homeowner and the insurer sue. None of that softens here, and Meta will approve the ads that break it on either app. The compliant description of the service is four words long: document, meet, invoice.
Which objective should a roofing company buy on Instagram?
Traffic for most of the budget, which is the opposite of the Facebook guide in this pair. Two reasons stack: there is no surface on this app that captures demand — no search results, no right-hand column, no Marketplace — so every reader is mid-scroll and every ad interrupts; and most of what this trade has to say is a specification the reader has never heard of. Buy Leads for the offers that are priced, bookable and need no explanation, which in the Browse batch is four ads in ten. Keep a small Awareness line but expect less from it than the Facebook page does, because a memory buy against the door-knocker is worth what its reach is worth. Sales is a flat no: nothing in this trade completes without somebody climbing a ladder.
Can I move my financing ad to Instagram to keep my ZIP targeting?
No, and in roofing it is the most costly version of that mistake anywhere on this site. The special ad category is declared on the campaign and Instagram Feed, Stories, Reels and Explore are placements inside it, so a financed roof ad still loses location exclusion, lookalikes, saved audiences, custom age ranges and any radius under 15 miles or 25 kilometres — and the restricted location list removes ZIP codes, neighbourhoods, sub-city, metro area and small geographic areas. A hail swath is a ZIP list a few miles wide, so the category does not cost this trade a drive time, it deletes the storm campaign. Moving it here buys the identical deletion against a third of the homeowners. Run financing in its own declared campaign and keep the storm work in an ordinary one.
How do I brief a before-and-after that actually proves something?
Pin the vantage and then pin the scope, because the batch behind this page did the first and forgot the second. Its pair holds the camera position, the morning hour and the light exactly — the timestamps read 07:42 and 07:41 eleven days apart, agreeing with a headline that says eleven days — and that registration is the entire evidentiary content of the format. Then only the front plane came back re-roofed, with new fascia and gutters nobody asked for, under copy saying nothing else changed. Say the whole roof and only the roof. And if you want the pair to argue rather than decorate, put a third frame in the middle: the bare deck with the rot cut out is the one image a layover cannot produce.
Can I advertise emergency tarping on Instagram?
Yes, and this is the one thing this app does that the HVAC guide in the neighbouring cluster says its trade cannot. Nobody opens Instagram to be rescued mid-failure, but a severe storm is announced hours ahead and lands on a whole neighbourhood at once, so an ad in the feed that evening is not capturing demand — it is being the name already in the phone two hours early. Two cautions. Meta's standards prohibit content that exploits crises for commercial purposes and name natural disasters as an example, so advertise the service and the arrival window rather than the storm. And do not brief it as a scarcity angle: ours was briefed with no countdown and no scare copy and produced a last-slot countdown anyway, because the same brief pinned a scarcity sub-angle.
What size should a roofing Instagram ad be, and how long should the copy run?
Render 4:5 at 1440 by 1800, identical to Facebook Feed so one export serves both — but hold the crop to 1% rather than 3% and mind a minimum width of 500 rather than 600, because a file a few pixels out of true passes on one app and fails on the other. Skip 1.91:1 entirely; the surfaces built to want it are on the other page. Keep 9:16 for Stories and Reels and check those exports by eye, because one of the three here came back with a flat band across the top. Headline about 40 characters, which is thirteen more than Facebook Feed allows, and primary text about 125 — although nothing in this corpus has ever hit that: none of the 700 primary texts published here fits 125, and the shortest ever written is 200 characters.

Sources

Every platform claim on this page was read against these on . Meta’s policies move; if one of these disagrees with this page, it is right and we are stale.

That is the playbook. Now make the ads.

Paste your site. It reads your services, your storm and insurance page, your certifications and your service area, then writes the concepts, renders the images and drafts the copy — for the one trade in this set whose binding rules are not Meta's but your state's.

No credit card · 50 free credits (about 5 ads or Instagram posts)

Every angle recommended above is documented in the best-in-slot ad angle library, and the ads are from roofing instagram ad examples. More industries are at all ad guides.