Home » Die Technik

Die Technik

Wie die Links zu den Bonusprogrammen eingebunden werden (als Banner oder Textlink), wird bei den jeweiligen Anbietern beschrieben, trickreich wird es bei der Bestätigung, schließlich müssen Sie überprüfen, ob jemand auch wirklich an der Aktion teilgenommen hat.

Bei den wenigsten Anbietern erhalten Sie Details zu den einzelnen Leads, also muss auf andere Methoden zurückgegriffen werden. In jedem Fall muss der User nach abgeschlossener Aktion zur Bestätigung bei Ihnen etwas eingeben. So können Sie zum Beispiel bei Flirtseiten den Usernamen oder den Link zum Profil erfragen und die dort angegebenen Daten mit Ihren vergleichen. Oder bei Gewinnspielen eine Kopie der Bestätigungsmail verlangen, die Sie mit einer Referenz- Mail vergleichen.

Einfacher und vor allem zuverlässiger ist es jedoch, wenn der Anbieter SubIDs zulässt! So können Sie durch die eindeutige Zuordnung von Reflink und User in Ihren Statistiken genau sehen, welcher User (= welche SubID) Ihnen Leads erbracht hat. Erläuterungen zu diesem Vorgehen finden Sie bei den jeweiligen Anbietern

Natürlich ist dies gerade bei großen Seiten viel Arbeit, die Sie sicher nicht selber bewältigen können und wollen. Aber auch dafür haben wir zwei Lösungsansätze:

  • Abwälzung der Arbeit auf Helfer: Bei Kizzes.de übernimmt die Überprüfung das Moderatorenteam, diese Vorgehensweise ist unseres Erachtens die zuverlässigste, wenn man beispielsweise eine Community betreibt, die bereits über ein vertrauenswürdiges Team von Helfern verfügt.
  • Automatische Überprüfung: Wenn Sie sich darauf beschränken, dass die User zur Bestätigung eine Mail o.ä. kopieren müssen, können Sie diese jedoch auch mittels regulärer Ausdrücke (siehe unten) automatisch überprüfen!

Prinzip der manuellen Überprüfung

Vorteil:

  • Für jedes Programm geeignet

Nachteil:

  • Das Überprüfen kostet Arbeit und Zeit

Prinzip der automatischen Überprüfung

Vorteil:

  • Einmal eingestellt, brauchen Sie sich um eine Bonusaktion nicht weiter zu kümmern.

Nachteile:

  • Evtl. nicht für jedes Programm geeignet
  • Das Einstellen einer Aktion (mit fehlerfreier RegEx!) ist etwas aufwändiger

Je mehr Teilnahmen zu erwarten sind, desto eher ist diese Methode vorzuziehen.

Zur Realisierung der automatischen Überprüfung siehe Abschnitt RegEx und Code-Snippets.

Reguläre Ausdrücke (RegEx)

Mit regulären Ausdrücken können Texte auf bestimmte Muster hin untersucht werden. Eine detaillierte Anleitung zum Umgang mit regulären Ausdrücken in PHP finden Sie in der PHP-Dokumentation. Aber keine Angst, für unsere Zwecke ist es nicht nötig, sich so ausgiebig damit zu befassen, nehmen wir ein einfaches Beispiel:

Mail:
Guten Tag Herr Mustermann,

Sie haben Ihre Teilnahme bei tollesgewinnspiel.de erfolgreich bestätigt. Wir wünschen Ihnen viel Glück!

Ihre Gewinn-Nummer ist 123687 (schreiben Sie diese auf!)

Viele Grüße,
tollesgewinnspiel.de

RegEx:
/Guten Tag (.+)\,

Sie haben Ihre Teilnahme bei tollesgewinnspiel\.de erfolgreich bestätigt\. Wir wünschen Ihnen viel Glück\!

Ihre Gewinn-Nummer ist ([0-9]+) \(schreiben Sie diese auf\!\)

Viele Grüße\,
tollesgewinnspiel\.de/

Erläuterung:
/ /: Die Schrägstriche markieren Anfang und Ende des Ausdrucks
(.+): Dies steht für eine Reihe beliebiger Zeichen
([0-9]+): Dies steht für eine Reihe von Ziffern
\. \, \( \) \!: Sonderzeichen müssen in jedem Fall mit einem vorangehenden Backslash \ "escaped" werden, um zu kennzeichnen, dass sie keine spezielle Bedeutung haben!

