Skip to content
Snippets Groups Projects
Commit 778452a9 authored by Patrick Barroca's avatar Patrick Barroca :grin:
Browse files

Merge branch 'hotline#158319_cookies_en_miette' into 'master'

hotline #158319 : disable event tracking on google analytics 4 account id

See merge request !4491
parents eb9e85be dc89ca2c
Branches
Tags
2 merge requests!4505hotline#147634 : pre-registration : mail sent now can use placeholders...,!4491hotline #158319 : disable event tracking on google analytics 4 account id
Pipeline #17817 passed with stage
in 29 minutes and 25 seconds
......@@ -27,7 +27,7 @@ class Class_WebService_Analytics_Client {
return new Class_WebService_Analytics_NullTracker();
return $js_stat->isGoogleAnalytics()
? new Class_WebService_Analytics_GoogleTracker($js_stat)
? Class_WebService_Analytics_GoogleTracker::newFor($js_stat)
: new Class_WebService_Analytics_MatomoTracker($js_stat);
}
......
......@@ -19,9 +19,18 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
class Class_WebService_Analytics_GoogleTracker extends Class_WebService_Analytics_NullTracker {
class Class_WebService_Analytics_GoogleTracker extends Class_WebService_Analytics_NullTracker {
const ANALYTICS_4_PREFIX = 'G-';
protected $_tracker;
public static function newFor(Class_AdminVar_JsStat $config) : Class_WebService_Analytics_NullTracker {
return static::ANALYTICS_4_PREFIX === substr($config->getTrackerId(), 0, 2)
? new Class_WebService_Analytics_NullTracker
: new Class_WebService_Analytics_GoogleTracker($config);
}
public function __construct($config) {
require_once('php-ga-1.1.1/src/autoload.php');
$this->_tracker = new UnitedPrototype\GoogleAnalytics\Tracker($config->getTrackerid(),
......
......@@ -24,22 +24,25 @@ class Class_WebService_WebAnalyticsClientInstanciationWithVarGoogleAnalyticsAndN
public function setUp() {
parent::setUp();
Class_AdminVar::newInstanceWithId('JS_STAT', ['valeur' => "<script> var _gaq = _gaq ||
[]; _gaq.push(['_setAccount',
'UA-41754005-1']);
_gaq.push(['_trackPageview']);
(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>"]);
Class_AdminVar::newInstanceWithId('NOM_DOMAINE', ['valeur' => ""]);
Class_AdminVar::set('JS_STAT',
"<script> var _gaq = _gaq ||
[]; _gaq.push(['_setAccount',
'UA-41754005-1']);
_gaq.push(['_trackPageview']);
(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>");
Class_AdminVar::set('NOM_DOMAINE', '');
$this->_web_analytics_client = new Class_WebService_Analytics_Client();
}
......@@ -59,6 +62,28 @@ class Class_WebService_WebAnalyticsClientInstanciationWithVarGoogleAnalyticsAndN
class Class_WebService_WebAnalyticsClientGoogleAnalytics4AccountTest extends ModelTestCase {
/** @test */
public function trackerShouldBeNullTracker() {
Class_AdminVar::set('JS_STAT',
'<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-0BBYNK9BBP"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag(\'js\', new Date());
gtag(\'config\', \'G-0BBYNK9BBP\');
</script>');
$this->assertEquals(Class_WebService_Analytics_NullTracker::class,
get_class((new Class_WebService_Analytics_Client)->getTracker()));
}
}
class Class_WebService_WebAnalyticsClientInstanciationWithVarGoogleAnalyticsUsingGACreateTest extends ModelTestCase {
public function setUp() {
parent::setUp();
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment