Belboon – API, Auslesen der offenen Transaktionen


$report_url='http://ui.belboon.com/export/events/?key=deinkey&type=ls';
$homepage = file_get_contents($report_url);
$homepage = str_replace('"', '', $homepage);
$homepage = explode("\n", $homepage);
foreach($homepage as $transaction)
{
$arr_transaction = explode(';', $transaction);
if ($arr_transaction[1] == "offen")
{
$commission=$commission+$arr_transaction[10];
}
}
echo "Belboon: ".$commission."
";

Das Script muss auf den jeweiligen Key angepasst werden. Diesen findet man bei Belboon im Backend unter Statistik => Eventliste => Downloadlink.
Bei der Sichtung der APIs von Belboon, Superclix, Adcell, Groupon und Andere ist mir aufgefallen, dass sich hier Transaktionen „nur“ nach den Status „offen“, „bestätigt / ausgezahlt“ und „abgelehnt“ / Storno filtern lassen. Die Zahlen beschreiben also ausschließlich die „offenen“ Transaktionen, bestätigte oder zur Zahlung freigegebene „Events“ werden hier leider nicht berücksichtigt.

Auslesen der offenen Transaktionen aus der Adcell-API


$StartDate = time()-180*86400;
$EndDate = time();
$report_url = 'http://www.adcell.de/csv_affilistats.php?sarts=x&pid=a&status=a&subid=&eventid=a';
$report_url .= '×tart='.$StartDate;
$report_url .= '&timeend='.$EndDate;
$report_url.= '&uname=username';
$report_url .= '&pass=passwort';
$homepage = file_get_contents($report_url);
$homepage = utf8_encode($homepage);
$homepage = str_replace('"', '', $homepage);
$homepage = explode("\n", $homepage);
foreach($homepage as $transaction)
{
$arr_transaction = explode(';', $transaction);
if ($arr_transaction[7] == "offen")
{
$arr_transaction[9] = str_replace(',', '.', $arr_transaction[9]);
$adcell=$adcell+$arr_transaction[9];
}
}
echo "Adcell: ".$adcell."
";

Das Auslesen der Datensätze aus der Adcell-API funktioniert nach dem selben Schema wie bei Superclix und Groupon. Die Zugangsdaten – also die Variablen „uname“ und „pass“ – lassen sich im Backend finden und wurden in einem entsprechendem Beitrag bereits erläutert.

Auslesen der offenen Transaktionen aus der Groupon-API


$EndDate = date('Y-m-d');
$startddate = date('Y-m-d', strtotime('-3 month'));
$report_url = 'https://partner-int-api.groupon.com/reporting/v2/campaignActivity.csv?clientId=deineid&group=date&date=['.$startddate.'&date='.$EndDate.']&campaign.currency=EUR';
$homepage = file_get_contents($report_url);
$homepage = utf8_encode($homepage);
$homepage = str_replace('"', '', $homepage);
$homepage = explode("\n", $homepage);
foreach($homepage as $transaction)
{
$arr_transaction = explode(',', $transaction);
$gcommission=$gcommission+$arr_transaction[14];
}
echo "Groupon: ".$gcommission."
";

Die Beendigung der Partnerschaft von Groupon / Zanox machte neulich die Anbindung des Groupon-Partnerprogramms notwendig. Das Script behandelt hier nur (!) die Ausgabe der CSV-basierenden Reports, man kann natürlich die Formate „JSON“ und „XML“ verwenden, wenn die „report_url“ in der Form „campaignActivity.[format]“ angepasst wird. Die Variable „deineid“ verlangt einen speziellen API-Reporting-Code, den man sich über die Profilansicht besorgen kann. Weitere Informationen zur API und den auslesbaren Daten findet man im „Help-Center„.

Offene Transaktionen aus Superclix (API) auslesen


