CFAMM + ADMENSION
◼ CFAMM + ADMENSION v1.2 Advanced Publisher Stack
page=— s=1/3 dev=— pv=— adsShown=— score=— adm=—

The Only Link Shortener That Pays You — Automatically

No signup. No dashboard. No referrals. Share a link → people browse → ads run → revenue is pooled and distributed.

How it works (10 seconds):
1) Share your link
2) Visitors browse naturally (no timers, no tricks)
3) Ads earn revenue
4) Pool + proportional payout (only after real settlement)
No revenue = no payout.
HOME — Top Banner

Try it (demo flow)

Use the buttons below to run the 3-step flow. This increases pages/session via user intent (policy-safe).

Reminder: Do not add timer-based ad refresh. Only refresh/change on user intent (route / step).

3-step flow

Use the buttons below to cycle steps (creates controlled PV/session without auto-refresh).

Step 1 of 3
labels utm_content
Reminder: Do not add timer-based refresh. Only refresh ads on user intent (page/nav/step).

Create

Create a share link in this browser (signup‑free).

CREATE — Desktop Rail

Manage

View links created in this browser and manage local data.

MANAGE — Desktop Rail

Docs

Idiot-proof, blunt, and accurate. This explains exactly how CFAMM + ADMENSION works, what is measured locally, and what ad networks actually pay for.

DOCS — Top Banner

Quick jump

Tap a section. No fluff.
Hard rule: No revenue received → pool is $0 → payout is $0.
Anyone promising otherwise is lying or confused.

1) What this is (in one sentence)

CFAMM is a signup-free link shortener + browsing flow that earns ad revenue, then (optionally) shares a fixed portion via a transparent pool model.

Share link → people browse → ads earn → revenue settles → pool is funded → payout is proportional.

2) What this is NOT

• Not a guarantee
• Not “watch ads to earn”
• Not timer refresh spam
• Not “click ads to continue”

3) How payouts actually work (no bullshit)

Pool = min( monthly_cap , received_revenue_this_month × pool_percent )
Your share = your_units ÷ total_units
Your payout = pool × your_share
Example
If received revenue is $1,000 and pool_percent is 13%, pool starts at $130 (until cap).
If you have 2% of all units, you receive $2.60 (minus network payout fees if applicable).
If received revenue is $0 → pool is $0 → payout is $0.

4) What counts as “contribution units”?

In this static build, units are derived from pageviews, step progress, and basic engagement signals. Units are not dollars. Units only determine your percentage share of the pool.
Production reality (later): units should be computed server-side from verified traffic + anti-fraud checks. This build is the UI + logic baseline.

5) Sponsored sticky (72-hour) — how it works

Sponsored placements sell time, not clicks, not guaranteed traffic, not “earnings”.
Rules (hard):
• Exactly 72 hours per sponsor window
• Scheduling limited to 90 days ahead
• Up to 9 sponsors per 72-hour window (rotation)
• Total max scheduled across horizon: 270
• Rotation changes on user intent (navigation), never timers
• If no sponsors active, premium slots fall back to normal ad inventory

6) Why TRON is recommended (fees)

TRON typically has near-zero network fees, making it better for small payouts. Ethereum/Bitcoin fees can eat small payouts. Fees are charged by the network — not by ADMENSION.

7) The funnel (why the site earns)

Traffic enters via a share link (UTMs/referrer) or direct visit.
Users navigate by intent through steps and optional explore routes.
Each view exposes legitimate ad inventory with high viewability.
This is the whole trick: increase pages/session using navigation, not refresh spam.

8) Ad inventory on the site

Top Banner — above the fold placement.
Desktop Rail — premium desktop-only inventory.
In‑Content Tall — engagement-gated, mid/late scroll.
Sticky Anchor — persistent bottom placement (never outcome-linked).
We do not refresh ads on timers. Ads change only when the user navigates or changes steps.

9) Stats: what this build logs vs what networks pay

