Google Analytics - E-commerse

Wszystko na temat konfiguracji sklepu internetowego opartego o skrypt KQS.store

Google Analytics - E-commerse

przez qbeczek » 2010 kwi 14, Śr 13:49

Witam,

znalazłem taki artykuł : Odnośnik widoczny tylko dla zalogowanych użytkowników - Zarejestruj się

proszę o pomoc w dostosowaniu tego do KQS

(na stronie konfiguracji w PA jest miejsce do wpisania kodu który wyświetla się po złożeniu zamówienia)
próbowałem różnych konfiguracji ale jakoś mi to nie działa
Avatar użytkownika
 
Autor tematu
Posty: 311
Dołączył(a): 2008 lis 06, Cz 14:54
Lokalizacja: Kraków
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: Google Analytics - E-commerse

przez junki » 2010 kwi 14, Śr 15:00

poszukaj na forum już chyba coś takiego było
Avatar użytkownika
 
Posty: 1288
Dołączył(a): 2008 kwi 08, Wt 15:13
Lokalizacja: Olkusz
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: Google Analytics - E-commerse

przez qbeczek » 2010 kwi 14, Śr 17:00

właśnie szukałem i nie ma podanego rozwiązania tylko teksty typu "wiem ale nie powiem bo płaciłem za tą wiedzę" ;)
dlatego pytam ponownie - może ktoś się podzieli wiedzą
Avatar użytkownika
 
Autor tematu
Posty: 311
Dołączył(a): 2008 lis 06, Cz 14:54
Lokalizacja: Kraków
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: Google Analytics - E-commerse

przez redvan » 2010 kwi 15, Cz 21:04

qbeczek napisał(a):właśnie szukałem i nie ma podanego rozwiązania tylko teksty typu "wiem ale nie powiem bo płaciłem za tą wiedzę" ;)
dlatego pytam ponownie - może ktoś się podzieli wiedzą


daj link do tego watku gdzie to jest napisane...chce zobaczyc kto jest takim "sknerom"
Avatar użytkownika
Moderator Witryny
 
Posty: 1728
Dołączył(a): 2008 maja 02, Pt 09:19
Lokalizacja: Sosnowiec
Podziękował : 0 razy
Otrzymał podziękowań: 3 razy

Re: Google Analytics - E-commerse

przez DJaY » 2010 maja 05, Śr 12:08

Mam nadzieję, że tamten kolega się nie wykosztował za bardzo ;)
Rzecz nie jest zbyt skomplikowana, ja zrobiłem to w sposób poniższy:

w Bazie Szablonu na początku:
Kod: Odnośnik widoczny tylko dla zalogowanych użytkowników - Zarejestruj się
<script type="text/javascript">var pipupa = 0;</script>


w "Dodatkowy komunikat (lub kod html) wyświetlany klientowi z komunikatem potwierdzającym złożenie zamówienia".
(kod dostosowany do starszych wersji sklepu gdzie brak było zmiennych jak {wartosc_zamowienia_kropka} itp. działa bez problemu z nowymi wersjami.)
Kod: Odnośnik widoczny tylko dla zalogowanych użytkowników - Zarejestruj się
<script type="text/javascript">
var zid = "{numer_zamowienia}";
var ztotal = "{wartosc_zamowienia_z_przesylka}";
ztotal = ztotal.replace(" ", "");
ztotal = ztotal.replace(",", ".");
var zzam = "{wartosc_zamowienia}";
zzam = zzam.replace(" ", "");
zzam = zzam.replace(",", ".");
var zzamnetto = "{wartosc_zamowienia_netto}";
zzamnetto = zzamnetto.replace(" ", "");
zzamnetto = zzamnetto.replace(",", ".");
var ztax = zzam - zzamnetto;
var zshipping = ztotal - zzam;
pipupa = 1;
</script>

Kod śledzenia na końcu Bazy Szablonu:
Kod: Odnośnik widoczny tylko dla zalogowanych użytkowników - Zarejestruj się
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
   // UA-XXXXXXX-X nalezy zmienic na wlasny identyfikator
   var pageTracker = _gat._getTracker("UA-XXXXXXX-X");
   pageTracker._trackPageview();
   if (pipupa == 1) {
      // Nazwa Sklepu, Miasto, Kraj do zmiany wedle uznania
      pageTracker._addTrans(""+zid+"", "Nazwa Sklepu", ""+ztotal+"", ""+ztax+"", ""+zshipping+"", "Miasto", "", "Kraj");
      pageTracker._addItem(""+zid+"", "DD44", "Fake Product", "", ""+zzam+"", "1");
      pageTracker._trackTrans();
   }
} catch(err) {}
</script>

