## Projektbeschreibung
Ein intelligentes Affiliate-Link-Rotationssystem, das automatisch zwischen verschiedenen Affiliate-Links rotiert. Ideal für Webmaster, die mehrere Affiliate-Partner fair behandeln und Provisionen gerecht verteilen möchten. Das System verteilt Traffic gleichmäßig und trackt Klicks für jeden Affiliate.
## Hauptfunktionen
### Öffentlicher Bereich
- **Automatische Rotation** - Zufälliger Affiliate bei jedem Klick
- **Direkte Weiterleitung** - Keine Wartezeiten oder Zwischenseiten
- **Klick-Tracking** - Jeder Klick wird gezählt
- **Statistik-Seite** - Öffentliche Klick-Zahlen einsehen
- **Fair Distribution** - Gleichmäßige Verteilung durch Zufallsalgorithmus
### Benutzer-Dashboard
- **Eigene Links** - Affiliate-Links selbst verwalten
- **Schnell-Hinzufügen** - URL, Titel, optional Banner
- **Klick-Statistiken** - Eigene Performance sehen
- **Status-Übersicht** - Aktiv/Wartend erkennbar
- **Verwaltung** - Links bearbeiten und löschen
### Admin-Panel
- **Alle Affiliates** - Komplette Übersicht
- **Freigabe-System** - Links aktivieren/deaktivieren
- **Benutzer-Verwaltung** - Registrierte User sehen
- **Moderation** - Unangemessene Links entfernen
- **Statistiken** - Gesamte Performance
## Technische Details
**Programmiersprache:** PHP 8.4
**Datenbank:** MySQL mit 3 Tabellen
**Sicherheit:** CSRF-Schutz, Bcrypt-Passwörter, PDO prepared statements
**Design:** Modernes Orange-Design
**Rotation:** SQL RAND() für echte Zufallsverteilung
### Datenbankstruktur
- `affiliates` - Affiliate-Links mit Klick-Counter
- `users` - Benutzerkonten
- `admin` - Admin-Zugangsdaten
### Rotations-Mechanismus
```php
SELECT * FROM affiliates
WHERE active=1
ORDER BY RAND()
LIMIT 1
```
Jeder Aufruf von `index.php` wählt zufällig einen aktiven Affiliate und leitet weiter.
## Installation
1. Alle Dateien auf Webserver hochladen
2. `install.php` im Browser aufrufen
3. Datenbank-Zugangsdaten eingeben
4. Admin-Account erstellen
5. Installation abschließen
**Standard-Admin:**
Benutzername: `admin`
Passwort: *(beim Setup festgelegt)*
## Verwendung
### Als Affiliate (Benutzer)
1. Registrieren und anmelden
2. Dashboard aufrufen
3. Affiliate-Link hinzufügen:
- Titel (z.B. "Amazon Books")
- URL (deine Affiliate-URL)
- Optional: Banner-URL
4. Auf Freigabe warten
5. Nach Aktivierung: Klicks sammeln
### Als Admin
1. Admin-Panel öffnen
2. Neue Links freigeben
3. Unangemessene Links deaktivieren/löschen
4. Benutzer verwalten
5. Statistiken überwachen
### Traffic generieren
Link zum Rotator teilen:
```
https://ihre-domain.de/
```
Jeder Klick rotiert automatisch!
## Features im Detail
### Rotations-System
- **Zufalls-Algorithmus** - SQL RAND() für echte Zufälligkeit
- **Gleichmäßige Verteilung** - Über Zeit gleicht sich aus
- **Sofortige Weiterleitung** - Keine Verzögerung
- **Klick-Tracking** - Jeder Klick wird in DB gespeichert
- **Nur aktive Links** - Inaktive werden übersprungen
### Fairness-Garantie
- Jeder aktive Affiliate hat gleiche Chance
- Keine Bevorzugung
- Transparente Statistiken
- Langfristig ausgeglichene Verteilung
### Performance
- **Schnelle Queries** - Optimierte Datenbankabfragen
- **Minimal Overhead** - Direkte Weiterleitung
- **Keine Sessions nötig** - Stateless Rotation
- **Skalierbar** - Funktioniert mit 10 oder 10.000 Affiliates
## Einsatzgebiete
- **Affiliate-Netzwerke** - Mehrere Partner fair behandeln
- **Vergleichsportale** - Traffic auf Partner verteilen
- **Gutschein-Seiten** - Verschiedene Shops rotieren
- **Review-Blogs** - Mehrere Anbieter gleichwertig
- **Cashback-Portale** - Provisionen fair aufteilen
- **Link-Sharing** - Community-basierte Rotation
## Beispiel-Szenarien
### Szenario 1: Produktblog
Blog über Kameras mit 5 Partnern:
- Amazon Affiliate
- eBay Partner Network
- Mediamarkt Affiliate
- Saturn Partner
- Foto-Koch Affiliate
Rotator verteilt Klicks gleichmäßig auf alle 5.
### Szenario 2: Gutschein-Portal
10 verschiedene Online-Shops mit Gutscheinen.
Nutzer klickt auf "Zum Angebot" → rotiert durch Shops.
### Szenario 3: Vergleichsportal
Mehrere Versicherungen/Banken/Anbieter.
"Jetzt vergleichen" Button rotiert durch Partner.
## Systemanforderungen
- **Webserver** - Apache/Nginx mit PHP
- **PHP** - Version 8.0 oder höher
- **MySQL** - Version 5.7 oder höher
- **Speicherplatz** - 5 MB Webspace
- **Extensions** - PDO, session
## Dateien
- `index.php` - Rotations-Handler (Hauptseite)
- `stats.php` - Öffentliche Statistiken
- `login.php` - Login und Registrierung
- `user.php` - Benutzer-Dashboard
- `admin.php` - Admin-Panel
- `config.php` - Datenbank-Konfiguration
- `install.php` - Installations-Wizard
- `style.css` - Design-Stylesheet
- `rotator.sql` - Datenbank-Schema
## Sicherheitsmerkmale
### Authentifizierung
- **Bcrypt-Hashing** - Sichere Passwörter
- **Session-Management** - HttpOnly Cookies
- **CSRF-Protection** - Token-Validierung
- **SQL-Injection-Schutz** - PDO prepared statements
### Link-Validierung
- **URL-Prüfung** - Nur valide URLs
- **Admin-Freigabe** - Links werden moderiert
- **Spam-Schutz** - Admin kann deaktivieren
- **User-Isolation** - Jeder sieht nur eigene Links
## Best Practices
### Für Webmaster
- Rotator-Link prominent platzieren
- Statistiken regelmäßig prüfen
- Inaktive Affiliates entfernen
- Neue Partner schnell freigeben
- Fair Play garantieren
### Für Affiliates
- Valide Affiliate-URLs verwenden
- Aussagekräftige Titel wählen
- Banner hochwertig (optional)
- Regelmäßig Statistiken checken
- Performance optimieren
### Link-Qualität
- Funktionierende URLs prüfen
- Keine gebrochenen Links
- Tracking-Parameter korrekt
- Mobile-freundlich
- Landing Pages relevant
## Erweiterungsideen
### Basis-Features
- **Gewichtung** - Manche Links öfter zeigen
- **Kategorien** - Nach Themen rotieren
- **Zeitsteuerung** - Bestimmte Uhrzeiten
- **Geo-Targeting** - Nach Land unterscheiden
- **Device-Targeting** - Desktop vs. Mobile
### Erweiterte Rotation
- **Round-Robin** - Reihum statt zufällig
- **Click-Balancing** - Ausgleich nach Klicks
- **Performance-basiert** - Erfolgreiche öfter
- **Split-Testing** - A/B Tests für Links
- **Conversion-Tracking** - Nicht nur Klicks
### Analytics
- **Erweiterte Stats** - Grafiken, Charts
- **Conversion-Rate** - Verkäufe tracken
- **Revenue-Tracking** - Provisionen berechnen
- **Heatmaps** - Klick-Zeiten
- **Referrer-Tracking** - Woher kommen Besucher?
### Integration
- **API** - Externe Integration
- **Webhook** - Bei Klicks benachrichtigen
- **Subnetworks** - Mehrere Rotator
- **White-Label** - Für Partner anpassbar
- **WordPress-Plugin** - Easy Integration
### Premium-Features
- **Provisionsabrechnung** - Automatisch teilen
- **Auszahlungen** - User-Payments
- **Billing-System** - Monetarisierung
- **Premium-Plätze** - Höhere Frequenz
- **Analytics-Dashboard** - Detaillierte Insights
## Rotations-Algorithmen
### Aktuell: Random (RAND())
```sql
ORDER BY RAND()
```
**Vorteile:** Einfach, fair langfristig
**Nachteile:** Kurzfristig ungleich
### Alternative: Round-Robin
```php
$lastId = getLastUsed();
$next = getNextAfter($lastId);
```
**Vorteile:** Perfekt gleichmäßig
**Nachteile:** Vorhersehbar
### Alternative: Weighted
```sql
ORDER BY (RAND() * weight) DESC
```
**Vorteile:** Bevorzugung möglich
**Nachteile:** Komplexer
## Performance-Optimierung
### Für viele Klicks
- **Caching** - Aktive Affiliates in Memory
- **Connection-Pooling** - DB-Verbindungen
- **Redirect-Caching** - HTTP 301/302 clever nutzen
- **Load-Balancing** - Mehrere Server
### Für viele Affiliates
- **Indexierung** - Index auf `active` Spalte
- **Query-Optimierung** - JOIN vermeiden wo möglich
- **Pagination** - Nicht alle laden
- **Archive** - Alte/inaktive auslagern
## Statistik-Funktionen
### Aktuelle Stats
- Klicks pro Affiliate
- Sortierung nach Performance
- Zeitraum-Filter
- Export-Funktion
### Erweiterte Stats (Optional)
```php
// Klicks pro Tag
SELECT DATE(clicked_at) as day, COUNT(*)
FROM clicks
GROUP BY day
// Top Performer
SELECT * FROM affiliates
ORDER BY clicks DESC
LIMIT 10
// Conversion Rate
SELECT affiliate_id,
clicks,
conversions,
(conversions/clicks)*100 as rate
FROM stats
```
## Monetarisierung
### Geschäftsmodelle
- **Provision-Sharing** - % der Einnahmen teilen
- **Premium-Accounts** - Mehr Sichtbarkeit
- **Featured-Spots** - Höhere Rotation
- **White-Label** - System vermieten
- **Setup-Fee** - Einmalige Gebühr
### Revenue-Tracking
```php
// Provision berechnen
$totalRevenue = getAffiliateEarnings($userId);
$commission = $totalRevenue * 0.20; // 20%
payoutToUser($userId, $commission);
```
## Rechtliche Hinweise
⚠️ **Wichtig:**
- Affiliate-Richtlinien beachten
- Transparenz gegenüber Partnern
- Datenschutz (DSGVO)
- Impressum erforderlich
- AGB für User erstellen
- Cookie-Hinweis (Tracking)
### Affiliate-Compliance
- Keine versteckten Redirects
- Kein Cookie-Stuffing
- Keine Trademark-Bidding (je nach Partner)
- Offenlegung gegenüber Endkunden
- Partner-Richtlinien einhalten
## Troubleshooting
**Problem:** Rotation funktioniert nicht
**Lösung:** Mindestens 1 aktiver Affiliate nötig
**Problem:** Klicks werden nicht gezählt
**Lösung:** DB-Schreibrechte prüfen
**Problem:** Immer gleicher Affiliate
**Lösung:** Nur 1 aktiv oder Cache-Problem
**Problem:** Zu langsam
**Lösung:** Indexierung, Caching aktivieren
## Vergleich zu Alternativen
**vs. Manuelles Rotieren:**
- ✅ Automatisch
- ✅ Fair
- ✅ Tracking inklusive
**vs. JavaScript-Rotation:**
- ✅ SEO-freundlich
- ✅ Kein Adblocker-Problem
- ✅ Server-seitig sicher
**vs. Externe Dienste:**
- ✅ Selbst gehostet
- ✅ Keine Gebühren
- ✅ Volle Kontrolle
## Community-Features (Optional)
- **Leaderboard** - Top Affiliates
- **Rewards** - Für Performance
- **Forum** - Affiliate-Austausch
- **Tutorials** - Erfolg-Tipps
- **Partner-Finder** - Neue Affiliates finden
## Lizenz
Verwendung für private und kommerzielle Zwecke.
---
**Version:** 1.0
**Entwickelt:** 2025
**Sprache:** Deutsch
**PHP:** 8.4+
**Kategorie:** Affiliate Marketing / Link-Rotation