This build logs (local): sessions, pageviews, step reach, ad-intent interactions, UTM/source hints.
Networks pay (real): impressions/viewability/fill rate/geo/demand.
Local stats are diagnostics. They are not revenue and not a promise.

10) Compliance basics (don’t get banned)

• No auto-refresh timers
• No incentivized clicks
• No “click ads to continue” gating
• No outcome-linked rewards
• Sponsored sticky must be labeled
• Remove abusive sponsors (malware/scams/deceptive claims)
The safe method is: viewability + navigation + neutral copy.

11) How sites reach $10–$15 RPM (best-of-the-best ideas)

High RPM comes from traffic quality + intent, not from stacking more ad boxes.
Top drivers:
1) High-intent context skins (tax/security/compliance/tools)
2) Tier‑1 geo dominance (CA/US/UK/AU)
3) Viewability-first placements (sticky + rails)
4) Higher pages/session via optional “explore” routes
5) Strong demand competition (waterfall → header bidding later)
If RPM is flat while sessions rise: add demand (more bidders/networks), not more steps.

12) Branch scaling (without changing layout)

The fastest legitimate multiplier is context domain cloning: same engine, different topic context → better advertiser demand → higher RPM.
Approved “non-obvious” expansion that keeps layout identical:
• Clone to high-CPM contexts (tax, compliance, security, legal templates, AI tools)
• Geo-split routing (light inventory for Tier‑3; protect Tier‑1 RPM)
• Add “explore ladders” (comparison, checklist, calculator, assumptions) — still navigation-only
• Sponsor packages for premium placements (time-based, labeled)

13) Recent System Updates (January 2026)

✅ Navigation System Fixed: All page navigation now works correctly with query parameters (?page=stats). Pages reload properly on every navigation click for optimal revenue optimization.
✅ Rate Limiting System (Cloudflare Workers): Intelligent progressive rate limiting protects bandwidth without hurting legitimate traffic.
  • Per-IP Limits: Rate limits are per visitor IP address, NOT per link
  • Link Creators: 10/min, 100/hour, 500/day per creator IP
  • Link Visitors: 60/min, 1000/hour, 5000/day per visitor IP
  • Viral Traffic Works: 100,000 unique visitors = all work fine (each IP gets separate quota)
  • Progressive Timeouts: 1min → 5min → 15min → 1hr → 2hrs (no permanent bans)
  • Auto-Clear: Violations expire after 7 days
✅ Cloudflare Workers + KV Backend (DEPLOYED): Complete centralized link storage system - LIVE and operational.
  • Live API: https://admension-api.admension.workers.dev
  • Status: ✅ Deployed, health checks passing, ready for production traffic
  • Endpoints: POST /api/links (create), GET /api/links/:code (fetch), PUT /api/links/:code (update wallet), GET /api/health (status)
  • Free Tier: 100,000 API requests/day, 1,000 writes/day, 1GB KV storage
  • Capacity: Supports 20,000-100,000 visitors/day on free tier
  • Failover: Automatic localStorage fallback if API offline
  • See: CLOUDFLARE_API_DEPLOYED.md for full documentation
✅ Revenue Projections Validated: System exceeds targets by 275-340%.
  • Target: $20 Session RPM
  • Actual: $41-74 Session RPM (avg $55) with 50% viewability
  • Per Visitor: $0.0275 with realistic assumptions
  • 100 visitors/day: $2.75/day = $82.50/month = $10.73 pool share
  • 1,000 visitors/day: $27.50/day = $825/month = $107.25 pool share
  • 10,000 visitors/day: $275/day = $8,250/month = $1,072.50 pool share
  • See: ACTUAL_EARNINGS_ANALYSIS.md for full math
