Support » Plugin: Google Analytics Germanized (GDPR / DSGVO) » Opt-Out Cookie funktioniert offenbar bei Chrome nicht

  • Resolved webwart

    (@webwart)


    Hallo Pascal,

    nochmal vielen Dank für Deine Arbeit!

    Mir ist folgendes Verhalten aufgefallen: Im Firefox scheint der Opt-Out-Cookie wie gewünscht zu funktionieren: window[‘ga-disable-UA-XXXXX-Y’] = true stimmt und in google analytics wird auch nichts mehr registriert.

    Bei Chrome sieht das aber anders aus: Hier werden (zumindest bei uns) weiterhin Seitenaufrufe getrackt. Ich vermute, das könnte daran liegen, dass das Auswerten des Cookies relativ spät passiert (das Skript gaoptout.js wird unten auf der Seite eingebunden), so dass möglicherweise schon vor dem Setzen getrackt wird.

    Vgl.:

    This window property must be set before any calls to the ga() command queue are made, and it must be set on each page for which you want to disable Google Analytics tracking.

    Könnte man nicht vielleicht das Skript entweder direkt im Header einbauen lassen? Oder liegt das eher an unserem Theme, was das erst zu spät einbindet? Wobei die Registrierung vom Google Tag Manager im Header stattfindet.

    Könnte man nicht entweder das gesamte Tracking-Javascript von Google nicht einbinden, wenn das Cookie gesetzt ist? Oder aber die Auswertung des Cookies sehr früh (also im Header, ggf. mit inline Code) machen?

    Kann ich Dich dabei ggf. unterstützen?

    Viele Grüße
    Webwart

