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
ACTIVEBudget
$200.00/day CBOActive ads
9Form 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
| Date | Spend | Impr. | CTR | Inline clicks | Leads | CPL |
|---|---|---|---|---|---|---|
| 2026-05-12 | $56.27 | 1,269 | 2.52% | 10 | 0 | n/a |
| 2026-05-13 | $324.34 | 6,775 | 2.05% | 57 | 7 | $46.33 |
| 2026-05-14 | $116.77 | 2,927 | 2.19% | 25 | 2 | $58.38 |
Ad Set Breakdown
| Ad set | Spend | Impr. | Reach | CTR | Inline clicks | Leads | CPL |
|---|---|---|---|---|---|---|---|
| FEED 4x5 | Broad | 2026-05-11 | PAUSED | $452.82 | 10,264 | 5,577 | 2.08% | 75 | 8 | $56.60 |
| STORIES-REELS 9x16 | Broad | 2026-05-11 | PAUSED | $44.56 | 707 | 508 | 3.11% | 15 | 1 | $44.56 |
Placement Breakdown
| Platform | Position | Spend | Impr. | CTR | Inline | Leads | CPL |
|---|---|---|---|---|---|---|---|
| feed | $423.04 | 9,766 | 2.12% | 72 | 7 | $60.43 | |
| facebook_reels | $31.55 | 549 | 2.37% | 8 | 1 | $31.55 | |
| feed | $29.60 | 498 | 1.20% | 5 | 1 | $29.60 | |
| facebook_stories | $7.79 | 39 | 10.26% | 3 | 0 | n/a | |
| instagram_reels | $2.97 | 75 | 0.00% | 0 | 0 | n/a | |
| instagram_stories | $2.44 | 44 | 11.36% | 4 | 0 | n/a |
Per Ad Performance
| Ad | Spend | Impr. | Reach | CTR | Inline clicks | Leads | CPL |
|---|---|---|---|---|---|---|---|
| STORIES-REELS 9x16 | Ad04 SameRoofDifferentOutcome | $18.16 | 290 | 215 | 4.14% | 10 | 1 | $18.16 |
| FEED 1x1 | Ad01 DontReplaceRevive | $61.11 | 1,226 | 903 | 3.10% | 18 | 2 | $30.55 |
| FEED 1x1 | Ad04 SameRoofDifferentOutcome | $206.49 | 4,662 | 2,831 | 1.97% | 38 | 4 | $51.62 |
| FEED 1x1 | Ad02 ReplaceVsRenewCost | $153.07 | 3,443 | 2,472 | 2.00% | 16 | 2 | $76.53 |
| FEED 1x1 | MolecularShield | $32.15 | 933 | 816 | 1.50% | 5 | 0 | n/a |
| STORIES-REELS 9x16 | Ad02 ReplaceVsRenewCost | $12.81 | 205 | 160 | 0.49% | 0 | 0 | n/a |
| STORIES-REELS 9x16 | Ad01 DontReplaceRevive | $9.03 | 110 | 86 | 3.64% | 4 | 0 | n/a |
| Creative 3 Stories-Reels Molecular Shield | $4.52 | 99 | 90 | 5.05% | 1 | 0 | n/a |
| STORIES-REELS 9x16 | MolecularShield | $0.04 | 3 | 2 | 0.00% | 0 | 0 | n/a |
Device Read
| Device | Spend | Impr. | CTR | Inline clicks | Leads | CPL |
|---|---|---|---|---|---|---|
| iphone | $254.00 | 6,362 | 2.25% | 51 | 5 | $50.80 |
| android_smartphone | $203.89 | 3,907 | 2.02% | 34 | 3 | $67.96 |
| desktop | $20.40 | 334 | 2.10% | 4 | 0 | n/a |
| ipad | $11.43 | 264 | 1.52% | 2 | 0 | n/a |
| other | $4.97 | 36 | 5.56% | 1 | 1 | $4.97 |
| android_tablet | $2.69 | 68 | 0.00% | 0 | 0 | n/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
| Created | Name | Source ad | Timeline answer |
|---|---|---|---|
| 2026-05-13T04:45:09 UTC | Randall Lieske | FEED 1x1 | Ad01 DontReplaceRevive | one_to_thirty_days |
| 2026-05-13T05:19:05 UTC | Vikki Mata-Freeman | FEED 1x1 | Ad04 SameRoofDifferentOutcome | asap |
| 2026-05-13T13:08:42 UTC | Tony Jankowski | FEED 1x1 | Ad02 ReplaceVsRenewCost | asap |
| 2026-05-13T17:32:29 UTC | Deborah Hobson | FEED 1x1 | Ad04 SameRoofDifferentOutcome | asap |
| 2026-05-13T20:54:21 UTC | Sourav Sinha | FEED 1x1 | Ad01 DontReplaceRevive | asap |
| 2026-05-14T00:06:37 UTC | Jenni hall | FEED 1x1 | Ad04 SameRoofDifferentOutcome | asap |
| 2026-05-14T01:30:27 UTC | Gregory Smith | STORIES-REELS 9x16 | Ad04 SameRoofDifferentOutcome | just_researching |
| 2026-05-14T08:10:04 UTC | Robert Blair | FEED 1x1 | Ad02 ReplaceVsRenewCost | just_researching |
| 2026-05-14T12:30:15 UTC | Sachin Yadav | FEED 1x1 | Ad04 SameRoofDifferentOutcome | asap |
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, app908534075200674, final v4 form1329249715935557. - 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Sales follow-up priority: ASAP and 1 to 30 day leads first, especially homeowners with asphalt shingles and 10 to 20 year roof age.