✅ Anti-Fraud System (PRODUCTION-GRADE): Multi-layer fraud prevention protects earnings pool.
  • IVT Detection: 5-factor scoring system (0-100 scale), 70+ = excluded from payouts
  • Rate Limiting: 10 refreshes/session, 15/hour max (prevents rapid refresh spam)
  • Viewability Standards: 50%+ visible for 1+ second (only billable impressions count)
  • Bot Detection: Webdriver, user agent patterns, timing analysis
  • Activity Tracking: Mouse, keyboard, scroll monitoring (detects AFK farming)
  • Stagnation Refresh: Random 5-7 min refresh only if no activity detected (policy-safe)
  • Wallet Cap: Max 1% per wallet prevents whale dominance of pool
  • Walletless Burn: Links without wallets → earnings to founder (prevents spam)
  • See: ANTI_FRAUD_AND_EARNING_MECHANICS.md for complete documentation
✅ Google AdSense Integration Ready: Ad code deployed to all pages.
  • Publisher ID: ca-pub-5584590642779290
  • All Pages: AdSense code in index, interstitial, stats, create, manage, docs, admin, privacy-policy
  • Geo Tracking: Tier-1 (NA/UK/AU), Tier-2 (EU), Tier-3 (Rest) with timezone inference
  • CPM by Tier: T1=$4.00, T2=$2.60, T3=$1.30 (validated against industry standards)
  • Ready for Verification: Add AdSense snippet to site, request review
✅ Link Creation & Management (API INTEGRATED): Links now work globally across all devices and browsers.
  • ✅ Global Links: Create a link on your phone, share it, works on any device worldwide
  • ✅ API Backend: Cloudflare KV storage with automatic localStorage cache
  • ✅ Offline Mode: Falls back to localStorage if API unavailable (link works in same browser)
  • Create Links: 6-character codes, auto-copy to clipboard, wallet warnings
  • Track Traffic: Pageviews, last view timestamp, 90-day auto-expiration
  • Manage Wallets: Update wallet address for any link code (syncs via API)
  • Test Link: Try code A4AGRZ to verify global link sharing works
✅ Production Ready: All systems deployed and verified. Links created now work globally. Create your first link on the Create page and share it anywhere!

14) CLI/API Commands & Automation

Screenshot Feature: ADMENSION includes built-in full-page screenshot capability accessible via the navigation bar and JavaScript API.

Browser JavaScript API

Capture current page as PNG:
// Click the 📸 Screenshot button in nav bar
// OR call programmatically:
window.captureFullPageScreenshot();
• Captures entire scrollable page (not just viewport)
• 2x resolution for high quality
• Auto-downloads as: ADMENSION_[page]_[timestamp].png
• Works on all pages (Home, Stats, Create, Manage, Docs, Admin)

Browser DevTools Console Commands

Open browser console (F12 or Cmd+Option+I) and run:
// Screenshot current page
window.captureFullPageScreenshot();

// Get daily quote data
ADMENSION_DAILY_QUOTES.getTodaysQuote();
ADMENSION_DAILY_QUOTES.getTodaysGif();
ADMENSION_DAILY_QUOTES.getDayOfYear();

// Access analytics data
CFAMM_STATS.sessions;
CFAMM_STATS.pageviews;
CFAMM_STATS.adsShown;

// Export stats data
exportStats(); // Downloads JSON file

// Get current geo tier
window.__geoTier; // 1, 2, or 3

// Get current page
window.__page; // "home", "stats", "create", etc.

// Re-start homepage demo
window.ADMENSION_DEMO_START();

// ===== ANTI-ABUSE & FRAUD PREVENTION =====

// Get abuse tracker stats
window.getAbuseStats(); // Shows table of all anti-fraud metrics

// Get IVT score (0-100, 70+ = high risk)
window.ADMENSION_ANTI_ABUSE.ivtScore;

// Check if session is healthy
window.ADMENSION_ANTI_ABUSE.isHealthy(); // true/false

// View refresh log (rate limiting)
window.ADMENSION_ANTI_ABUSE.getRefreshLog();

// Get complete stats
window.ADMENSION_ANTI_ABUSE.getStats();

// Reset abuse tracker (admin only)
window.ADMENSION_ANTI_ABUSE.reset();

