Arrow Roofing Services · GoNano NuRoof Revive · Meta Audit

Launch is converting. The system is now guarded. Efficiency needs tightening.

Audit window: campaign launch through requested cutoff May 14, 2026 8:40 AM America/Los_Angeles. Meta insights are the live daily API pull available at generation time, while lead count is verified against final v4 form timestamps through cutoff.

Campaign ACTIVE9 verified v4 leadsWebhook fixed2 minute fallback cron
Spend
$497.38
200/day CBO, Meta data through current daily pull
Leads
9
Matches v4 form count at cutoff
CPL
$55.26
Above ARS $20 to $35 target, acceptable for first learning window but not scalable yet
CTR
2.14%
Healthy, above 1.5% fatigue threshold
Inline link CTR
0.84%
90 inline link clicks from 10,971 impressions
Link to lead
9.8%
Core funnel efficiency
Frequency
1.89
Safe, no fatigue signal yet
CPM
$45.34
High but normal for qualified local lead gen

KPI Scorecard

Overall CPL is $55.26, above the proven ARS target range of $20 to $35, but the campaign is early and CTR is healthy at 2.14%. The clean read: creative is earning attention, Meta is finding qualified form submitters, but cost per qualified lead needs another 24 to 72 hours of learning plus budget/creative pressure toward the winners.

Campaign
ACTIVE
Budget
$200.00/day CBO
Active ads
9
Form wiring
9/9 v4

!Executive Read

  • Best ad by volume: Ad04 Same Roof Different Outcome Feed, 4 leads on $206.49 spend, $51.62 CPL.
  • Best efficient signal: Ad01 Feed and Ad04 Stories/Reels are below or near target on observed CPL, but need more volume before scaling aggressively.
  • Main risk: Feed is carrying 91% of spend and 8 of 9 leads. Stories/Reels has good click cost but limited volume.
  • Tracking caveat: Meta daily insights are current API totals, not minute-perfect to 8:40 AM PDT. Lead timestamps are cutoff-safe and verify 9 real submissions by 12:30 UTC.

Daily Trend

DateSpendImpr.CTRInline clicksLeadsCPL
2026-05-12$56.271,2692.52%100n/a
2026-05-13$324.346,7752.05%577$46.33
2026-05-14$116.772,9272.19%252$58.38

Ad Set Breakdown

Ad setSpendImpr.ReachCTRInline clicksLeadsCPL
FEED 4x5 | Broad | 2026-05-11 | PAUSED$452.8210,2645,5772.08%758$56.60
STORIES-REELS 9x16 | Broad | 2026-05-11 | PAUSED$44.567075083.11%151$44.56

Placement Breakdown

PlatformPositionSpendImpr.CTRInlineLeadsCPL
facebookfeed$423.049,7662.12%727$60.43
facebookfacebook_reels$31.555492.37%81$31.55
instagramfeed$29.604981.20%51$29.60
facebookfacebook_stories$7.793910.26%30n/a
instagraminstagram_reels$2.97750.00%00n/a
instagraminstagram_stories$2.444411.36%40n/a

Per Ad Performance

AdSpendImpr.ReachCTRInline clicksLeadsCPL
STORIES-REELS 9x16 | Ad04 SameRoofDifferentOutcome$18.162902154.14%101$18.16
FEED 1x1 | Ad01 DontReplaceRevive$61.111,2269033.10%182$30.55
FEED 1x1 | Ad04 SameRoofDifferentOutcome$206.494,6622,8311.97%384$51.62
FEED 1x1 | Ad02 ReplaceVsRenewCost$153.073,4432,4722.00%162$76.53
FEED 1x1 | MolecularShield$32.159338161.50%50n/a
STORIES-REELS 9x16 | Ad02 ReplaceVsRenewCost$12.812051600.49%00n/a
STORIES-REELS 9x16 | Ad01 DontReplaceRevive$9.03110863.64%40n/a
Creative 3 Stories-Reels Molecular Shield$4.5299905.05%10n/a
STORIES-REELS 9x16 | MolecularShield$0.04320.00%00n/a

Device Read

DeviceSpendImpr.CTRInline clicksLeadsCPL
iphone$254.006,3622.25%515$50.80
android_smartphone$203.893,9072.02%343$67.96
desktop$20.403342.10%40n/a
ipad$11.432641.52%20n/a
other$4.97365.56%11$4.97
android_tablet$2.69680.00%00n/a

