Hutmann Posted July 2, 2012 Report Share Posted July 2, 2012 Ist es möglich, dem bestehenden Plugin Google Analytics (xt_googleanalytics) die Domäne beizubringen? Da ein Shop auf einer Subdomain lauft, braucht ich dringend die Einbindung von _gaq.push(['_setDomainName', 'meinedomain.at']); im Analytics Code, sonst sehe ich meinen eigenen Shop ständig als Referrer. Wie lässt sich das einbinden?!? Link to comment Share on other sites More sharing options...
N-Metal Posted August 21, 2012 Report Share Posted August 21, 2012 Gibt es schon eine Lösung für das Problem? Mich würde das auch interessieren. Link to comment Share on other sites More sharing options...
Sentor77 Posted August 22, 2012 Report Share Posted August 22, 2012 Moin, du kannst das hinbekommen wenn du in dir die Datei plugins\xt_googleanalytics\classes\class.xt_googleanalytics.php vornimmst. Dort musst du jeweils in den beiden Methoden _getStandardCode() und _getEcommerceCode() den fehlenden Code hinzufügen. Da das Plugin allerdings noch nicht den asymetrischen Code von Google benutzt, musst du dir noch entsprechenden herkömmlichen Code besorgen und ihn dort einfügen. LG Link to comment Share on other sites More sharing options...
N-Metal Posted August 22, 2012 Report Share Posted August 22, 2012 Danke für die schnell Hilfe. Ich hab das jetzt mal probiert. Ich hab das aber nicht so ganz hinbekommen. Ich bekomme dann immer einen Fehler in dem die Seite weiß wird. Kannst du mir mal eine Kopie oder Ausschnitt von der googleanalytics.php posten? Danke Link to comment Share on other sites More sharing options...
Sentor77 Posted August 23, 2012 Report Share Posted August 23, 2012 Moin, also hier mal mein ansatz: function _getStandardCode() { $js= '<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"> var pageTracker = _gat._getTracker("'.XT_GOOGLE_ANALYTICS_UA.'"); pageTracker._initData(); _gat._anonymizeIp(); pageTracker._trackPageview();'."\n"; if (XT_GOOGLE_ANALYTICS_ANON=='true') $js.='_gat._anonymizeIp();'."\n"; $js.='</script>'; return $js; }[/PHP] Hier nach [PHP]pageTracker._initData();[/PHP] deinen Code einfügen. Und dann noch in diesem Block: [PHP]function _getEcommerceCode() { global $success_order; $js='<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"> var pageTracker = _gat._getTracker("'.XT_GOOGLE_ANALYTICS_UA.'"); pageTracker._initData(); pageTracker._trackPageview();'."\n"; // add order data $tax = $success_order->order_total['total']['plain']-$success_order->order_total['total_otax']['plain']; $js.='pageTracker._addTrans("'.$success_order->order_data['orders_id'].'","'.$success_order->order_data['shop_id'].'","'.$success_order->order_total['total']['plain'].'","'.$tax.'","","'.$success_order->order_data['delivery_city'].'","","'.$success_order->order_data['delivery_country_code'].'");'."\n"; // add products foreach ($success_order->order_products as $key => $arr) { $js.='pageTracker._addItem("'.$success_order->order_data['orders_id'].'","'.$arr['products_id'].'","'.addslashes($arr['products_name']).'","","'.$arr['products_price']['plain'].'","'.$arr['products_quantity'].'");'."\n"; } $js.='pageTracker._trackTrans();'."\n"; if (XT_GOOGLE_ANALYTICS_ANON=='true') $js.='_gat._anonymizeIp();'."\n"; $js.='</script>'; return $js; } }[/PHP] ebenfalls nach [PHP]pageTracker.initData();[/PHP] Da sich [PHP]_gaq.push(['_setDomainName', 'meinedomain.at']);[/PHP] aber auf den neuen asychronen Tracking Code von Google bezieht und das Plugin noch mit dem nicht asynchronen Code arbeitet, kannst du _gaq.push() sehr wahrscheinlich nicht in diesem Code verwenden. Dazu müsstest du bei Google gucken wie das nicht asynchrone Gegenstück dazu aussieht. LG Link to comment Share on other sites More sharing options...
N-Metal Posted August 23, 2012 Report Share Posted August 23, 2012 Danke für die Hilfe. Leider zerstört das weiterhin meinen Header. Liegt wahrscheinlich an dem ASync vom Tracker. Ich hab mir jetzt mal das Async Tracker Plugin heruntergeladen. Da sieht die PHP auch schon viel besser aus. Leider blicke ich immer noch nicht ganz durch wo ich da die SetDomainName positionieren soll? <?php /** Javascripte mit freundlicher Genehmigung von ShopHostX. */ defined('_VALID_CALL') or die('Direct Access is not allowed.'); class google_analytics_async { function _getHeaderCode() { $js='<script type="text/javascript"> var _gaq = _gaq || [];'; if(XT_GOOGLE_ANALYTICS_ASYNC_ANON=='true') { $js.='_gaq.push ([\'_gat._anonymizeIp\']);'."\n"; } $js.=' (function() { var ga = document.createElement(\'script\'); ga.type = \'text/javascript\'; ga.async = true; ga.src = (\'https:\' == document.location.protocol ? \'https://ssl\' : \'http://www\') + \'.google-analytics.com/ga.js\'; var s = document.getElementsByTagName(\'script\')[0]; s.parentNode.insertBefore(ga, s); })(); </script> '; return $js; } function _getCode() { if (XT_GOOGLE_ANALYTICS_ASYNC_UA!='') { if ($_GET['page']=='checkout' && $_GET['page_action']=='success') { if (XT_GOOGLE_ANALYTICS_ASYNC_ECOM=='true') { global $success_order; echo $this->_getEcommerceCode(); } else { echo $this->_getStandardCode(); } } else { echo $this->_getStandardCode(); } } } function _getStandardCode() { $js= '<script type="text/javascript"> if($.mobile) { $(\'[data-role=page]\').live(\'pageshow\', function (event, ui) { try { _gaq.push([\'_setAccount\', \''.XT_GOOGLE_ANALYTICS_ASYNC_UA.'\']); hash = location.hash; if (hash) { _gaq.push([\'_trackPageview\', hash.substr(1)]); } else { _gaq.push([\'_trackPageview\']); } } catch(err) { } }); } else { _gaq.push([\'_setAccount\', \''.XT_GOOGLE_ANALYTICS_ASYNC_UA.'\']); _gaq.push([\'_trackPageview\']); } </script>'; return $js; } function _getEcommerceCode() { global $db, $language, $success_order; $js= '<script type="text/javascript"> if($.mobile) { $(\'[data-role=page]\').live(\'pageshow\', function (event, ui) { try { _gaq.push([\'_setAccount\', \''.XT_GOOGLE_ANALYTICS_UA.'\']); _gaq.push([\'_trackPageview\']);'; $query = "SELECT shop_title FROM xt_stores WHERE shop_id='" . $success_order->order_data['shop_id'] . "' LIMIT 0,1"; $rs = $db->Execute($query); $tax = $success_order->order_total['total']['plain']-$success_order->order_total['total_otax']['plain']; $js.=' _gaq.push([\'_addTrans\', \''.$success_order->order_data['orders_id'].'\', \''.$rs->fields['shop_title'].'\', \''.$success_order->order_total['total']['plain'].'\', \''.round($tax, 2).'\', \''.round($success_order->order_total_data[0]['orders_total_price']['plain'], 2) .'\', \''.$success_order->order_data['delivery_city'].'\', \''.$success_order->order_data['delivery_postcode'].'\', \''.$success_order->order_data['delivery_country_code'].'\']); '; // add products foreach ($success_order->order_products as $key => $arr) { $query = "SELECT categories_id FROM ".TABLE_PRODUCTS_TO_CATEGORIES." WHERE products_id='" . $arr['products_id'] . "' LIMIT 0,1"; $rs = $db->Execute($query); $query = "SELECT categories_name FROM ".TABLE_CATEGORIES_DESCRIPTION." WHERE categories_id='" . $rs->fields['categories_id'] . "' and language_code = '" . $language->code . "' LIMIT 0,1"; $rs = $db->Execute($query); $js.=' _gaq.push([\'_addItem\', \''.$success_order->order_data['orders_id'].'\', \''.$arr['products_id'].'\', \''.addslashes($arr['products_name']).'\', \''.$rs->fields['categories_name'].'\', \''.$arr['products_price']['plain'].'\', \''.$arr['products_quantity'].'\']); '; } $js.=' _gaq.push([\'_trackTrans\']);'; $js.=' } catch(err) { } }); } else { _gaq.push([\'_setAccount\', \''.XT_GOOGLE_ANALYTICS_UA.'\']); _gaq.push([\'_trackPageview\']);'; $query = "SELECT shop_title FROM xt_stores WHERE shop_id='" . $success_order->order_data['shop_id'] . "' LIMIT 0,1"; $rs = $db->Execute($query); $tax = $success_order->order_total['total']['plain']-$success_order->order_total['total_otax']['plain']; $js.=' _gaq.push([\'_addTrans\', \''.$success_order->order_data['orders_id'].'\', \''.$rs->fields['shop_title'].'\', \''.$success_order->order_total['total']['plain'].'\', \''.round($tax, 2).'\', \''.round($success_order->order_total_data[0]['orders_total_price']['plain'], 2) .'\', \''.$success_order->order_data['delivery_city'].'\', \''.$success_order->order_data['delivery_postcode'].'\', \''.$success_order->order_data['delivery_country_code'].'\']); '; // add products foreach ($success_order->order_products as $key => $arr) { $query = "SELECT categories_id FROM ".TABLE_PRODUCTS_TO_CATEGORIES." WHERE products_id='" . $arr['products_id'] . "' LIMIT 0,1"; $rs = $db->Execute($query); $query = "SELECT categories_name FROM ".TABLE_CATEGORIES_DESCRIPTION." WHERE categories_id='" . $rs->fields['categories_id'] . "' and language_code = '" . $language->code . "' LIMIT 0,1"; $rs = $db->Execute($query); $js.=' _gaq.push([\'_addItem\', \''.$success_order->order_data['orders_id'].'\', \''.$arr['products_id'].'\', \''.addslashes($arr['products_name']).'\', \''.$rs->fields['categories_name'].'\', \''.$arr['products_price']['plain'].'\', \''.$arr['products_quantity'].'\']); '; } $js.=' _gaq.push([\'_trackTrans\']);'; $js.=' } '; $js.='</script>'; return $js; } } ?>[/PHP] Link to comment Share on other sites More sharing options...
Sentor77 Posted August 24, 2012 Report Share Posted August 24, 2012 Moin, steze es am besten hier direkt hinter. Sollte dann so aussehen: function _getHeaderCode() { $js='<script type="text/javascript"> var _gaq = _gaq || [];'; _gaq.push(['_setDomainName', 'deinedomain.de']); if(XT_GOOGLE_ANALYTICS_ASYNC_ANON=='true') { $js.='_gaq.push ([\'_gat._anonymizeIp\']);'."\n"; } $js.=' ...[/PHP] LG Link to comment Share on other sites More sharing options...
N-Metal Posted August 24, 2012 Report Share Posted August 24, 2012 Ich hab das jetzt mal ausprobiert. Leider funktioniert das auch nicht und der Head ist wieder komplett leer und die Seite weiß. Link to comment Share on other sites More sharing options...
Sentor77 Posted August 24, 2012 Report Share Posted August 24, 2012 Sorry, war mein Fehler... richtig muss es so heißen: function _getHeaderCode() { $js='<script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setDomainName', 'deinedomain.de']);'; if(XT_GOOGLE_ANALYTICS_ASYNC_ANON=='true') { $js.='_gaq.push ([\'_gat._anonymizeIp\']);'."\n"; } $js.=' ...[/PHP] LG Link to comment Share on other sites More sharing options...
N-Metal Posted August 24, 2012 Report Share Posted August 24, 2012 Mmh geht immer irgendwie noch nicht. Da ist irgendwo noch der Wurm drin. Link to comment Share on other sites More sharing options...
Sentor77 Posted August 24, 2012 Report Share Posted August 24, 2012 Ich poste dir mal die gesamte Methode: function _getHeaderCode() { $js='<script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setDomainName', 'deinedomain.de']);'; if(XT_GOOGLE_ANALYTICS_ASYNC_ANON=='true') { $js.='_gaq.push ([\'_gat._anonymizeIp\']);'."\n"; } $js.=' (function() { var ga = document.createElement(\'script\'); ga.type = \'text/javascript\'; ga.async = true; ga.src = (\'https:\' == document.location.protocol ? \'https://ssl\' : \'http://www\') + \'.google-analytics.com/ga.js\'; var s = document.getElementsByTagName(\'script\')[0]; s.parentNode.insertBefore(ga, s); })(); </script> '; return $js; } [/PHP] Vergiss nicht deineDomain.de zu ändern. Der Code läuft einwandfrei bei mir. Kleiner Tip: Du hats jetzt ziemlich oft die Datei geändert. Lade die Originaldatei noch einmal hoch, mach ein eKopie davon und ändere die ab. Vielleicht fehlt an irgendeiner stelle ja ein ; oder sowas in derArt. Das geht ja verdamm schnell. LG Link to comment Share on other sites More sharing options...
N-Metal Posted August 24, 2012 Report Share Posted August 24, 2012 Echt eigenartig. Sobald ich die setDomain Zeile reinmache. Geht einfach nichts mehr. Ich weiß einfach nicht warum. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.