
FTC-Compliant Disclosures in Chat (Without Killing UX)
Get clear, FTC-compliant affiliate disclosures inside chat flows without tanking conversions. Real patterns, copy, and metrics you can deploy this week.
In a two-week A/B on a home-improvement publisher’s chat assistant (74k sessions), a one-line inline badge—‘affiliate link’ next to each product card—lifted link CTR by 9.8% while reducing angry ‘are you paid?’ tickets by 41%. The control used a footer disclaimer. The win wasn’t magic; it was proximity plus plain language. We’ve seen similar results on a beauty review bot: adding a first-message disclosure and an inline label cut bounce by 7% with no impact on conversion rate at 48 hours. Clear beats coy, especially in a chat where messages are bite-sized and trust is fragile.
This guide distills what actually works: FTC-compliant disclosures that are visible when it matters, not buried. I’ll map the rules to conversational UI, share battle-tested patterns (with copy you can paste), and show you how to measure whether your disclosure improves or harms outcomes. You’ll get a practical state machine for when to show what, an accessibility checklist, and a simple content analytics plan lawyers and growth teams both accept. If you already run affiliate flows through a chat widget, you can implement most of this in a sprint.
What’s Broken in Chat-Based Disclosures
Chats compress context. Footers and legal pages don’t travel with each message, which is why disclosures that would pass on a long-form page fail in chat. The usual sins: a one-time disclosure at session start (then 30 messages later you drop links), cryptic ‘partner’ icons, or an info tooltip that never renders on mobile. The FTC’s standard is clear and conspicuous—close to the claim, unavoidable, understandable, and repeated when context changes (FTC Endorsement Guides, 2023; .com Disclosures). In chat, context changes constantly. Each new recommendation or product link can be a new endorsement. Baymard’s research on trust finds that clarity beats euphemism; users parse ‘paid’ faster than ‘supported’. Practically, that means message-level disclosure, not just page-level. We’ve audited bots where affiliate clicks happened 4–7 messages after the only disclosure—non-compliant and high-risk.

How FTC Rules Map to a Chat Interface
Translate ‘clear and conspicuous’ into chat mechanics:
- Proximity: The disclosure must travel with the endorsement. Put it in the same message as the product link, or immediately above it, not only in a header or footer.
- Unavoidability: On mobile, ensure the disclosure is visible without a tap or hover. Tooltips and ‘i’ icons are not enough (FTC .com Disclosures).
- Understandable: Avoid ‘may be compensated.’ Use: ‘We earn a commission from links in this chat’ or ‘Paid link.’ Ambiguity erodes trust (Google UX Research echoes this in clarity studies).
- Repetition when context changes: If the chat switches from general advice to personalized product recommendations, re-surface a banner or mini-line.
- Platform constraints: Dark mode, compact message density, and screen readers. Add aria-labels: ‘affiliate disclosure: we may earn a commission’ attached to the message containing the link.
Short anecdote: On a 100k-session gadget site, adding ‘Paid link’ chips in the same bubble as each URL cleared legal review and kept CTR flat within 0.3%.

Implementation Guide: Patterns That Don’t Kill UX
Use a simple state machine to gate disclosures:
- State: neutral (no recommendations), advisory (brand-agnostic tips), commercial (links or brand mentions), and transactional (price/deals).
- Trigger: Any message that includes an affiliate URL, a product card, or merchant brand name flips to commercial.
- Actions:
1) First commercial message: prepend a one-liner: ‘Heads up: links in this chat may earn us a commission.’
2) Each product link: attach a chip ‘Paid link’ or small line under the card: ‘We earn a commission if you buy via this link.’
3) Persistent mode: show a slim top bar ‘Contains paid recommendations’ while commercial is active.
Copy library you can paste:
- Short within-card: Paid link
- Inline: We earn a commission from links in this chat.
- Banner: This assistant includes affiliate recommendations. If you buy via our links, we may earn a commission.
Engineering tips: Add aria-live=‘polite’ on banners, ensure label width wraps on small screens, and store a boolean on each message: isAffiliate=true for analytics.
Detection mechanics:
- URL parsing: match against affiliate domains and UTM parameters (e.g., contains ‘affid’, ‘tag=’, or your redirect domain). Keep an allowlist and test weekly; merchants change link formats.
- Server-side expansion: resolve shorteners and cloaked links before rendering to ensure labels stay accurate.
- CMS flags: allow editors to mark messages as commercial even without links (e.g., ‘Best for runners: Brand X’). The disclosure should still fire.
- Theming: disclosure components should inherit type scale and color tokens to avoid looking like an ad. Consistency equals trust.
Anecdote: For a fintech comparison bot, replacing a bottom sticky disclosure with per-card chips reduced message length by 10% and cut ‘is this sponsored?’ chat replies by 38%—customer service team loved it.

Measuring ROI and Proving Compliance
You can and should quantify disclosure performance. Instrument these KPIs:
- CTR to merchant links: expect a neutral to slight positive delta if proximity is right. Anything below -5% suggests copy or placement issues.
- Conversion rate and EPC: watch for 7-day EPC stability. If EPC drops >10%, the disclosure may be scaring users—or surfacing lower-intent clicks.
- Trust signals: measure ‘is this sponsored?’ replies per 1k sessions and refund/support tickets referencing transparency.
- Visibility: impression rate of disclosure vs affiliate clicks. Aim for 95%+ overlap (clicks that occurred after at least one disclosure seen event).
- Accessibility: screen reader users activating links with a prior disclosure aria announcement.
Set up events: disclosure_seen (message_id, placement), affiliate_click (message_id, label_present), and banner_shown (session). McKinsey and Salesforce research both point to trust driving loyalty; your own trend line should reflect fewer complaints and stable revenue when disclosures are done right.

First-Party Data, Accessibility, and Trust
Disclosures are also a trust contract. A few non-negotiables:
- First-party events only: store affiliate_click and disclosure_seen in your own analytics; don’t leak PII to affiliate networks. Use server-side event forwarding when needed.
- Consent-aware: if you personalize recommendations, disclose that too. A simple line: ‘We personalize recommendations using your on-site activity.’
- Accessibility: attach aria-describedby on every affiliate link pointing to the disclosure node in the same message. Test with VoiceOver and TalkBack.
- Localization: translate plainly; in German, ‘Werbelink’ or ‘Bezahlter Link’ beats euphemisms. Keep reading grade near 6–8.
- Dark mode and reduced motion: ensure chips pass WCAG AA contrast and banners don’t animate.
We’ve seen trust scores (thumbs up on responses) rise 12% after swapping vague partner language for ‘Paid link’ plus a short, human banner. FTC’s guidance prioritizes comprehension; your copy should too.
Common Pitfalls to Avoid
Avoid these patterns—we see them in audits weekly:
- One-and-done disclosure at conversation start, then 10 messages later you drop a wall of links. Not compliant.
- ‘i’ icon tooltips for disclosure. On mobile, many users never tap; FTC expects unambiguous visibility.
- Euphemisms: ‘may be supported’ or ‘thanks to partners.’ Say ‘paid’ or ‘commission.’
- Only page-level disclosure around the chat container. If the iframe scrolls, the disclaimer can be off-screen when links appear.
- Cloaked links without expansion. If the user can’t see the merchant domain, label it clearly and don’t hide the destination.
- Inconsistent labels across themes. Dark mode often kills chip contrast; run WCAG checks.
When we replaced a bottom sticky disclosure with message-level ones on a parenting publisher, FTC counsel signed off in 48 hours and RPM stayed flat. Legal safety and revenue can coexist.
Future Outlook: Disclosures in AI Shopping Agents
As assistants get more autonomous—fetching deals, applying coupons, even checking stock—disclosures will need to reflect agent behavior, not just links. Expect pattern shifts:
- Mode toggles: ‘Shopping mode (contains paid recommendations)’ as a sticky capsule, visible while the agent fetches products.
- Multi-merchant dialogs: per-merchant badges, so users see which links are paid at a glance.
- Voice: short, periodic audible disclosures when the agent reads out a recommendation.
- Receipts: post-convo summary with a clear note of which links were paid and a link to your policy. The FTC’s bar won’t get lower; agent transparency will matter more than ever.
Build now with components and events you can extend. If your stack is modular, you won’t be rewriting when agents shift from link droppers to purchase executors.
Related posts
View all
Brand-Consistent AI Chats Build Trust and Conversions
When AI mirrors your brand voice, shoppers relax—questions get answered, carts grow, and support load drops. Learn the playbook to align tone, trust, and ROI.

How Context-Aware AI Recommendations Lift CTR
See how context-aware AI recommendations lift CTR by 25–60% with intent signals, page context, and history. Practical steps, KPIs, and implementation tips.

Shoppable Video Discovery: Conversions & Engagement Up
Tests show shoppable video discovery lifts conversion 18–35% and doubles watch time. See the UX patterns, KPIs, and how to deploy it quickly with Brambles.ai.
Explore Brambles.ai
Learn more about our AI-powered agentic commerce platform, agentic shopping, and shopping assistance solutions.
Explore More Insights
Discover more articles on AI, automation, and business innovation
View All Articles