Vendor-surface mockup · Stream 3 + Stream 4How insurance carriers, attorney-malpractice insurers, life-insurance brands, and adjacent-services vendors manage their own campaigns on Lawma's public surface. Compliance guardrails (per locked product decisions) auto-enforced at submission. Insurance verticals are the priority pool.
Stream 3 (sponsored attorney placement) + Stream 4 (curated direct-sold display) combine to ~$13.2M Y5 floor against the footprint. Across ~6,000 active attorneys (Stream 3) plus dozens of insurance + adjacent- services brands (Stream 4), that revenue is impossible to run as a founder-selling motion. The advertiser portal is how vendors manage themselves — campaign creation, targeting, budgeting, pacing, reporting — with all the locked product-decision compliance gates enforced in software.
$9.2M Y5
Stream 3 — Sponsored attorney placement. Flat-fee directory placement on the matchmaking surface. ~6,000 active attorneys × ~10% adoption × ~$130/mo blended ($149 Featured / $349 Premier). The the compliance guardrails are this portal's job.
$4.0M Y5
Stream 4 — Curated direct-sold ads. ~800M ad-eligible impressions across the public content surface × $5 CPM floor blended. Insurance verticals (State Farm, life, malpractice, business liability) priority-tagged per the conversion + monetization research
Native referrals (M12)
Process servers, mediators, notaries also flow through the same portal — Stream 2's vendor-facing surface. Different placement type, same campaign / billing / reporting infrastructure. ~$60.2M Y5 rides on this same vendor-side rail.
Month-to-date snapshot of every campaign across the advertiser's account. Pacing relative to budget, qualified- click counts, spend vs. budget. The four stat tiles at the top mirror the financial KPIs a media buyer scans for first.
Across all three campaign types — sponsored attorney placement (Stream 3), curated display (Stream 4), native referrals (Stream 2 vendor side). Pacing pill colors give an at-a-glance read of which campaigns need attention.
The campaign editor is where a vendor configures targeting, creative, budget, and pacing. The locked product-decision guardrails are wired into the form schema and the submit-validation layer — non-compliant inputs are blocked before the campaign goes live.
Advertisers see impressions, qualified clicks, qualified- click rate, average CPM, spend. They do not see per-case conversions, client identities, intake content, or anything from the authed surface — the privilege wall is enforced at the reporting layer too.
The sponsored-placement constraints + privilege wall + two-party wall map directly onto the portal's submit-validation schema. The only guardrail that requires human review is the substantiated-claims rule on sponsored attorney creative — flagged automatically, reviewed by an Implementer within 24 hours.
| Guardrail | How it's enforced | Status |
|---|---|---|
| Flat fee only (the compliance rules) | Campaign cannot define per-case or percentage-of-fee-earned pricing. Sponsored attorney campaigns enforce flat-monthly schedule on submit. | auto-enforced |
| Sponsored attorney passes consumer filter (the compliance rules) | If a sponsored attorney's offerings fall outside a consumer's scope+max-budget filter, the sponsored slot is suppressed for that consumer — never shown. | auto-enforced |
| Maximum 2 sponsored slots per match list (the compliance rules) | The matchmaking surface caps sponsored slots at 2. Sponsored-tier supply beyond 2 rotates across consumer sessions. | auto-enforced |
| No client-PII targeting (per locked product decisions) | Targeting controls allow category, jurisdiction, ad-format, and time-of-day. Client identity, intake content, document data, and any authed-surface signal are unavailable to advertisers. | auto-enforced |
| Advertisers never receive client data (the hard line) | Sponsored placements run across the product — public pages AND authenticated surfaces (a process-server or notary offer when an interview completes, the verified-Attorney Forum, the dashboard). The line is the DATA, not the surface: advertisers never receive client identity, intake content, or document data; targeting is category + jurisdiction + format + time-of-day only, and placements are contextual. (D35: the old 'no ads on authenticated surfaces' rule is scrapped — we already place contextual partner offers on authed surfaces.) | auto-enforced |
| Legal-aid attorneys distinct, not in sponsored competition (the compliance rules) | Legal-aid-tagged attorneys cannot purchase sponsored placement. The 'Legal aid · free or sliding scale' tag is reserved. | auto-enforced |
| Substantiated claims only (the compliance rules — comparative) | Sponsored ad creative cannot include unsubstantiated comparative claims. Implementer review required for any 'best', 'highest-rated', 'top X%' language. | implementer-review |
| Community-resource posture gating (Around-the-Case) | Partners apply with a default 'sponsored' posture. Lawma editorial staff can reclassify to 'vetted' (free to user, Lawma earns nothing) or 'community' (free to user, explicitly non-commercial). Reclassification requires senior-attorney sign-off and an annual re-verification of the partner's nonprofit / sliding-scale status. The community badge ('🤝 We don't earn from this') is reserved for partners with documented non-commercial status; misuse is a takedown. | editorial-review |
| Vetted-partner badge wording — picked per partner | For 'vetted' posture, Lawma staff pick between two badge wordings per partner: (b) '✓ Vetted · Free or sliding scale' — used when the partner explicitly offers reduced-fee options; or (c) '★ Lawma trusts this · Not an ad' — used for trust-anchor referrals where Lawma's recommendation is the value (e.g., AnnualCreditReport.com, Sesame Workshop). The badge choice is editorial; sponsored-tier partners can never select these wordings. | editorial-review |
Non-attorney referral partners (process servers, notaries, insurance, mediators, support orgs) come in via the same self-serve apply flow as sponsored attorney placements. Lawma editorial staff classify each into sponsored (paid placement), vetted (free to user; Lawma earns nothing), or community (free to user, explicitly non-commercial — used for hotlines, legal-aid orgs, court self-help centers). For vetted partners, editorial picks between two badge wordings depending on the partner type.
| Partner | Applied for | Assigned posture | Badge wording | Status |
|---|---|---|---|---|
| Swift Serve · Process server | sponsored | sponsored | — | Live · $149/mo |
| Notarize.live · Online notary | sponsored | sponsored | — | Live · $99/mo |
| Open Path Collective · Affordable therapy | sponsored | vetted | ✓ Vetted · Free or sliding scale | Live · No charge to partner |
| AnnualCreditReport.com · Free credit reports | vetted | vetted | ★ Lawma trusts this · Not an ad | Live · No charge to partner |
| Sesame Workshop · Divorce toolkit | vetted | vetted | ★ Lawma trusts this · Not an ad | Live · No charge to partner |
| 211 · Local assistance directory | community | community | 🤝 No paid relationship | Live · Mission listing |
| National DV Hotline | community | community | 🤝 No paid relationship | Live · Mission listing |
| DAV · Disabled American Veterans (VSO) | community | community | 🤝 No paid relationship | Live · Mission listing |
| FastFix Locksmith — applied for community | community | sponsored | — | Reclassified · sponsored (commercial entity) |
Partners build their own intake form in this portal — the same kind of palette-and-canvas editor a Typeform user would recognize, but every field renders inside Lawma's design system so the form looks native to lawma.co. Lawma editorial reviews each form before it goes live and reviews substantive edits afterwards. Once published, the form lives at lawma.co/partners/{partnerId}/intake. Submissions land in the partner's inbox + webhook + (if the user has a Lawma case) a copy on the user's Lawma file.
The advertiser portal lives in the Application zone of the architecture (see the Engineering Plan), alongside the client app and attorney portal. Critical architectural property: advertiser data lives in a separate Aurora schema with zero RLS join to the privileged case-data tables. This is the data-layer enforcement of the no-ads-on-authenticated-surfaces rule.
AdvertiserAccount — vendor KYC, Stripe billing, contact infoAdCampaign — campaign config: type, targeting, creative, schedule, budget, pacingAdCreative — versioned creative assets (images, copy, landing URLs)AdEvent — impression + click events, aggregated; no client identifier ever joins hereSponsoredPlacement — Stream 3 attorney sponsored-slot records (flat-fee, time-bounded, state × category scope)Client, Case,Document, InterviewSession — all walled off by RLS + schema isolationAdCampaign + request-context (URL, ad format) only — never user identity.AdEvent ↦ AdCampaign only. No cross-schema join exists.For the full architecture diagram showing the non-privileged data zone alongside the privileged zone, see the Engineering Plan. For the M16 functional requirements, see the Product Requirements Specification §7 M16.
Build sequence: E12 milestone in the Engineering Plan. Revenue narrative: Streams 3 + 4 in Revenue Explained. Module spec: M16 in Requirements.