From arb
Audits websites for affiliate link disclosure compliance with FTC, ASA, EU, Canada regulations. Detects undisclosed links, inventories affiliate URLs, and verifies format.
How this skill is triggered — by the user, by Claude, or both
Slash command
/arb:affiliate-link-complianceThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Comprehensive verification of affiliate link disclosures across your entire site. Ensures FTC, ASA, and international compliance.
Comprehensive verification of affiliate link disclosures across your entire site. Ensures FTC, ASA, and international compliance.
| Field | Value |
|---|---|
| Scope | Cross-phase check — always runs when site has any affiliate content, regardless of score mode |
| Core 79 items covered | PC10 (affiliate disclosure — veto item), TD08 (privacy policy affiliate mention) |
| Extension items covered | PC12–PC13 coverage when gambling/regulated affiliate programs present |
| Veto items | PC10 — any disclosure failure = instant pillar veto; escalate immediately |
| Mode interaction | This skill contributes to PC and TD pillars; report findings under both |
Output fields required (for aggregation by ads-readiness-assessment):
score_mode: inherit from calling orchestratorpillars_affected: ["PC", "TD"]items_evaluated: e.g., ["PC10", "TD08"]veto_triggered: true / false + which item(s)undisclosed_links_found: count + URLsdisclosure_format_issues: list of non-compliant disclosure formatsRule: If site has no affiliate links, output affiliate_scope: none and skip all checks — do not mark items as not_in_scope (they simply do not apply).
Audit affiliate link compliance:
Input: Website URL or source files Output: Affiliate link inventory + compliance report Time: 15-30 minutes
Requirement: Clear and conspicuous disclosure Placement: Before the link or at beginning of content Language: "Affiliate disclosure", "We earn commissions", "As an Amazon Associate" Penalty: False advertising violation + legal action
Requirement: Clear identification of commercial relationship Format: #ad or #sponsored on social media, disclaimer on content Placement: Prominent location Penalty: Fine, removal from advertising
Requirement: Transparent affiliate relationship Disclosure: Required in privacy policy Format: Clear and honest language Penalty: Fine up to €20,000
Requirement: Clear disclosure of material connection Format: "We may earn commission" Placement: Before user decision Penalty: Fine + damages
Identify affiliate URL patterns:
Automated script:
# Find affiliate patterns in HTML
grep -r "amazon.com/.*tag=" ./website/
grep -r "cjdropshipping.com/.*ref=" ./website/
grep -r "/?affiliate=" ./website/
For each page with affiliate links:
Good Disclosure Locations:
Clear & Conspicuous Test:
Examples:
✅ Good Disclosure:
"As an Amazon Associate, we earn from qualifying purchases.
This does not affect the price you pay."
✅ Good Disclosure:
"Affiliate Disclosure: This post contains Amazon affiliate
links. If you purchase through these links, we receive a
small commission at no extra cost to you."
❌ Poor Disclosure (too hidden):
"*See disclosure policy in footer for affiliate
relationship details."
[User never sees footer]
❌ Poor Disclosure (unclear):
"Some of our content may contain commercial relationships."
[Vague, doesn't say what kind]
# Affiliate Link Compliance Report
## Summary
- Total pages reviewed: 150
- Pages with affiliate links: 45
- Compliant disclosures: 40
- Non-compliant or missing: 5
- Compliance Rate: 89%
## Non-Compliant Pages (Action Required)
### Critical (Missing Disclosure)
- /blog/top-products
- /reviews/gadgets
- /comparison/tools
Action: Add disclosure statement immediately
### Medium (Disclosure Hidden)
- /guides/best-practices
- /tutorials/setup
Action: Move disclosure to more prominent location
## Recommendations
1. Add disclosure to [X] pages
2. Move [Y] disclosures to more visible location
3. Clarify [Z] disclosure statements
<div class="affiliate-disclosure">
<strong>Affiliate Disclosure:</strong> This post contains
affiliate links. If you purchase through our links, we may
earn a small commission at no extra cost to you.
</div>
<p><strong>As an Amazon Associate, we earn from qualifying
purchases.</strong> This does not affect the price you pay.</p>
<p><strong>Disclosure:</strong> This post contains affiliate
links from Amazon Associates, CJ Affiliate, and Shareasale.
We earn a commission if you purchase through these links.</p>
<p>Check price on <a href="amazon-link">Amazon*</a></p>
<p>*Affiliate link: We earn a commission</p>
.affiliate-link::after {
content: " [affiliate link]";
color: #999;
font-size: 0.9em;
}
Issue 1: No Disclosure
Issue 2: Hidden Disclosure
Issue 3: Vague Disclosure
Issue 4: Disclosure Only in Footer/Policy
Issue 5: Misleading Statement
USA (FTC):
UK (ASA):
EU (GDPR):
Canada (MACT):
Find non-compliant pages:
const fs = require('fs');
const path = require('path');
function checkAffiliateLinkCompliance(htmlContent) {
const affiliateRegex = /amazon\.com\/.*\?tag=|cjdropshipping\.com\/.*\?ref=|click\.../g;
const disclosureRegex = /affiliate|commission|earn|compensat/i;
const hasAffiliateLinks = affiliateRegex.test(htmlContent);
const hasDisclosure = disclosureRegex.test(htmlContent);
if (hasAffiliateLinks && !hasDisclosure) {
return { compliant: false, reason: 'Missing disclosure' };
}
if (hasAffiliateLinks && hasDisclosure) {
const disclosureIndex = htmlContent.indexOf(disclosureRegex);
const affiliateIndex = htmlContent.indexOf(affiliateRegex);
if (disclosureIndex > affiliateIndex) {
return { compliant: false, reason: 'Disclosure after links' };
}
}
return { compliant: true };
}
Related Skills:
policy-risk-scanner, policy-remediation-planads-readiness-assessmentactive-compliance-monitornpx claudepluginhub huifer/adsense-readiness-benchmark --plugin arbProvides a checklist for code reviews covering functionality, security, performance, maintainability, tests, and quality. Use for pull requests, audits, team standards, and developer training.