Im Rahmen eines Kundenprojektes habe ich den Kampagnen-Report um Kosten-/Nutzen-Analysen erweitert. (Man kann dabei Kampagnen "Kosten per Klick" zuordnen, die Kampagnen-Klicks werden alle erfasst, und das Ergebnis dann auch von der Kosten-/Nutzen-Seite her analysiert. Das ist insbesondere interessant für die Beurteilung des Nutzens von kostenpflichtigen Preissuchmaschinen... Leider musste ich dabei erst einmal feststellen, dass der aktuelle Kampagnen-Report teilweise schlicht falsch und auch nicht sehr informativ ist... Wie man im folgenden Bild sieht, wird allen Kampagnen die gesamte Anzahl von "Leads" zugeordnet, und nicht nach Kampagnen aufgeschlüsselt.
Hallo Avanger, das sieht mir eher danach aus, als habe dein Kunde keine Kampagnen in den Exportdateien zugeordnet, denn bei mir klappt das wunderbar. Kannst ja mal einen Blick bei mir reinwerfen.
Doch, hat er..... Denn sonst würde da ja gar nichts stehen..... Merkwürdig... Dafür war auch ein ganz eindeutiger Programmfehler verantwortlich..... Muss ich noch mal untersuchen.
Das ist das Ergebnis dieser Erweiterung: In der Kampagnen-Definition kann man die "Kosten pro Klick" der Kampagne definieren, und man erhält einen Gesamtüberblick über die Performance der Kampagne. Der Kampagnen-Report sieht nun wie folgt aus:
Der Einbau-Aufwand ist bei unseren Shops minimalst, das Modul wird einfach reinkopiert. (Und updatesicher ist das natürlich auch.) Allerdings gibt es einen (nicht unerheblichen) finanziellen Aufwand.
Ich habe jetzt festgestellt, dass Links mit Kampagnen-ID separat von google gelistet werden und damit doppelter Content entsteht. Kann mir jemand sagen, ob das ein bug ist? Wenn nicht, ist das Kampagnen-Modul wohl eher nicht zu empfehlen.
Hallo Avenger, der Kampagnen Report ist falsch, seit ich Gambio kenne. Bei uns stimmen die Leads nie (sind wie oben bei allen Kampagnen gleich) und die Hits werden erst gar nicht angezeigt.
Hallo Petra, da hast du Recht. Der Kampagnen-Report stammt noch aus xtc-Zeiten und wurde von uns nie wirklich unter die Lupe genommen. Der Uraltquellcode ist ein Graus, so dass wir das lieber neu machen würden als ewig rumzuflicken. Dass das bisher nicht passiert ist, liegt an der mangelnden Nachfrage, da wir das entwickeln und verbessern, was am meisten von unseren Kunden gefragt wird. Tools von Drittanbietern sind aktuell sicherlich die bessere Wahl.
Dann wäre es aber fair, einen entsprechenden Hinweis im Modul zu machen oder aber es gänzlich zu entfernen. Schade um die Zeit, die man sich damit beschäftigt und die Zeit, den Schaden wieder zu begrenzen ( doppelter Content). Ich darf jetzt gut 50 Anzeigen wieder ändern.
Ich merk grad, dass meine Antwort nicht wirklich fundiert war, sondern mehr ein gefühlter Eindruck vom Kampagnen-Modul ist. Meine Aussage hat daher keinen große Aussagekraft und hätte lieber nicht geschrieben werden sollen . Wir sollten genau schauen, was denn aktuell grad geht und was nicht, um dann zu entscheiden, ob es Sinn macht das Modul beizubehalten und ggf. anzupassen oder es zu entfernen. Da Avenger es zum Laufen gebracht hat, ist wohl doch nicht so schlecht, wie mein gefühlter Eindruck es vermuten ließ.
Es gibt ein anderes großes Problem bei der Kampganen-Überwachung: bei einer Bestellung wird auch die Info gesetzt, ob die Bestellung aus einer Kampagne resultierte. Das funktioniert aber nur, wenn die Bestellung in derselben Session erfolgt, in der der Besucher über eine Kampagne in den Shop gelangte und sich dann registrierte. Wenn der Kunde sich zwar in einer solchen Session registriert aber nichts bestellt, sondern erst später (ohne über eine Kampagne in den Shop gekommen zu sein) bestellt, findet keine Zuordnung mehr zu der "Lead"-generierenden Kampagne statt. Ebenso wenig bei späteren weiteren Bestellungen (ohne über eine Kampagne in den Shop gekommen zu sein). Lösung: in "checkout_process.php" PHP: if (isset ($_SESSION['tracking']['refID'])){ xtc_db_query("update ".TABLE_ORDERS." set refferers_id = '".$_SESSION['tracking']['refID']."' where orders_id = '".$insert_id."'"); // check if late or direct sale $customers_logon_query = "SELECT customers_info_number_of_logons FROM ".TABLE_CUSTOMERS_INFO." WHERE customers_info_id = '".$_SESSION['customer_id']."'"; $customers_logon_query = xtc_db_query($customers_logon_query); $customers_logon = xtc_db_fetch_array($customers_logon_query); if ($customers_logon['customers_info_number_of_logons'] == 0) { // direct sale xtc_db_query("update ".TABLE_ORDERS." set conversion_type = '1' where orders_id = '".$insert_id."'"); } else { // late sale xtc_db_query("update ".TABLE_ORDERS." set conversion_type = '2' where orders_id = '".$insert_id."'"); }}else{ $customers_query = xtc_db_query("SELECT refferers_id as ref FROM ".TABLE_CUSTOMERS." WHERE customers_id='".$_SESSION['customer_id']."'"); $customers_data = xtc_db_fetch_array($customers_query); if (xtc_db_num_rows($customers_query)) { xtc_db_query("update ".TABLE_ORDERS." set refferers_id = '".$customers_data['ref']."' where orders_id = '".$insert_id."'"); // check if late or direct sale $customers_logon_query = "SELECT customers_info_number_of_logons FROM ".TABLE_CUSTOMERS_INFO." WHERE customers_info_id = '".$_SESSION['customer_id']."'"; $customers_logon_query = xtc_db_query($customers_logon_query); $customers_logon = xtc_db_fetch_array($customers_logon_query); if ($customers_logon['customers_info_number_of_logons'] == 0) { // direct sale $conversion_type = '1'; } else { // late sale $conversion_type='2'; } xtc_db_query(" UPDATE ".TABLE_ORDERS." SET conversion_type = '$conversion_type' WHERE orders_id = '".$insert_id."'"); }} ersetzen mit: PHP: //Avenger$refID=$_SESSION['tracking']['refID'];$customer_id=$_SESSION['customer_id'];if (!$refID) { //Check for campaign info in customer record $customers_query = xtc_db_query(" SELECT ca.campaigns_refID as ref FROM ".TABLE_CUSTOMERS." c LEFT JOIN ".TABLE_CAMPAIGNS. " ca ON (c.refferers_id=ca.campaigns_id) WHERE customers_id='".$customer_id."'"); $customers_data = xtc_db_fetch_array($customers_query); if (xtc_db_num_rows($customers_query)) { $refID=$customers_data['ref']; }}if ($refID){ $sql_array=array( 'refferers_id' => $refID, 'conversion_type' =>'1' ); // check if late or direct sale $customers_logon_query = " SELECT customers_info_number_of_logons FROM ".TABLE_CUSTOMERS_INFO." WHERE customers_info_id = '".$customer_id."'"; $customers_logon_query = xtc_db_query($customers_logon_query); $customers_logon = xtc_db_fetch_array($customers_logon_query); if ($customers_logon['customers_info_number_of_logons'] > 0) { // late sale $sql_array['conversion_type']='2'; } xtc_db_perform(TABLE_ORDERS,$sql_array,'update',"orders_id = '".$insert_id."'");}//Avenger Anders herum: wenn der Kunde über die Kampgane A zum "Lead" wurde, er dann aber über Kampagne B in den Shop kommt und bestellt, dann wird die Bestellung der Kampagne B zugerechnet. m.E. sollte sie aber der "Lead"-generierenden Kampagne zugeordnet werden.