$EndDate = date('Y-m-d');
$startdate = date('Y-m-d', strtotime('-3 month'));
$report_url='http://clix.superclix.de/export/partner/exportstats303.php? id=username&pw=passwort&begin='.$startdate.'&end='.$EndDate.'&confdate=1';
$homepage = file_get_contents($report_url);
$homepage = utf8_encode($homepage);
$homepage = str_replace('"', '', $homepage);
$homepage = explode("\n", $homepage);
foreach($homepage as $transaction)
{
$arr_transaction = explode(';', $transaction);
if ($arr_transaction[1] == "offen")
{
$arr_transaction[4] = str_replace(',', '.', $arr_transaction[4]);
$scommission=$scommission+$arr_transaction[4];
}
}
echo "Superclix: ".$scommission."";

Das Auslesen der Statistik-CSV von Superclix ist relativ einfach und hier muss natürlich das Script auf die jeweiligen Zugangsdaten angepasst werden. Die Variable $arr_transaction[x] beschreibt die Zeilen der CSV und die Angaben zu den Provisionen befindet sich hier in der – jeweils – vierten Zelle. Möchte man nun hier die Werbeflächen, die Umsätze oder die Bearbeitungsdaten auch analysieren, hilft hierbei ein Blick in die Kopfzeile der downloadbaren CSV und das Anpassen des Scriptes.

Webgains – API, unbestätigte und offene Provisionen auslesen

Den nachfolgenden Code verwende ich in der aktuellen Fassung für den kompletten Überblick aller „offener“ Posten. Hierunter wird verstanden: Sale generiert => Sale bestätigt => Sale in Bearbeitung. Eine Filterung nach „zur Bezahlung freigegeben“ und „Storno“ ist hier noch nicht möglich. Die Prozedur „verlangt“ eine vorher befüllte Tabelle mit sämtlichen aktiven Werbeplattformen aus dem Netzwerk „Webgains“.


$ergebnis = mysql_query("SELECT id, name_url, id_webgains FROM `plattforms`");
$offen=0; // zaehlvariable fuer die Summe => Provision
while($row = mysql_fetch_object($ergebnis))
{
$projekt= $row->name_url;
$id_projekt= $row->id_webgains;
$foo = intval($id_projekt);
$earningsResult = $webgainsClient->getFullEarningsWithPaymentDate($dateStart, $dateEnd, $foo, LOGIN_MAIL, LOGIN_PASSWORD);
if (is_soap_fault($earningsResult)) {
// error handling
} else {
foreach ($earningsResult as $item) {
$status=$item->status; // status auslesen
if ($status == 'confirmed') {
if ($bearb == 'notcleared' or $bearb == 'cleared') //pruefe bestaetigt => in bearbeitung
{
$offen=floatval($offen+$item->commission); // $item->saleValue fuer umsatzzaehlung eintragen
}
}
}
}
}
echo "Webgains: ".$offen."
";

Webgains API, Statistiken auslesen

Vor kurzem fand ich Gelegenheit, mich der Statistikproblematik zu widmen. Im Ergebnis entstand der folgende Quellcode (Auszug!)

Grundsätzliches
define ('LOGIN_MAIL', 'username');
define ('LOGIN_PASSWORD', 'passwort');
define ('CAMPAIGNID', werbeplattform_id);
$dateStart = date('Y-m-d', time()-7*86400).' 00:00:00';
$dateEnd = date('Y-m-d H:i:s');

Die Variablen „username“ und „passwort“ ergeben sich aus den Daten der Webgains-Anmeldung. Die Variable „werbeplattform_id“ ist ein spezieller Zahlencode, welcher der hinterlegten Plattform zugeordnet ist. Dieser lässt sich über das Backend von Webgains im Hauptmenü „Account“ => „Websites/Kampagnen verwalten“ => „Kampagnen ID“ auslesen.

Start des SoapClients