Całość zawiera standardowy kod śledzenia GA (dla pojedyńczej domeny) + śledzenie transakcji, smutnym ograniczeniem jest to, że nie możemy na chwilę obecną śledzić poszczególnych produktów z koszyka zamówienia, bo transakcja traktowana jest jako całość (Fake Product w statystykach) bez rozbicia na poszczególne produkty, kiedyś już chyba o tym tu pisałem... no ale lepsze to niż nic, można śledzić źródła przychodów i inne ciekawe rzeczy mimo to.
Należy pamiętać o tym, że w nowych wersjach sklepu "Baza Szablonu" występuje kilkukrotnie, osobno dla strony głownej, strony produktu, koszyka i co tam jeszcze nie pamiętam, żeby śledzenie banglało jak trzeba, kod śledzenia trzeba wszędzie powielić, natomiast pierwszą część można wrzucić w <head></head> lub powielić jak kod śledzenia, jak kto sobie chce.
Na chwilę obecną google udostępnia ulepszony kod śledzenia, ale zdaje się, że jest to jeszcze beta, stary kod jest nadal obowiązujący, także enjoy ;)
pzdr.
 
Posty: 50
Dołączył(a): 2008 maja 08, Cz 10:36
Lokalizacja: Somewhere over the rainbow
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: Google Analytics - E-commerse

przez groobel » 2010 maja 07, Pt 17:59

Myslę, że to pomoże.

Tworzymy sobie jakiś plik php z kodem:

Kod: Odnośnik widoczny tylko dla zalogowanych użytkowników - Zarejestruj się
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<html>

<head>
   <title>Google Analtics</title>
   <meta http-equiv="content-type"
      content="text/html;charset=iso8859-2">
    <style type="text/css">
    pre {font-size: 12px; font-family: monospace}
   </style>

</head>

<body>

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("WPISAĆ SWÓJ TRACKER");
pageTracker._trackPageview();

<?php


// Database constatnts
define('DB_USER', 'USER_BAZY');
define('DB_PASSWD', 'HASŁO_BAZY');
define('DB_NAME', 'NAZWA BAZY');

// Project wide constants
define('DEAFULT_AFFILIATION', 'default-affiliation');
define('DEAFULT_TAX', '22');
define('DEAFULT_CATEGORY', 'kategoria_standardowa');


/**
 *
 */
function doQuery($sql) {
    // Formulate Query
    // This is the best way to perform a SQL query
    // For more examples, see mysql_real_escape_string()
    $query = sprintf($sql);

    // Perform Query
    $result = mysql_query($query);

    // Check result
    // This shows the actual query sent to MySQL, and the error. Useful for debugging.
    if (!$result) {
        $message  = 'Invalid query: ' . mysql_error() . "\n";
        $message .= 'Whole query: ' . $query;
        die($message);
    }
    return $result;
}


$link = mysql_connect('HOST_BAZY', DB_USER, DB_PASSWD);
if (!$link) {
    die('Could not connect: ' . mysql_error());
}

// make foo the current db
$db_selected = mysql_select_db(DB_NAME, $link);
if (!$db_selected) {
    die ('Can\'t use foo : ' . mysql_error());
}

// Get the last record id from db
$result = doQuery("SELECT id FROM kqs_zamowienia ORDER BY id DESC LIMIT 1");
$row = mysql_fetch_row($result);
$lastRecordID = $row[0];
//$lastRecordID = 347;


// Get the last record from the db
$result = doQuery("SELECT * FROM kqs_zamowienia WHERE id=${lastRecordID}");
$lastRecord = mysql_fetch_array($result);

// Detetct client type - whether it is person or buisness
$clientAddress = $lastRecord['klient_adres'];
$clientAddressChunks = explode('|', $clientAddress);
if (strpos($clientAddressChunks[1], "NIP:") !== false)
    $clientType = 'business';
else
    $clientType = 'person';

$clientOrder = $lastRecord['zam'];
$clientOrderChunks = explode('|', $clientOrder);
$orderStats = array(
    'order-id'    => $lastRecordID,
    'affiliation' => DEAFULT_AFFILIATION,
    'total'       => str_replace(" ", "", trim($lastRecord['cena'])),
    'tax'         => DEAFULT_TAX,
    'shipping'    => $lastRecord['przesylka_nazwa'],
    'city'        => '',
    'state'       => '',
    'country'     => ''
);
switch($clientType) {
    case 'business':
        //
        $orderStats['city']    = $clientAddressChunks[3];
        $orderStats['state']   = $clientAddressChunks[4];
        $orderStats['country'] = $clientAddressChunks[5];
        break;
    case 'person':
        //
        $orderStats['city']    = $clientAddressChunks[2];
        $orderStats['state']   = $clientAddressChunks[3];
        $orderStats['country'] = $clientAddressChunks[4];
        break;
    default:
        break;
}
//UTM:T|[order-id]|[affiliation]|[total]|[tax]|[shipping]|[city]|[state]|[country]
$UTM_T = sprintf("pageTracker._addTrans(\r\n\"%s\",\r\n\"%s\",\r\n\"%s\",\r\n\"%s\",\r\n\"%s\",\r\n\"%s\",\r\n\"%s\",\r\n\"%s\"\r\n);\n",
    $orderStats['order-id'], $orderStats['affiliation'], $orderStats['total'],
    $orderStats['tax'], $orderStats['shipping'], trim($orderStats['city']),
    trim($orderStats['state']), trim($orderStats['country']));