// ===== API TESTING =====

// Check API health
await window.ADMENSION_API.checkApiHealth(); // true/false

// Create a test link via API
await window.ADMENSION_API.createLink({
  linkName: "My Test Link",
  destUrl: "https://example.com",
  message: "Test message",
  chain: "ethereum",
  addr: "0x..."
});

// Fetch a link by code
await window.ADMENSION_API.getLink("A4AGRZ");

// Update wallet for a link
await window.ADMENSION_API.updateLink("A4AGRZ", {
  addr: "0xYourNewWallet",
  chain: "ethereum"
});

// List all cached links
window.ADMENSION_API.listLinks();

// Track pageview for a code
await window.ADMENSION_API.trackPageview("A4AGRZ");

CLI Tools (External)

Note: For automated screenshots via CLI/headless browser, you'll need external tools like:
1. Using Playwright (Node.js):
# Install
npm install -D @playwright/test
npx playwright install chromium

# Create screenshot script (screenshot.js):
const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch();
  const page = await browser.newPage();
  
  await page.goto('https://garebear99.github.io/ADMENSION/');
  await page.waitForLoadState('networkidle');
  
  // Full page screenshot
  await page.screenshot({
    path: 'admension-full.png',
    fullPage: true
  });
  
  await browser.close();
})();

# Run:
node screenshot.js
2. Using Puppeteer (Node.js):
# Install
npm install puppeteer

# Create script:
const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  
  await page.goto('https://garebear99.github.io/ADMENSION/', {
    waitUntil: 'networkidle2'
  });
  
  await page.screenshot({
    path: 'admension.png',
    fullPage: true
  });
  
  await browser.close();
})();
3. Using shot-scraper (Python):
# Install
pip install shot-scraper
shot-scraper install

# Take screenshot
shot-scraper https://garebear99.github.io/ADMENSION/ \
  --output admension.png \
  --height 1080 \
  --width 1920

# Full page
shot-scraper https://garebear99.github.io/ADMENSION/ \
  --output admension-full.png \
  --height full
4. Using macOS screencapture (Native):
# Capture entire screen after 5 second delay
screencapture -T 5 admension.png

# Capture window (interactive selector)
screencapture -w admension.png

# Capture selection
screencapture -s admension.png

Data Export/Import Commands

Console commands for data management:
// Export all stats data
exportStats(); // Downloads JSON

// View localStorage data
JSON.parse(localStorage.getItem('cfamm.adm_refs')); // Links
JSON.parse(localStorage.getItem('cfamm.sponsors')); // Sponsors
JSON.parse(localStorage.getItem('cfamm.sessions')); // Analytics

// Clear specific data
localStorage.removeItem('cfamm.adm_refs');
localStorage.removeItem('cfamm.sponsors');

// Clear all ADMENSION data
Object.keys(localStorage)
  .filter(k => k.startsWith('cfamm'))
  .forEach(k => localStorage.removeItem(k));

Integration Examples

Automated testing with screenshots:
// Playwright test example
const { test, expect } = require('@playwright/test');

test('ADMENSION homepage loads', async ({ page }) => {
  await page.goto('https://garebear99.github.io/ADMENSION/');
  
  // Wait for demo to load
  await page.waitForSelector('#demo_step1');
  
  // Take screenshot
  await page.screenshot({
    path: 'test-homepage.png',
    fullPage: true
  });
  
  // Verify demo is visible
  await expect(page.locator('#demo_step1')).toBeVisible();
});
💡 Pro Tip: The built-in 📸 Screenshot button is the easiest way for users to capture pages. For automation and CI/CD, use Playwright or Puppeteer.

14) Admin-only operations

Admin controls (sponsor scheduling, settlement entry, resets) live on the Admin page only.
Admins must never add incentive language or timer refresh. Keep copy neutral and post-revenue only.

Admin

Local controls, sponsor scheduling, and safety notes. Admin actions require your admin PIN.