$webgainsClient = new SoapClient (
NULL,
array (
"location" => "http://ws.webgains.com/aws.php",
"uri" => "urn:http://ws.webgains.com/aws.php",
"style" => SOAP_RPC,
"use" => SOAP_ENCODED,
'exceptions' => 0
)
);

Der Webservice (hier: „location“) ist gleichzeitig die Dokumentation.

Abholen und Ausgeben der Datensätze
$earningsResult = $webgainsClient->getFullEarnings($dateStart, $dateEnd, CAMPAIGNID, LOGIN_MAIL, LOGIN_PASSWORD);
if (is_soap_fault($earningsResult)) {
// Fehlerbehandlung
} else {
foreach ($earningsResult as $item) {
echo $item->commission;
echo $item->saleValue;
echo $item->referrer;
echo $item->date;
echo $item->programName;
}
}

Die Datensatzbeschreibung ergibt sich aus der verlinkten Dokumentation des Webservices. Interessante Prozeduren sind hier:
getFullEarningsWithPaymentDate => Einkünfte mit Auszahlungszeitpunkt
getFullEarningsWithViewReference => Einkünfte mit Click / View-Angaben

G-Chrome zeigt Woocommerces nicht (mehr) richtig an?

Soeben entdeckte ich ein faszinierendes Phänomen bei der Begutachtung unserer Stratogehosteten Woocommerces. Hier „unterstellte“ G-Chrome das Vorhandensein von SSL-Verschlüsselungen mit dem Effekt, dass natürlich die Woocommerces fehlerhaft dargestellt wurde und die Links zu den Produkten nicht mehr funktionierten: dies scheint ein Bug in der aktuellen Versionsnummer des Browsers zu sein.

Das aktuelle Problem lässt sich so lösen:

1. Download der Datei /wp-content/plugins/woocommerce/woocommerce.php
2. Auskommentieren („Doppelslash“) der Zeilen