Viewing 4 replies - 1 through 4 (of 4 total)
  • Plugin Author PascalBajorat

    (@pascalbajorat)

    Hi Webwart,

    danke für die Info.

    Ich werde das einmal prüfen, hast du bitte einmal den Link für die Seite, um welche es geht?

    LG
    Pascal

    Hallo Pascal,

    sorry, dass ich jetzt erst antworte. Es handelt sich um https://female-founder-academy.de

    Ich konnte das Problem temporär lösen, indem ich die Auswertung von den Opt-out Cookie manuell in den Header geschrieben habe. Dann kommt die Auswertung offenbar früher dran.

    Vielen Dank und viele Grüße
    Webwart

    Ich hab mal ein wenig umgebaut, so dass die Shortcodes und damit die Auswertung des Opt-out-Cookies frühzeitiger (im Head) eingebunden werden und auch noch eine Änderung in den Einstellungen eingebaut die es erlaubt zu sagen, dass wenn das Cookie gesetzt wurde, dass dann gar kein Code mehr eingebaut wird. Wobei noch die Label-Übersetzungen fehlen 😉 War mehr ein Proof-Of-Concept.

    Ich weiß nicht genau, wie ich euch das am Besten zukommen lassen kann, ich poste hier mal den kompletten SVN-Diff:

    
    Index: ga-germanized.php
    ===================================================================
    --- ga-germanized.php	(Revision 1919995)
    +++ ga-germanized.php	(Arbeitskopie)
    @@ -22,7 +22,7 @@
     define('PBGAG_FILE', __FILE__);
     define('PBGAG_DIR', dirname(__FILE__));
     define('PBGAG_BASE', plugin_basename(__FILE__));
    -define('PBGAG_VERSION', '1.4.0');
    +define('PBGAG_VERSION', '1.4.1');
     
     if( ! class_exists('gaGermanized') ):
     
    @@ -50,6 +50,17 @@
     				)
     			);
     
    +			/*
    +			 * Shortcodes und Opt-out js
    +			 */
    +			 add_action(
    +				'init',
    +				array(
    +					'gag_shortcodes',
    +					'init'
    +				)
    +			);
    +
     			if( is_admin() ) {
     
     				add_action(
    @@ -126,13 +137,6 @@
     
     			} // end else if( is_admin() )
     
    -			add_action(
    -				'init',
    -				array(
    -					'gag_shortcodes',
    -					'init'
    -				)
    -			);
     		}
     
     		public static function detect_plugin_activation( $plugin, $network_activation )
    Index: inc/gag_analytics.php
    ===================================================================
    --- inc/gag_analytics.php	(Revision 1919995)
    +++ inc/gag_analytics.php	(Arbeitskopie)
    @@ -58,10 +58,27 @@
     				return false;
     			}
     
    -
     			return true;
     		}
     
    +		public static function ga_is_disabled_by_cookie() {
    +			// Init Settings
    +			if( ! self::$settings ) {
    +				self::init();
    +			}
    +
    +			$ga_cookie_name = 'ga-disable-' .esc_attr(self::$uaid);
    +
    +			// ga-disable Cookie
    +			if( isset($_COOKIE[$ga_cookie_name]) ) {
    +				$ga_disable_cookie = $_COOKIE[$ga_cookie_name];
    +			} else {
    +				$ga_disable_cookie = false;
    +			}
    +
    +			return (self::$settings['ga-remove-on-cookie'] && $ga_disable_cookie);
    +		}
    +
     		public static function gst()
     		{
     			$config = array();
    @@ -153,13 +170,16 @@
     			self::init();
     
     			if( ! empty( self::$uaid ) && self::is_analytics_allowed() ) {
    +				if (!self::ga_is_disabled_by_cookie()) {
     
    -				if( self::$mode === 'ua' ) {
    -					echo self::ua();
    +					if( self::$mode === 'ua' ) {
    +						echo self::ua();
    +					} else {
    +						echo self::gst();
    +					}
     				} else {
    -					echo self::gst();
    +					echo '<!-- Google Analytics disabled by user request (cookie) -->';
     				}
    -
     			} else {
     				echo '<!-- Missing Google Analytics ID or Analytics Integration disabled -->';
     			}
    Index: inc/gag_settings_handler.php
    ===================================================================
    --- inc/gag_settings_handler.php	(Revision 1919995)
    +++ inc/gag_settings_handler.php	(Arbeitskopie)
    @@ -156,6 +156,18 @@
     					)
     				),
     
    +                'ga-remove-on-cookie' => array(
    +					'name'      => 'ga-remove-on-cookie',
    +					'default'   => 0,
    +					'required'  => false,
    +					'min_l'     => 0,
    +					'max_l'     => 1,
    +					'values'    => array(
    +						0,
    +						1
    +					)
    +				),
    +
                     /**
                      * Cookie Consent
                      * *************************************
    Index: inc/gag_shortcodes.php
    ===================================================================
    --- inc/gag_shortcodes.php	(Revision 1919995)
    +++ inc/gag_shortcodes.php	(Arbeitskopie)
    @@ -40,7 +40,7 @@
     				plugins_url(dirname(PBGAG_BASE)).'/assets/js/gaoptout.js',
     				array('jquery'),
     				PBGAG_VERSION,
    -				true
    +				false
     			);
     
     			wp_localize_script(
    Index: inc/tpl/options_page.php
    ===================================================================
    --- inc/tpl/options_page.php	(Revision 1919995)
    +++ inc/tpl/options_page.php	(Arbeitskopie)
    @@ -204,6 +204,25 @@
     
                         </div>
     
    +                    <div class="gag-settings-item subheadline clear">
    +                        <span><?php esc_html_e('Remove Google Analytics completely after Opt-out', 'ga-germanized') ?></span>
    +
    +                        <div class="oneline_field checkboxarea clear">
    +                            <div class="leftbox">
    +                                <strong><?php esc_html_e('Remove Google Analytics completely after Opt-out', 'ga-germanized') ?></strong>
    +                            </div>
    +
    +                            <div class="rightbox">
    +                                <input type="checkbox" name="ga-remove-on-cookie" id="ga-remove-on-cookie" value="1" <?php checked(1, $settings['ga-remove-on-cookie']) ?> />
    +
    +                                <label for="ga-remove-on-cookie" class="checkboxlabel"><?php esc_html_e('Remove google-analytics code completely if user sends the "ga-disable-UA-XXXXXX-Y" cookie.', 'ga-germanized') ?></label>
    +
    +                                <p class="mini-description"><?php _e('Remove google-analytics code completely if user sends the "ga-disable-UA-XXXXXX-Y" cookie.', 'ga-germanized') ?></p>
    +                            </div>
    +                        </div>
    +
    +                    </div>
    +
                         <div class="gag-analytics-sendmebutton">
                             <button type="submit" class="gag-sendme-up"><?php esc_html_e('Save Changes', 'ga-germanized') ?></button>
                         </div>
    

    Viele Grüße
    Webwart

    Plugin Author PascalBajorat

    (@pascalbajorat)

    Hey,

    ich schaue mal drüber, kann dir für einen Commit dann ggf. Zugang zum GIT geben.
    Schaue mir die Änderungen in den kommenden Tagen an, thx für die Improvements.

    Beste Grüße
    Pascal

Viewing 4 replies - 1 through 4 (of 4 total)
  • The topic ‘Opt-Out Cookie funktioniert offenbar bei Chrome nicht’ is closed to new replies.