Zdravím, snažím sa vyriešiť na novom eshope nastavenie google anayltics, ideálne by som okrem sledovania návštevnosti sledoval aj objednávkový proces, konverzie atď.
Nie je mi celkom jasné, ako to nastaviť (objednávkový proces v preste má počas všetkých krokov rovnakú url adresu), našiel som k tomu jeden článok po francúzsky, nie som však programátor a nie celkom som ho pochopil. Kamarát si dal námahu a článok (neodborne) preložil do slovenčiny, mohol by ho niekto kto sa tomu rozumiem skorektovať a prípadne doplniť?
Tu je originál:
http://wepika.com/regler-le-probleme-de-tracking-des-objectifs-google-analytics-via-le-module-prestashop/ dostal som sa tam cez prestashop fórum, konkrétne túto tému:
http://www.prestashop.com/forums/topic/130996-order-process-goal-funnel-set-in-google-analytics/#entry853669
Preklad (niektoré výrazy nemusia byť správne preložené):
Ako vyriesit problem trekingu cieľov v Google Analytics pouzitim modulu Prestashop
E-commerce predstavuje mnozstvo vyhod a nevyhod v porovnani s tradicnym obchodovanim. Jedna z najvyraznejsich vyhod online obchodovania je moznost merat mnozstvo roznych parametrov (bez potreby realizovat tazke a financne narocne studie). Vsetky nazhromazdene hodnoty (povod zakaznikov, priemerna cena kosika…) davaju zmysel iba vtedy, ked su navzajom prepojene a poskytuju priestor, aby ste z nich vedeli vzniest zavery a zdvihnut objem predaja. Preto prave Vam postacuje zdarma vytvorit objektivy v Google Analytics a zistite: ktore zdroje trafiku prinasaju co najviac, ktore stranky odlakavaju najviac navstevnikov alebo ktore AdWords sa realne premienaju na predaje (v spojitosti s Analytics a AdWords).
Nanestastie GA modul (prestashop/modules/ganalytics) ktory je prednastaveny s kazdym obchodom Prestashop je “naladovy” a neposiela vsetky informacie dolezite pre merania. Konkretne ide o fakt ,ze stranka na potvrdenie objednavky sa nezobrazuje konverznom tuneli (Funnel Vizualizacia/ Lievikova schema konverzie na predaj).
Tento problem je znamy. ale napriek tomu Prestashop komunita (napriek tomu velmi aktivna) neprinasa ziadnu odpoved. Ak stojite pred rovnakym problemom, nasledovne vysvetlenie vas urcite bude zaujimat!
Riešenie
Existuju dve hlavne prekazky:
• Defaultne je modul napojený na háčik ‘$HOOK_ORDER_CONFIRMATION’ ale tento posledny sa nevykonava kým nie je zavolaný.
o Riešenie: Vytvorte nový háčik (napríklad: ‘$HOOK_CONFIRMATION_PAGE’ ) ktorý akonáhle je zavolaný a GA modul je naň pripojený, začne vykonávať to, čo by mal vykonávať problematický háčik. Ak neviete ako vytvoriť háčik, tu sú následovné kroky:
o Otvorte databázu a vyhladajte ps_hook (ps treba nahradit vasim prefixom). Kliknite na SQL a prilepte následovný kód:
• INSERT INTO `ps_hook` SET name = 'ConfirmationPage', title = 'Confirmation Page', description = 'Hook qui va accueillir le module GA'
o Prepíšte FrontController (prestashop/override/controllers/FrontController.php) cez nasledovnu funkciu:
• class FrontController extends FrontControllerCore { public function preProcess() { self::$smarty->assign('HOOK_CONFIRMATION_PAGE',Module::hookExec('ConfirmationPage')); parent::preProcess(); } }
o V priecinku ‘ganalytics.php‘ pridajte funkciu HookFooter:
• function hookConfirmationPage($params) { return $this->hookOrderConfirmation($params); }
o Nakoniec vlozte do priecinku ‘order-confirmation.tpl‘ (prestashop/themes/vasa tema/order-confirmation.tpl) nasledovny kod hned za ‘{$HOOK_PAYMENT_RETURN}’
• {$HOOK_CONFIRMATION_PAGE}
• Ak vidiet, ze hacik z bazy nefunguje, viacer funkcii nan navazujucich nie su zavolane (znazornene v ovladaci ‘OrderConfirmationController‘ a v class ’Hook‘). Toto zapricinuje stratu udajov z tabulky $params , ktora by mala prijimat vsetky udaje nejakeho pokynu.
o Riešenie: Skor ako hned prepisovat ovladac a class tu spomenute, rozhodli sme sa vyuzit ID toho pokynu a pouzit funkciu od Prestahop, ktora povoluje vyuzitie a ziskanie roznych informacii nejakeho pokynu na zaklade jeho ID. Vymenou
1. $order = $params;
na zaciatku funkcie hookOrderConfirmation v ’ganalytics.php’ za
1. $id_order = $_GET;
2. $order = new Order((int)$id_order);
Treti problem s ktorym sme sa stretli:
• Ak nazov obchodu obsahuje specialne znaky (napriklad apostrof alebo ®) moze dojst ku havarii v Javascripte.
• Riesenie: Aby sa tomu predislo, treba nahradit ’ganalytics.php’ okolo 200teho riadku toto:
• 'store' => htmlentities(Configuration::get('PS_SHOP_NAME')),
• za toto:
• 'store' => preg_replace('//',' ', Configuration::get('PS_SHOP_NAME')),
Je to radikalne riesenie, kedze nahradza specialne znaky medzerou, ale funguje to spolahlivo.
V skratke na zaver, urobili sme nasledovne:
• Vytvorili hacik, aby sme nahradili chybny zakladny, ktory je pripojeny na GA modul.
• Nahradili sme zakladnu funkciu, ktora zvycajne navraca udaje pokynu, za jednoduchsiu.
• Zmazali sme specialne znaky v nazve nasho obchodu a poslali do GA.
Male plus:
Objektivovy tunel sa zvycajne sklada z tychto etap:
• Pokracovanie kosika
• Autentifikacia
• Adresa
• Dorucenie
• Platba
• Objektivova stranka – Potvrdenie platby
No ked tak ako my, chcete tiez integrovat vytvorene stranky, modul navrhuje pouzit link ’product.php’. Nam nefungoval. Tym padom sme vytvorili alias ’/product.html’ (ako to Google ma vo zvyku robit pre rozne tunelove nakupne stranky ’/order/stepX.html’).
Tu je krok, ktory treba nasledovat:
V priecinku ’ganalytics.php’, nahradte riadok:
$pageTrack = ((strpos($_SERVER, __PS_BASE_URI__.'order.php') === 0 || strpos($_SERVER, __PS_BASE_URI__.($multilang?((string)Tools::getValue('isolang').'/'):'').$defaultMetaOrder) === 0) ? '/order/step'.(int)(Tools::getValue('step')).'.html' : '');
Tymto:
if (strpos($_SERVER, __PS_BASE_URI__.'order.php') === 0 || strpos($_SERVER, __PS_BASE_URI__.($multilang?((string)Tools::getValue('isolang').'/'):'').$defaultMetaOrder) === 0){ $pageTrack = '/order/step'.(int)(Tools::getValue('step')).'.html'; } else if ($_GET != '') { $pageTrack = '/produit.html'; } else { $pageTrack = ''; };
Dufame, ze vam tento clanok pomohol.
24. 12. 2014 14:47:49