Skip to content

Instantly share code, notes, and snippets.

@mbaersch
Last active March 30, 2017 10:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mbaersch/5b7567431805311cb26fe1fc47cd1383 to your computer and use it in GitHub Desktop.
Save mbaersch/5b7567431805311cb26fe1fc47cd1383 to your computer and use it in GitHub Desktop.
Gambio GX3 Plugin-Code zur Ausgabe eines Opt-Out-Markers für Google Analytics
<?php
/* --------------------------------------------------------------
PbGaOptoutMarker.inc.php 2017-03-29
Markus Baersch, gandke marketing & software, Peter Berghausen
https://www.gandke.de, http://www.peterberghausen.de
Copyright (c) 2017 Markus Baersch, gandke marketing & software, Peter Berghausen
Released under the GNU General Public License (Version 2)
[http://www.gnu.org/licenses/gpl-2.0.html]
--------------------------------------------------------------
*/
/*
* Installation Gambio GX3:
* Bitte die Werte unten (IP-Filtermuster, Header-Name, Header-Wert, Text fuer Ausgabe) anpassen und diese Datei in den Ordner
* "/GXUserComponents/overloads/HeaderExtenderComponent/" Ihres Shop-Stammverzeichnisses kopieren.
* Einsatz: Siehe gandke.de/ga-marker
* */
/**
* Class PbGaOptoutMarker
*
* Ausgabe eines Opt-Out-Markers fuer Google Analytics
*
* @see HeaderExtenderComponent
*/
class PbGaOptoutMarker extends PbGaOptoutMarker_parent
{
/**
* Overloaded "proceed" method.
*/
public function proceed()
{
parent::proceed();
/* Einstellungen Marker-Trigger */
/*
* IP-Filtermuster:
* Filtermuster fuer IP-Adressen hier eingeben oder leer lassen.
* */
$exc_IpPattern = '127.0.0.1';
/*
* Header-Name:
* Soll ein Header als Marker genutzt werden, Header mit "HTTP_" als Praefix, gross geschrieben und mit einem "_" statt "-" versehen hier und unten den Marker (Header-Wert) angeben.
* Sonst beides leer lassen.
* */
$exc_Header = 'HTTP_GA_TRAFFIC_TYPE';
/*
* Header-Wert:
* Wert des Marker-Headers hier eingeben, wenn dieser verwendet wird.
* */
$exc_HeaderMarker = 'Intern';
/*
* Text fuer Ausgabe:
* Was soll ausgeben werden, wenn der Marker gefunden wird?
* Beispiel-Definition einer JS-Variable f. Codeanpassung:
* "<script>var gaDim1Value'Intern'</script>".
* fuer GTM stattdessen z. B. folgende Zeile nutzen:
* "<script>window.dataLayer=window.dataLayer || []; dataLayer.push({'gaTrafficType':'Intern'});</script>"
* */
$markerTxt = "<script>var gaDim1Value='Intern'</script>";
//Ausgeben, wenn Bedingung zutrifft
if ((($exc_IpPattern != "") && (preg_match("/$exc_IpPattern/i", $_SERVER['REMOTE_ADDR']))) ||
(($exc_Header != "") && ($_SERVER[$exc_Header] === $exc_HeaderMarker))) {
$this->v_output_buffer['ga_optout_marker'] = $markerTxt;
}
}
}
@mbaersch
Copy link
Author

Gambio GX3-Plugin:

Plugin zur Markierung interner Besucher anhand der IP oder eines Headers zum Ausschluss in Google Analytics.

Zweck
Das Plugin dient dazu, anhand eines IP-Musters und / oder eines individuellen Headers der Anfrage einen Marker (z. B. per JavaScript-Variable oder dataLayer) in den <head> zu implementieren, der zum Ausschluss der internen Besucher aus der Webanalyse bzw. dem Betrieb eines Kontrollprofils für interne Besuche per Filter zu ermöglichen.

Hinweise zur Verwendung
Unter gandke.de/ga-marker findet sich ein ausführlicher Beitrag über den Einsatz des Plugins zum Ausschluss von internem Traffic in Google Analytics. Hier wird auch die Einrichtung eines individuellen Headers beschrieben und es finden sich Hinweise auf ggf. bestehende technische Hürden.

Das Plugin ist als "Rumpfplugin" gedacht und kann an die eigenen Bedürfnisse angepasst werden, um zu den Rahmenbedingungen der eigenen Site zu passen. Vielen Dank an Peter Berghausen für die Unterstützung bei Umsetzung und Test dieses und weiterer Plugins für andere Shopsysteme.

Installation
Nach dem Herunterladen des Plugins die Werte für das IP-Filtermuster, den Header-Name, Header-Wert und Text für die Ausgabe direkt im Script an den kommentierten Stellen an die eigenen Bedürfnisse anpassen und die Datei dann in den Ordner
/GXUserComponents/overloads/HeaderExtenderComponent/ des Shop-Stammverzeichnisses kopieren.

Nach der Installation im Backend den Cache für die Seitenausgabe und Modulinformationen leeren. Danach ist die Erweiterung aktiv, sobald eine passende IP oder ein Header gefunden wird.

Wie damit eine benutzerdefinierte Dimension zum Filtern der Besucher angelegt werden kann, wie ein individueller Header gesendet und konfiguriert wird etc. findet sich im o. a. Blogbeitrag.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment