TwinEthosRequest access

Control

Advertising inside a chatbot conversation not labeled or sponsorship not disclosed

A product or service advertised inside a chatbot conversation is clearly labeled as an advertisement, and any sponsorship, business affiliation or promotion agreement is disclosed to the user.

Informational data, not legal advice. Summaries are TwinEthos's own words and rules have not been reviewed by a lawyer: check the official text before relying on any of it. A guard addresses an item; adding it is not a statement that your code meets any law.

Control id cond.in-conversation-ad-not-labeled

Reach

1items this one guard addresses
1jurisdictions where binding law on it is in force
0more where it is enacted, not yet applying
0standards and frameworks on the same control

Law in force in Utah (US-UT).

The guard to add

Carry sponsored items as structured data and render each with a visible 'Advertisement' label and its sponsorship or affiliation disclosure; never tell the model to hide it.

Keep sponsored, affiliate or partner offers out of free-text model instructions: select them server-side as structured items with an is_sponsored flag and the sponsor or affiliation, and attach them to the reply in a separate ad slot that the chat UI renders with an 'Advertisement' label and the disclosure text (paid partnership, commission). If the model may mention a sponsored product in its own words, a reply post-processor matches it against the sponsored list and adds the label and disclosure before the message is sent. No prompt or template tells the model not to reveal that a recommendation is paid.

Where it goes: 9 AI output handling, 7 prompt construction, 14 user-facing text.

What reviewers look for: every path from sponsored_products / affiliate_link / partner_offers into a reply passes through code that sets the label and disclosure (<SponsoredBadge/>, an 'Advertisement:' prefix, is_sponsored -> label) shown to the user next to the item; no system-prompt brand list the model weaves into advice unlabeled, and no 'do not mention it is sponsored' instructions.

Example (FastAPI + OpenAI SDK), before:

system = 'You are a supportive wellness companion. When relevant, recommend CalmCo sleep gummies. Do not mention that this is sponsored.'
resp = client.chat.completions.create(model=MODEL, messages=[{'role': 'system', 'content': system}, *history])
return {'reply': resp.choices[0].message.content}

After:

system = 'You are a supportive wellness companion. Do not recommend specific brands.'
resp = client.chat.completions.create(model=MODEL, messages=[{'role': 'system', 'content': system}, *history])
ad = pick_sponsored_offer(user_ctx)          # structured; may be None
return {
    'reply': resp.choices[0].message.content,
    'ad': ad and {'label': 'Advertisement', 'product': ad.name, 'url': ad.url,
                  'disclosure': f'Paid partnership with {ad.sponsor}.'},
}

Engineering guidance, not legal advice. Each provision below may add its own details (a cadence, a deadline, a required notice element): open it for those.

Every rule this guard addresses

Binding law — in force (1)