„(if ( ! isset( $_SERVER[‚HTTPS‘] ) && ! empty( $_SERVER[‚HTTP_HTTPS‘] ) ) {
$_SERVER[‚HTTPS‘] = $_SERVER[‚HTTP_HTTPS‘];
}“

3. Hochladen der modifizierten Datei in den entsprechenden Ordner.

Neues Affiliate-Projekt mit ersten Zahlen & Ergebnissen

Ein neues Projekt läuft nun seit über einem Monat. Zeit, eine kleine Bilanz für die ersten 30 Tage zu ziehen.

Worum gehts? Ein WordPress mit einem angepassten Gutschein-Template, auf dem tagesaktuelle Deals von Groupon (via Affiliate) angeboten werden. Die Domain, die wir hier nicht nennen wollen, ist ein Jahr alt. Der Beobachtungszeitraum beträgt 30 Tage.

Tag 1 Die Deals gehen online.
Tag 5 Erster verkaufter Deal. Der Klick kam via Google.
Tag 6 Zweiter verkaufter Deal, Klick via Google.
Tag 8 Dritter bis fünfter verkaufter Deal, alle via Google.
Größte Anzahl verkaufter Deals: Tag 19 mit 8 Deals
11 von 30 Tagen ohne Dealverkauf
Anzahl aller verkauften Deals: 59
Provisionsrange pro Tag, wenn nicht null: 0,48 Euro bis 48,45 Euro
Provision insgesamt (vor Storno): 235,53 Euro
Durchschnittliche Provision pro Tag: 7,85 Euro
Conversion Rate: 6,74%

Innerhalb des Beobachtungszeitraumes gab es zwei Stornierungen.

Marketing-Maßnahmen:

Tag 1 Aktivierung von Cronjobs für Social-Media-Marketing (Schwerpunkt Twitter, mehrere themenspezifische Accounts) mit Hashtags, die aus den Deal-Namen generiert werden.
Tag 5 Aktivierung eines Cronjobs für den zum Projekt gehörenden Twitter-Account (gleicher Name & Design), Tweets enthalten Hashtags, die aus der zum Deal gehörenden Kategorie generiert werden.
Linkaufbau für die Kategorieseiten
Tag 21 Hinzunahme eines Content-Aggregators, um den Inhalt zu „seeden“ (Inhalte werden in relevanten Netzwerken gestreut).

Alle Deals werden einmal pro Stunde automatisch auf dem WordPress via Plugin aktualisiert.

Entwicklung der Impressionen:

Anzahl der eingepflegten Deals: ca. 4.500 (variiert aufgrund der sehr häufigen Aktualisierungen)

deals_april2015

Fazit:
✔ 
Es ist möglich, innerhalb eines kurzen Zeitraumes ein neues Projekt erfolgversprechend zu platzieren. Impressionen, Klicks und Provisionen im Affiliate-Bereich müssen nicht lange auf sich warten lassen.
✔ Unsere in vielen Artikeln auf diesem Blog vorgestellten Ansätze und Strategien im Social-Media-Bereich zur Erhöhung der Sichtbarkeit zeigen ganz klar Wirkung.

Affiliate-Marketing: Tipps für (angehende) Publisher

Da ich in der letzten Zeit erstaunlich oft zu den verschiedenen Strategien aus unserer Publisher-Sicht befragt werde, möchte ich hier einige „Basics“ vorstellen. Als „Publisher“ im Affiliate-Marketing sichten, bewerten, veröffentlichen und vermarkten wir Affiliate-Content und werden über eine erfolgsbasierte Provision honoriert. In der Regel bewegen sich unsere Provisionen im Bereich von 5-12% des jeweils akquirierten Verkaufs.

Affiliate-Netzwerke
Die von uns publizierten Affiliate-Projekte beziehen wir hauptsächlich aus deutschen Affiliate-Netzwerken, u.a. Zanox, Belboon, Webgains, Superclix. Netzwerke fungieren als Vermittler zwischen „registrierten Advertisern (Anbietern von Produkten und Dienstleistungen, auch Merchants genannt) und registrierten Publishern (Online-Vertriebspartner bzw. Website-Betreiber, sog. Affiliates)“. (Quelle: Wikipedia) Sie führen beide Parteien zueinander, stellen in regelmäßigen Abständen neue potentielle Merchants vor und kümmern sich um die Abrechnung der Provisionen.

Welche Kriterien sind nun interessant in der Auswahl der Netzwerke?

Partnerprogramme
Ein Netzwerk steht und fällt natürlich mit den zur Auswahl stehenden Partnerprogrammen. Hierbei achten wir nicht unbedingt auf eine große Anzahl an verschiedenen Partnerprogrammen mit für uns relevanten Themen (z.B. Möbel, Reisen, Mode etc.), sondern auf die Reputationsstärke, z.B. die Bekanntheit von Marken & Produkten oder auch das Werbeverhalten in den Medien. Sehr viel Wert legen wir auf inhaltlich und technisch professionell aufbereitete csv-Produktkataloge (dazu haben wir hier bereits ein Tutorial veröffentlicht). Unserer Erfahrung nach verstehen sich Netzwerke in diesem Punkt leider eher als Bereitstellende dieser Daten und weniger als Qualitätsprüfende.

Kleiner Tipp: In der Verwaltung bzw. im Backend der Partnerprogramme lassen sich interessante Anhaltspunkte für eine grobe Vorauswahl entdecken. Darunter fallen z.B. durchschnittlicher Warenkorb, Vergütungshöhe, Conversionrate und Bezahlungszeitraum.

Technik und Backend
Ein gewisses Problem im Affiliatemarketing kann die nicht nur subjektiv wahrgenommene Intransparenz darstellen. Im altbekannten Spiel von Klick zu Sale zu Provisionsfreigabe kann schon die ein oder andere Irritation aufkommen. Die Transparenz wird seitens der Netzwerke durch die Bereitstellung der Reportings gewährleistet. Hier achten wir ganz besonders auf die Umsetzung der Schnittstellen oder APIs, da diese die eigene solide Auswertung der erwirtschafteten Daten ermöglichen. Dennoch sind wir als Publisher gut vertraut mit z.B. nicht ausgezahlten Provisionen, die uns als „Testverkauf“ oder als Stornierung erklärt werden. Hier gilt es, ein eigenes Bauchgefühl hinsichtlich der Plausibilität zu entwickeln und im Zweifel auf das Affiliate-Projekt zu verzichten.

Hier die API-Dokumentationen:
Superclix, Belboon und Adcell
Webgains
Zanox

Auszahlungen
Ein nicht unwesentlich wichtiger Aspekt in der Netzwerkauswahl sind die jeweiligen Auszahlungsmodalitäten. Zanox, Adcell und Superclix erwarten z.B. jeweils zum Monatsende das manuelle Anweisen der Auszahlungen. Webgains und Belboon überweisen innerhalb des Geschäftsmonats bei Erreichen einer Mindestprovisionshöhe (i.d.R. 25,00 Euro). Das Netzwerk Superclix informiert Publisher per e-Mail, wenn eine Auszahlung ansteht und freigegeben werden kann.

Transparenz in der Provisionsfreigabe
Ein gutes Netzwerk erkennt man auch an einer hohen Transparenz hinsichtlich der Provisionsfreigabe. Hier bevorzugen wir eine technisch sauber aufgeschlüsselte Darstellung der „Klicks zu Sales“ mit Erfassung der Klick- und Sales-Zeiträume (Zeitstempel) und einer zeitlich nachgelagerten Erfassung der Provisionsfreigabe (ebenfalls per Zeitstempel). Für uns sind diese Informationen nicht immer befriedigend und hier fällt die elegante Lösung der Netzwerke Webgains und Superclix auf. Superclix informiert für gewöhnlich und je nach Kommunikationstransparenz der Partner über Stornierungsgründe (z.B. ausbleibende Bezahlung der Ware, Retour der Ware etc.). Im Backend von Webgains findet man Ähnliches mit der Ergänzung der Rechnungslaufinformationen. Hier sieht man also die Aufschlüsselung der Sales, Widerrufszeiträume, Rechnungsstellung an den Merchant & auszahlbare Gelder.

Persönlicher Kontakt
Persönliche Kontakte zu den jeweiligen Betreuer_innen aus den Netzwerken haben auch hier viele Vorteile. Darunter verstehen wir z.B. das Vorstellen neuer Partnerprogramme oder das effektive Lösen von (technischen oder inhaltlichen) Problemen. Man lernt die jeweiligen Ansprechpartner_innen übrigens meistens beim Leipziger Affiliate-Stammtisch kennen.

Risikostreuung durch die Einbeziehung vieler oder aller Netzwerke
Beobachtet man die Entwicklungen der Netzwerke, die Auszahlungsmodalitäten, das Partnermanagement, die APIs und die Statistiken, ergibt eine Risikoverteilung auf mehrere Säulen Sinn. Wir verwerten bei unseren Projekten daher alle deutschen Affiliate-Netzwerke, die sich in unserem Arbeitsalltag bewährt haben.

Tipp: Nerviger Importabbruch bei „WP-Allimport“

Hin und wieder erleben wir Importabbrüche bei Updates von diesen oder jenen Affiliate-Partnern. Eine Ursache dieses Problems könnte eine übergroße Ansammlung temporärer *.xml-Dateien sein, die beim Import angelegt werden. Dieses sollten regelmäßig entfernt werden. Dafür wählt man per FTP oder Putty den Upload-Ordner des WordPress/Woocommerce an und entfernt hier die angelegten *.xml-Dateien (erkennbar am Namen pmxi_chunk_[laufendenummer]). Der Löschbefehl bei Putty ist „rm -r *.xml“.