Mit diesen Grundlagen sollten Sie schon die meisten Bestätigungen überprüfen können. Es ist übrigens nicht zwingend notwendig, die gesamte Mail in den regulären Ausdruck aufzunehmen, Sie können also auch nur eine markante Stelle heraussuchen, die in der vom User eingesandten Bestätigung dann gefunden werden muss.

Zur Umsetzung beachten Sie die folgenden Code-Snippets:

Code-Snippets

Erstellen der Bonusaktionen-DB in MySQL

Wir empfehlen eine Datenbank für die Bonusaktionen sowie eine zur Speicherung der bereits bestätigten, damit kein User mehrmals an der selben Aktion teilnehmen kann.

-- 
-- Tabellenstruktur für Tabelle `bonus`
-- 

CREATE TABLE `bonus` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `title` varchar(100) collate utf8_unicode_ci NOT NULL,
  `instructions` text collate utf8_unicode_ci NOT NULL,
  `confirmation` text collate utf8_unicode_ci NOT NULL,
  `regex` text collate utf8_unicode_ci NOT NULL,
  `active` set('0','1') collate utf8_unicode_ci NOT NULL default '1',
  PRIMARY KEY  (`id`),
  KEY `active` (`active`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;

-- 
-- Tabellenstruktur für Tabelle `bonus_user`
-- 

CREATE TABLE `bonus_user` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `user_id` int(10) unsigned NOT NULL,
  `bonus_id` int(10) unsigned NOT NULL,
  `confirmed` set('0','1') collate utf8_unicode_ci NOT NULL default '0'
  PRIMARY KEY  (`id`),
  KEY `user_id` (`user_id`,`bonus_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Erläuterung:
Tabelle bonus:
  • title - Titel der Aktion
  • instructions - Anweisungen für den User
  • confirmation - Anweisungen zum Freischalten (nur bei manueller Überprüfung)
  • regex - der reguläre Ausdruck (nur bei automatischer Überprüfung)
Tabelle bonus_user:
  • user_id - User-ID (abhängig von Ihrem System)
  • bonus_id - die ID der Bonusaktion
  • confirmed - wartet auf Bestätigung / ist bestätigt (nur bei manueller Überprüfung)

vereinfachter Beispielcode für automatische Überprüfung (PHP)

Wenn Sie sich für die automatische Überprüfung entschieden haben, wird Ihre Funktion zum Bestätigen in etwa so aussehen:

<?
/*
 * $bonus_id: ID der Bonusaktion
 * $user_id: ID des Users
 * $confirmation: Die vom User eingegebene Bestätigung
 *
 * Gibt True bei erfolgreicher Bestätigung aus
 */
  
function bonus_confirm$bonus_id$user_id$confirmation) {
    
$bonus_id intval$bonus_id);
    
$user_id intval$user_id);
    
// Aktion laden:
    
$sql 'SELECT b.`regex`,u.`id` AS `confirmed` FROM `bonus` b 
            LEFT JOIN `bonus_user` u ON b.`id`=u.`bonus_id` AND `user_id`='
$user_id '
            WHERE b.`id`='
$bonus_id .' AND b.`active`=\'1\'';
    
$res mysql_query$sql);

    if (!
$row mysql_fetch_array($res)) {
      
// Bonusaktion nicht gefunden
      
return False;
    }

    if (
$row['confirmed']) {
      
// Schon teilgenommen
      
return False;
    }

    if (!
preg_match$row['regex'], $confirmation)) {
      
// Bestätigung inkorrekt
      
return False;
    }

    
// Bestätigung eintragen
    
$sql 'INSERT INTO `bonus_user` (`bonus_id`,`user_id`)
            VALUES ('
$bonus_id .', '$user_id .')';
    
mysql_query$sql);

    return 
True;
  }
?>

Noch Fragen?

Bei konkreten Fragen, Unklarheiten und Ergänzungen besuchen Sie bitte unser Forum!

Login:

Name
Passwort
Registrieren
Social Bookmarking: Bookmark bei: Mr. Wong Bookmark bei: Del.icio.us

Quickstart:

Ich suche:

Häufige Suchbegriffe:


Gewinnrechner:

Unique User / Tag
Max. User online
Browserspiel?
_____
Was ist das?

Anzeigen