docs: yield/intent routing integration concept

This commit is contained in:
yves.gugger
2025-12-12 14:23:32 +01:00
parent 496b0ff628
commit 3cbb4dd40d

View File

@ -0,0 +1,506 @@
# Yield / Intent Routing Integrations-Konzept
**Ziel:** Domains von "toten Assets" zu "Yield-Generatoren" machen.
**Kern-Mechanismus:** User verbindet Domain → Pounce erkennt Intent → Routing zu Affiliate-Partnern → Passive Einnahmen.
---
## 1. Public Pages (nicht eingeloggt)
### 1.1 Landing Page 4. Pillar hinzufügen
Aktuell: **DISCOVER → TRACK → TRADE**
Neu: **DISCOVER → TRACK → TRADE → YIELD**
```
┌─────────────────────────────────────────────────────────────────┐
│ │
│ YIELD │
│ "Let your domains work for you." │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 🔌 Connect Point DNS to ns.pounce.io │ │
│ │ 🧠 Analyze We detect: "kredit.ch" → Loan Intent │ │
│ │ 💰 Earn Affiliate routing → CHF 25/lead │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ "Your domains become autonomous agents." │
│ │
│ [Activate My Domains →] │
│ │
└─────────────────────────────────────────────────────────────────┘
```
**Teaser-Statistiken (für Trust):**
- "CHF 45'000+ generated this month"
- "2'400+ domains earning passively"
- "Avg. CHF 18.50/domain/month"
### 1.2 Neue Public Page: `/yield`
Eine eigene Landingpage für das Yield-Feature:
| Section | Inhalt |
|---------|--------|
| **Hero** | "Dead Domains? Make them work." + Animated revenue counter |
| **How it works** | 3-Step Animation: Connect → Analyze → Earn |
| **Use Cases** | Branchen-spezifische Beispiele (zahnarzt.ch, kredit.de, hotel-x.ch) |
| **Revenue Calculator** | "Gib deine Domain ein → geschätzter monatlicher Ertrag" |
| **Trust Signals** | Partner-Logos (Awin, PartnerStack, etc.), Testimonials |
| **CTA** | "Start Earning" → Login/Register |
---
## 2. Terminal (eingeloggt)
### 2.1 Sidebar-Erweiterung
**Neue Struktur der Sidebar:**
```
DISCOVER
├── MARKET (Auktionen)
└── INTEL (TLD Pricing)
MANAGE
├── RADAR (Dashboard)
├── WATCHLIST (Monitoring)
├── SNIPER (Alerts)
├── FOR SALE (Listings)
└── YIELD ✨ ← NEU
SETTINGS
```
### 2.2 Neue Seite: `/terminal/yield`
**Layout:**
```
┌──────────────────────────────────────────────────────────────────────────┐
│ YIELD [?] Help │
├──────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
│ │ Active │ │ Monthly │ │ Pending │ │ Total │ │
│ │ Domains │ │ Revenue │ │ Payout │ │ Earned │ │
│ │ 12 │ │ CHF 156 │ │ CHF 89 │ │ CHF 1'245 │ │
│ └────────────┘ └────────────┘ └────────────┘ └────────────┘ │
│ │
├──────────────────────────────────────────────────────────────────────────┤
│ │
│ 🔍 Search domains... [+ Activate Domain] │
│ │
├──────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ Domain │ Status │ Intent │ Route │ Yield │ │
│ ├──────────────────────────────────────────────────────────────────┤ │
│ │ zahnarzt-zh.ch │ 🟢 Active │ 🏥 Medical │ Comparis │ CHF 45 │ │
│ │ crm-tool.io │ 🟢 Active │ 💻 SaaS │ HubSpot │ $ 23 │ │
│ │ hotel-davos.ch │ 🟢 Active │ 🏨 Travel │ Booking │ CHF 67 │ │
│ │ mein-blog.de │ ⚪ Idle │ ❓ Unknown │ — │ — │ │
│ │ kredit-ch.com │ 🟡 Pending│ 💰 Finance │ Analyzing │ — │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────────┘
```
### 2.3 Domain Aktivieren Modal/Wizard
**Schritt 1: Domain eingeben**
```
┌─────────────────────────────────────────────────┐
│ Activate Domain for Yield │
├─────────────────────────────────────────────────┤
│ │
│ Enter your domain: │
│ ┌─────────────────────────────────────────┐ │
│ │ zahnarzt-zuerich.ch │ │
│ └─────────────────────────────────────────┘ │
│ │
│ [Continue →] │
│ │
└─────────────────────────────────────────────────┘
```
**Schritt 2: Intent-Erkennung (automatisch)**
```
┌─────────────────────────────────────────────────┐
│ Intent Detected │
├─────────────────────────────────────────────────┤
│ │
│ Domain: zahnarzt-zuerich.ch │
│ │
│ 🧠 Detected Intent: │
│ ┌─────────────────────────────────────────┐ │
│ │ 🏥 MEDICAL / DENTAL │ │
│ │ │ │
│ │ Keywords: zahnarzt, zuerich │ │
│ │ Confidence: 94% │ │
│ └─────────────────────────────────────────┘ │
│ │
│ 💰 Estimated Revenue: CHF 15-45/month │
│ │
│ Recommended Partners: │
│ • Comparis (Dental Comparison) │
│ • Doctolib (Appointment Booking) │
│ │
│ [Continue →] │
│ │
└─────────────────────────────────────────────────┘
```
**Schritt 3: DNS Setup**
```
┌─────────────────────────────────────────────────┐
│ Connect Your Domain │
├─────────────────────────────────────────────────┤
│ │
│ Change your nameservers to: │
│ │
│ ┌─────────────────────────────────────────┐ │
│ │ ns1.pounce.io [📋] │ │
│ │ ns2.pounce.io [📋] │ │
│ └─────────────────────────────────────────┘ │
│ │
│ ⏳ We're checking your DNS... │
│ │
│ Status: Waiting for propagation (~10 min) │
│ │
│ [I've updated my nameservers] │
│ │
└─────────────────────────────────────────────────┘
```
**Schritt 4: Aktiviert**
```
┌─────────────────────────────────────────────────┐
│ ✅ Domain Activated! │
├─────────────────────────────────────────────────┤
│ │
│ zahnarzt-zuerich.ch is now earning. │
│ │
│ 🏥 Intent: Medical/Dental │
│ ➔ Route: Comparis Dental │
│ 💰 Est. Yield: CHF 15-45/month │
│ │
│ What happens now: │
│ • We host a minimal landing page │
│ • Visitors are routed to partners │
│ • You earn affiliate commissions │
│ • Payouts monthly (min. CHF 50) │
│ │
│ [View My Yield Dashboard] │
│ │
└─────────────────────────────────────────────────┘
```
### 2.4 Portfolio-Tab Integration (Alternative)
Statt einer separaten Seite kann "Yield" auch als **Tab in der Watchlist** integriert werden:
```
┌────────────────────────────────────────────────────────────────┐
│ [Watching] [My Portfolio] [Yield] ✨ │
└────────────────────────────────────────────────────────────────┘
```
**Vorteil:** Weniger Navigation, alles an einem Ort.
**Nachteil:** Watchlist wird komplexer.
**Empfehlung:** Starte mit separater `/terminal/yield` Seite, kann später in Portfolio integriert werden.
---
## 3. Backend-Architektur (High-Level)
### 3.1 Neue Models
```python
# backend/app/models/yield_domain.py
class YieldDomain(Base):
"""Domain activated for yield/intent routing."""
__tablename__ = "yield_domains"
id: int
user_id: int # FK → users
domain: str # "zahnarzt-zuerich.ch"
# Intent
detected_intent: str # "medical_dental"
intent_confidence: float # 0.94
intent_keywords: str # JSON: ["zahnarzt", "zuerich"]
# Routing
active_route: str # "comparis_dental"
partner_id: int # FK → affiliate_partners
# Status
status: str # "pending", "active", "paused", "inactive"
dns_verified: bool
activated_at: datetime
# Revenue
total_clicks: int
total_conversions: int
total_revenue: Decimal
created_at: datetime
updated_at: datetime
class YieldTransaction(Base):
"""Revenue events from affiliate partners."""
__tablename__ = "yield_transactions"
id: int
yield_domain_id: int # FK
event_type: str # "click", "lead", "sale"
partner_id: int
amount: Decimal
currency: str
# Attribution
referrer: str
user_agent: str
geo_country: str
# Status
status: str # "pending", "confirmed", "paid", "rejected"
confirmed_at: datetime
paid_at: datetime
created_at: datetime
class AffiliatePartner(Base):
"""Affiliate network/partner configuration."""
__tablename__ = "affiliate_partners"
id: int
name: str # "Comparis Dental"
network: str # "awin", "partnerstack", "direct"
# Matching
intent_categories: str # JSON: ["medical_dental", "medical_general"]
geo_countries: str # JSON: ["CH", "DE", "AT"]
# Payout
payout_type: str # "cpc", "cpl", "cps"
payout_amount: Decimal
payout_currency: str
# Integration
tracking_url_template: str
api_endpoint: str
api_key_encrypted: str
is_active: bool
created_at: datetime
```
### 3.2 Neue API Endpoints
```python
# backend/app/api/yield.py
@router.get("/domains")
# Liste alle Yield-Domains des Users
@router.post("/domains/activate")
# Neue Domain aktivieren (Step 1-4 Wizard)
@router.get("/domains/{domain}/intent")
# Intent-Detection für eine Domain
@router.get("/domains/{domain}/verify-dns")
# DNS-Verifizierung prüfen
@router.put("/domains/{domain}/pause")
# Routing pausieren
@router.get("/stats")
# Gesamtstatistiken (Revenue, Clicks, etc.)
@router.get("/transactions")
# Transaktions-Historie
@router.get("/payouts")
# Payout-Historie
```
### 3.3 Intent-Detection Service
```python
# backend/app/services/intent_detector.py
class IntentDetector:
"""Erkennt den Intent einer Domain basierend auf Name und TLD."""
INTENT_CATEGORIES = {
"medical_dental": {
"keywords": ["zahnarzt", "dentist", "dental", "zahn"],
"partners": ["comparis_dental", "doctolib"],
"avg_cpl": 25.00
},
"travel_hotel": {
"keywords": ["hotel", "ferien", "vacation", "resort"],
"partners": ["booking", "hotels_com"],
"avg_cpl": 15.00
},
"finance_loan": {
"keywords": ["kredit", "loan", "finanz", "hypothek"],
"partners": ["comparis_finance", "lendico"],
"avg_cpl": 50.00
},
"saas_software": {
"keywords": ["crm", "erp", "software", "tool", "app"],
"partners": ["hubspot", "partnerstack"],
"avg_cpl": 30.00
},
# ... weitere Kategorien
}
def detect(self, domain: str) -> IntentResult:
"""Analysiert Domain und gibt Intent zurück."""
name = domain.rsplit('.', 1)[0].lower()
# ... Matching-Logik
```
### 3.4 DNS/Hosting Service
```python
# backend/app/services/yield_dns.py
class YieldDNSService:
"""Verwaltet DNS und Hosting für Yield-Domains."""
async def verify_nameservers(self, domain: str) -> bool:
"""Prüft ob Domain auf ns1/ns2.pounce.io zeigt."""
async def provision_landing_page(self, domain: str, intent: str) -> str:
"""Erstellt minimale Landing Page für Routing."""
async def get_tracking_url(self, domain: str, partner_id: int) -> str:
"""Generiert Affiliate-Tracking-URL."""
```
---
## 4. Phasen-Plan
### Phase 2.1: MVP (4-6 Wochen)
| Task | Prio | Aufwand |
|------|------|---------|
| Intent-Detection Engine (Keyword-basiert) | 🔴 | 1 Woche |
| Yield-Domain Model + API | 🔴 | 1 Woche |
| `/terminal/yield` UI (Basic) | 🔴 | 1 Woche |
| DNS-Verifizierung | 🔴 | 3 Tage |
| 1 Partner-Integration (z.B. Awin) | 🔴 | 1 Woche |
| Landing Page Generator (Minimal) | 🟡 | 3 Tage |
| Transaction Tracking | 🟡 | 3 Tage |
**Ergebnis:** User können Domains aktivieren, wir routen zu 1 Partner-Netzwerk.
### Phase 2.2: Erweiterung (4 Wochen)
| Task | Prio | Aufwand |
|------|------|---------|
| Weitere Partner (5-10) | 🔴 | 2 Wochen |
| Payout-System | 🔴 | 1 Woche |
| Public Landing `/yield` | 🟡 | 3 Tage |
| Landing Page Customization | 🟡 | 3 Tage |
| Revenue Analytics Dashboard | 🟡 | 3 Tage |
### Phase 2.3: Marktplatz-Integration
| Task | Prio | Aufwand |
|------|------|---------|
| "Yield-Generating Domains" Kategorie | 🟡 | 1 Woche |
| Valuation basierend auf Yield (30x MRR) | 🟡 | 3 Tage |
| Yield-History für Käufer sichtbar | 🟡 | 3 Tage |
---
## 5. Monetarisierung
### Revenue Split
| Party | Anteil |
|-------|--------|
| **Domain Owner** | 70% |
| **Pounce** | 30% |
### Tier-Gating
| Tier | Yield-Domains | Payout Threshold |
|------|---------------|------------------|
| **Scout** | 0 (Feature locked) | — |
| **Trader** | 5 | CHF 100 |
| **Tycoon** | Unlimited | CHF 50 |
---
## 6. UX-Philosophie
### Prinzipien
1. **Zero Config:** User ändert nur Nameserver. Alles andere ist automatisch.
2. **Transparent:** Klare Anzeige was passiert, welcher Partner, welche Einnahmen.
3. **Instant Value:** Zeige geschätzten Revenue VOR Aktivierung.
4. **Trust:** Partner-Logos, echte Zahlen, keine Versprechen.
### Sprache
- ❌ "Domain Parking" (klingt nach 2005)
- ✅ "Domain Yield" / "Intent Routing"
- ❌ "Passive Income" (scammy)
- ✅ "Your domain works for you"
---
## 7. Technische Voraussetzungen
| Komponente | Benötigt | Status |
|------------|----------|--------|
| Eigene Nameserver (ns1/ns2.pounce.io) | ✅ | Neu |
| DNS-Hosting (Cloudflare API oder ähnlich) | ✅ | Neu |
| Landing Page CDN | ✅ | Neu |
| Affiliate-Netzwerk Accounts | ✅ | Neu |
| Payout-System (Stripe Connect?) | ✅ | Teilweise (Stripe existiert) |
---
## 8. Zusammenfassung
### Was ändert sich im UI?
| Bereich | Änderung |
|---------|----------|
| **Landing Page** | Neuer 4. Pillar "YIELD" + Link zu `/yield` |
| **Public `/yield`** | Neue Landingpage mit Calculator |
| **Terminal Sidebar** | Neuer Menüpunkt "YIELD" unter MANAGE |
| **`/terminal/yield`** | Neue Seite: Domain-Liste, Stats, Activate-Wizard |
| **Watchlist** | Optional: "Activate for Yield" Button bei eigenen Domains |
### Backend-Aufwand
- 3 neue Models
- 1 neuer API Router
- 2 neue Services (Intent, DNS)
- Partner-Integrationen (Awin, PartnerStack, etc.)
### Priorität
**Starte mit `/terminal/yield` + Intent-Detection + 1 Partner.**
Public Page und Marktplatz-Integration kommen später.
---
*"Domains werden keine toten Assets mehr. Sie werden autonome Agenten."*