//echo "<h1>${UTM_T}</h1>";

// 0 - nazwa produktu
// 1 - ilość
// 2 - cena
// 3 - podatek
// 4 - atrybuty (np. kolor, rozmiar)*
// 5 - puste
// 6 - jednostka_miary
// 7 - kod_produktu_wlasny (sku/code)
// 8 - kod_produktu_dostawcy
// 9 - rabat
// 10 - pusty
// 11 - id_produktu
// 12 - smieci albo dane nastepnego produktu

$products = array();

if (strpos($clientOrder, "\r\n") !== false)
    $itemSeparator = "\r\n";
else if (strpos($clientOrder, "\n") !== false)
    $itemSeparator = "\n";

$rawProducts = explode($itemSeparator, $clientOrder);
foreach($rawProducts as $product) {
   
    $product = explode('|', $product);

    if (count($product) != 13)
        continue;
   
    $prod = array();
    $prod['order-id']    = $lastRecordID;
    $prod['sku/code']    = trim($product[7]);
    $prod['productname'] = str_replace("\r\n", ' ', trim($product[0]));
    $prod['category']    = DEAFULT_CATEGORY;
    $prod['price']       = str_replace(" ", "", trim($product[2]));
    $prod['quantity']    = trim($product[1]);
   
    $products[] = $prod;
}

//echo "<pre>";
//var_dump($p);
//echo "</pre>";

//UTM:I|[order-id]|[sku/code]|[productname]|[category]|[price]|[quantity]
$UTM_I = '';
foreach($products as $product) {
  $UTM_I .= sprintf("pageTracker._addItem(\r\n\"%s\",\r\n\"%s\",\r\n\"%s\",\r\n\"%s\",\r\n\"%s\",\r\n\"%s\"\r\n);\r\n\r\n",
    $product['order-id'], $product['sku/code'], $product['productname'],
    $product['category'], $product['price'], $product['quantity']);
}

echo $UTM_T;
echo "\n";
echo $UTM_I;


// Free the resources associated with the result set
// This is done automatically at the end of the script
mysql_free_result($result);
mysql_close($link);
?>

pageTracker._trackTrans();
} catch(err) {}</script>
</body>
</html>


Oczywiście trzeba uzupełnić to o dane dostępowe do bazy (nazwa usera, hasło, nazwa basy, host) oraz wpisać swój tracker.

Następnie wchodzimy w ustawienia, konfigruację i w sekcji "Dodatkowy komunikat (lub kod html) wyświetlany klientowi z komunikatem potwierdzającym złożenie zamówienia"
wklejamy coś takiego:
Kod: Odnośnik widoczny tylko dla zalogowanych użytkowników - Zarejestruj się
<iframe src='sciezka do stworzonego pliku na serwerze' width='1' height='1'></iframe>


Od teraz do każdej strony z zamówieniem będzie wklejny ukryty iframe z kodem pozwalającym zliczać statystyki modułu E-Commerce w GA. Oczywiście wcześniej musimy to włączyć w ustawieniach GA.
 
Posty: 61
Dołączył(a): 2008 maja 07, Śr 10:37
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: Google Analytics - E-commerse

przez groobel » 2010 maja 07, Pt 18:02

Aha... kod jest przedstawiony w sposób czytelny dla nowego kodu GA.
 
Posty: 61
Dołączył(a): 2008 maja 07, Śr 10:37
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: Google Analytics - E-commerse

przez qbeczek » 2010 maja 19, Śr 11:57

dzięki groobel :)
to działa !! :D

odezwij się na priva - dostaniesz fajny rabat na zakupy u mnie :)
Avatar użytkownika
 
Autor tematu
Posty: 311
Dołączył(a): 2008 lis 06, Cz 14:54
Lokalizacja: Kraków
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: Google Analytics - E-commerse

przez groobel » 2010 maja 19, Śr 12:04

Pewnie, że działa ;)

Jeżeli znajdę trochę czasu to może założę oddzielny temat, gdzie mógłbym wklejać kilka uzytecznych informacji jak przystosować Google Analytics do współpracy z KQS.

Przepis na rejestrowanie transakcji e-commerce już podałem, ale są jeszcze np. cele czy też wyszukiwanie w witrynie czyli to co pozwoliłoby dostosować nasz sklep pod kątem klientów.
 
Posty: 61
Dołączył(a): 2008 maja 07, Śr 10:37
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Następna strona

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 10 gości
cron