40 lines
1.1 KiB
PHP
40 lines
1.1 KiB
PHP
<?php
|
|
/**
|
|
* @package ogre-consent
|
|
* @author cleverogre
|
|
* @copyright 2026 CleverOgre
|
|
* @license GLP-3.0-or-later
|
|
* @version 0.0.0
|
|
* @since 0.0.0
|
|
*/
|
|
|
|
namespace Ogre\Consent\Services;
|
|
|
|
use Ogre\Consent\ScriptService;
|
|
use Override;
|
|
|
|
defined('ABSPATH') || exit;
|
|
|
|
final class GoogleTagManager extends ScriptService {
|
|
|
|
protected function __construct() {
|
|
parent::__construct('google-tag-manager');
|
|
}
|
|
|
|
#[Override]
|
|
public function get_config(): array
|
|
{
|
|
return array_merge(
|
|
parent::get_config(),
|
|
[
|
|
'required' => true,
|
|
'onAccept' => "for (let k of Object.keys(opts.consents)) { if (opts.consents[k]) { dataLayer.push({'event': 'ogre-consent-'+k+'-accepted'}) } }",
|
|
'onInit' => "window.dataLayer = window.dataLayer || []; window.gtag = function() { dataLayer.push(arguments) }; gtag('consent', 'default', {'ad_storage': 'denied', 'analytics_storage': 'denied', 'ad_user_data': 'denied', 'ad_personalization': 'denied'}); gtag('set', 'ads_data_redaction', true);",
|
|
]
|
|
);
|
|
}
|
|
|
|
}
|
|
|
|
GoogleAnalytics::instance();
|