Lead Funnel Notes

Final v4 form 1329249715935557 has 9 real submissions through cutoff. Contact info is intentionally excluded from this report.

home ownership
yes: 9
roof type
asphalt_shingles: 8, not_sure: 1
shingle age
fifteen_to_twenty: 2, five_to_ten: 2, twenty_plus: 3, ten_to_fifteen: 2
replacement quote considered
want_alternative: 3, considering: 2, yes_quote: 2, not_yet: 2
timeline
one_to_thirty_days: 1, asap: 6, just_researching: 2

Lead Timeline, sanitized

CreatedNameSource adTimeline answer
2026-05-13T04:45:09 UTCRandall LieskeFEED 1x1 | Ad01 DontReplaceReviveone_to_thirty_days
2026-05-13T05:19:05 UTCVikki Mata-FreemanFEED 1x1 | Ad04 SameRoofDifferentOutcomeasap
2026-05-13T13:08:42 UTCTony JankowskiFEED 1x1 | Ad02 ReplaceVsRenewCostasap
2026-05-13T17:32:29 UTCDeborah HobsonFEED 1x1 | Ad04 SameRoofDifferentOutcomeasap
2026-05-13T20:54:21 UTCSourav SinhaFEED 1x1 | Ad01 DontReplaceReviveasap
2026-05-14T00:06:37 UTCJenni hallFEED 1x1 | Ad04 SameRoofDifferentOutcomeasap
2026-05-14T01:30:27 UTCGregory SmithSTORIES-REELS 9x16 | Ad04 SameRoofDifferentOutcomejust_researching
2026-05-14T08:10:04 UTCRobert BlairFEED 1x1 | Ad02 ReplaceVsRenewCostjust_researching
2026-05-14T12:30:15 UTCSachin YadavFEED 1x1 | Ad04 SameRoofDifferentOutcomeasap

Delivery System Audit

  • Fixed: stale Cloudflare Worker VERIFY_TOKEN was rotated, Meta callback re-verification passed, and the app was re-subscribed to Page leadgen.
  • Verified app path: Page 1495230893883650, app 908534075200674, final v4 form 1329249715935557.
  • Worker version: c71b4ded-bb13-424b-85a4-05731d3c8175.
  • Fallback: scheduled poll every 2 minutes. Latest verified cron: seen:18 existing:18 processed:0 failed:0.
  • Caveat: Cloudflare Email Sending still has an ars-crm.xyz zone issue. Google Chat and Discord alerts are live and reliable.

Risks

  • CPL above target: $55.26 is not yet in the $20 to $35 operating band.
  • Spend concentration: Facebook Feed consumed about 85% of spend and produced 7 of 9 leads. This is working, but it narrows learning.
  • Duplicate Creative 3 Stories/Reels: 9 active ads are live, not the expected 8. Two Molecular Shield Stories/Reels variants are active. One barely delivered, but this should be cleaned up after confirming Nick's preferred v2.
  • Ad labels: several live ad names still contain “PAUSED” as a historical label even though status is ACTIVE. Operationally confusing, not a delivery blocker.

Recommendations and Next 24 Hours

  1. Keep the campaign active, do not panic-pause before the learning window matures. CTR and form qualification are good. CPL is the problem, not creative attention.
  2. Hold budget at $200/day for 24 hours. Do not scale until CPL is under $45 or qualified booked-rate proves the higher CPL is worth it.
  3. Clean the launch set to one Creative 3 Stories/Reels ad. Keep the intended v2 if approved, pause the older duplicate, then preserve exactly 8 launch ads.
  4. Shift creative weight toward Ad04 and Ad01 language. “Same Roof Different Outcome” and “Don’t Replace, Revive” are producing the best lead volume and intent.
  5. Prepare two replacement tests: a 4:5 Feed variant with the Ad04 outcome hook, and a 9:16 Story version that uses a faster first-frame cost/qualification hook.
  6. Monitor the routing system, not just Meta. Confirm every new Meta lead appears in D1/GHL/Google Chat/Discord within 2 minutes. If webhook misses again, cron should catch it.
  7. Sales follow-up priority: ASAP and 1 to 30 day leads first, especially homeowners with asphalt shingles and 10 to 20 year roof age.