File Manager

Current Directory: /home/astoriaah/www/administrator/components/com_sh404sef/adapters
Viewing File: /home/astoriaah/www/administrator/components/com_sh404sef/adapters/analyticsga.php
<?php /** * sh404SEF - SEO extension for Joomla! * * @author Yannick Gaultier * @copyright (c) Yannick Gaultier - Weeblr llc - 2022 * @package sh404SEF * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL * @version 4.24.1.4308 * @date 2022-05-31 */ // Security check to ensure this file is being included by a parent file. defined('_JEXEC') || die; /** * Implement Google analytics handling * * @author shumisha * */ class Sh404sefAdapterAnalyticsga extends Sh404sefClassBaseanalytics { /** * Get tracking snippet * */ public function getSnippet() { // should we insert tracking code snippet ? if (!$this->_shouldInsertSnippet()) { return ''; } switch (Sh404sefFactory::getConfig()->analyticsEdition) { case 'uga': $snippet = $this->_getSnippetUga() . "\n"; break; case 'ga4': $snippet = $this->_getSnippetGa4() . "\n"; break; case 'gtm': $snippet = $this->_getSnippetGtm(); break; default: $snippet = ''; break; } return $snippet; } /** * Get Universal Analytics tracking snippet * */ protected function _getSnippetUga() { // get config $config = Sh404sefFactory::getConfig(); $pageInfo = Sh404sefFactory::getPageInfo(); // in case of 404, we use a custom page url so that 404s can also be tracked in GA $customUrl = !empty($pageInfo->httpStatus) && $pageInfo->httpStatus == 404 ? '/__404__' : ''; $displayData = array(); $displayData['tracking_code'] = trim($config->analyticsUgaId); $displayData['custom_code'] = trim($config->analyticsCustomCode); $displayData['custom_domain'] = 'auto'; $displayData['options'] = array(); $displayData['custom_url'] = $customUrl; $displayData['anonymize'] = !empty($config->analyticsEnableAnonymization); $displayData['enable_display_features'] = !empty($config->analyticsEnableDisplayFeatures); $displayData['enable_enhanced_link_attr'] = !empty($config->analyticsEnableEnhancedLinkAttr); /** * Filter the list of variables passed to the Universal Analytics JLayout. * * @api * @package sh404SEF\filter\analytics * @var sh404sef_universal_analytics_data * @since 4.11 * * @param array $displayData Associative array of analytics vars. * * @return array */ $displayData = ShlHook::filter( 'sh404sef_universal_analytics_data', $displayData ); $snippet = ShlMvcLayout_Helper::render('com_sh404sef.analytics.snippet_uga', $displayData); return $snippet; } /** * Get Universal Analytics tracking snippet * */ protected function _getSnippetGa4() { // get config $config = Sh404sefFactory::getConfig(); $displayData = array(); $displayData['tracking_code'] = trim($config->analyticsUgaId); $displayData['custom_code'] = trim($config->analyticsCustomCode); /** * Filter the list of variables passed to the Analytics v4 JLayout. * * @api * @package sh404SEF\filter\analytics * @var sh404sef_analytics_v4_data * @since 4.23 * * @param array $displayData Associative array of analytics vars. * * @return array */ $displayData = ShlHook::filter( 'sh404sef_analytics_v4_data', $displayData ); $snippet = ShlMvcLayout_Helper::render('com_sh404sef.analytics.snippet_ga4', $displayData); return $snippet; } /** * Get Google Tags manager snippet * */ protected function _getSnippetGtm() { // get config $config = Sh404sefFactory::getConfig(); $displayData = array(); $displayData['tracking_code'] = trim($config->analyticsGtmId); // finalize snippet : add user tracking code return array( 'body' => ShlMvcLayout_Helper::render('com_sh404sef.analytics.snippet_gtm_body', $displayData), 'head' => ShlMvcLayout_Helper::render('com_sh404sef.analytics.snippet_gtm_head', $displayData) ); } }