Projection + last-month inputs (local)

Because payouts are not known until the end of the month, the progress bars use projected month revenue. After settlement, fill “Last month summary (latest settlement)” to show real outcomes.
Planning-only estimate for the current month.
Conservative default. Planning only.
HOME — Desktop Rail
HOME — In-Content Tall (engagement-gated elsewhere)
HOME — Footer Banner

Admin unlock

Admin features are locked so random visitors can’t mess with local data. Click Unlock and enter your admin PIN to use sponsor controls and reset.
locked

Sponsored sticky (72-hour) manager

Hard limits: 90 days ahead, 72 hours each, ≤9 per window, ≤270 total scheduled in horizon.
How start time works: You provide a start time; the system auto-sets end time = start + 72h. Use UTC format to avoid timezone confusion. If blank, it uses “now rounded up to next hour”.

Scheduled sponsors (local)

Reset (PIN)

This clears data for this browser only.

Monthly summaries (history)

Add up to 3+ monthly settlement summaries. Once there are 3 saved monthly summaries, the system switches the pool cap to $100,000/month for future projections.
Use the month that just settled.

Saved summaries

Shown newest → oldest.

Compliance basics (don’t get banned)

• Don’t auto-refresh ads on timers.
• Don’t incentivize clicks or tie “earnings” to ad interaction.
• Refresh/change ad slots only on user intent (route/step).
Sponsored sticky must be labeled.




ADMIN — Desktop Rail
ADMIN — In-Content Tall

Ad Funnel & Processing (How revenue happens)

This page explains the ad flow in plain language. This is a static single-file build: it shows placeholders and logs user-intent navigation. Real ad revenue is created only when you publish with a real ad provider and follow their policies.

1) The funnel (why the site earns)

2) Ad inventory on the site

3) What this build logs vs what an ad network pays

4) Policy safety (why we avoid refresh spam)

72‑Hour Sponsored Stickies (Paid Rotation)

Sponsors are scheduled in 72 hour windows. A window can contain up to 9 sponsors. This UI can display up to 3 at a time (bottom + left + right), rotating by user navigation (not timers).

How sponsors are selected

If no sponsors are booked

Sponsor quality rules

ADMENSION Pool Math (Transparent, post‑revenue)

RPM Optimization Manual (Ad-only, policy-safe)

This system is designed to maximize legitimate ad revenue via user-intent navigation and high viewability. It does not use auto-refresh timers or incentivized ad interaction.

1) What this site is

2) Placements (defined once)

3) User-intent impressions (why this is compliant)

4) Progressive reveal (viewability-first)

5) Geo-weighted density

Higher-paying geographies can support more placements without harming RPM. Lower CPM traffic uses a lighter density to keep average RPM higher.

6) What we explicitly do NOT do

7) Stats vs payouts

Advanced Publisher Controls (v1.3)

Tune density and CPM assumptions by geo tier. Affects rendering + estimates (not a promise).

Context Skin

Same engine, different copy/meta for stronger ad context.

Traffic Tier Simulator

For testing density rules locally. In production this can be wired to geo signals later.

Context Skin

Same engine, different copy/meta for stronger ad context.

CPM assumptions (for estimates)

Used only for Stats estimation. Not a guarantee.
Tier-1 CPM:
Tier-2 CPM:
Tier-3 CPM:

Placement Density by Geo Tier

Avoid over-serving low CPM traffic. Toggle what renders per tier.
Tier-1 (Premium)




Tier-2 (Balanced)




Tier-3 (Light)




Advanced Publisher Stack (v1.2)

This build adds publisher-grade knobs and diagnostics: funnel conversion, geo-tier density tuning, context skins, duration bins, and placement-weighted RPM estimation — while staying policy-safe (no refresh timers, no incentivized clicks).

Decision rules (stair-climb)

Compliance stance

ADMIN — Desktop Rail
ADMIN — In-Content Tall
Sponsored · 72-hour feature