Last active
March 30, 2017 10:03
-
-
Save mbaersch/7185d9151715d6801f64d09c9e3fb901 to your computer and use it in GitHub Desktop.
Wordpress Plugin-Code zur Ausgabe eines Opt-Out-Markers für Google Analytics
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* | |
Plugin Name: gms GA Opt-Out-Marker (Demo) | |
Plugin URI: https://www.gandke.de/ga-marker | |
Description: Ausgabe eines Markers für internen Traffic zum Ausschluss aus Google Analytics. Weitere Infos siehe Blog | |
Author: Markus Baersch, gandke marketing & software | |
Author URI: https://www.gandke.de | |
Version: 0.2 | |
*/ | |
$gmoptoutmarker = new gms_ga_optout_marker() ; | |
add_action('wp_head', array($gmoptoutmarker, 'hook_gms_ga_optout')); | |
add_action('admin_menu', array($gmoptoutmarker, 'hook_gms_ga_optout_menu')) ; | |
class gms_ga_optout_marker { | |
function hook_gms_ga_optout() { | |
$exc_IpPattern = stripslashes(get_option('gms_ga_optout_marker_pattern')) ; | |
$exc_Header = stripslashes(get_option('gms_ga_optout_marker_headername')) ; | |
$exc_HeaderMarker = stripslashes(get_option('gms_ga_optout_marker_headervalue')) ; | |
$markerTxt = stripslashes(get_option('gms_ga_optout_marker_echotext')) ; | |
//Ausgeben, wenn Bedingung zutrifft | |
if ((($exc_IpPattern != "") && (preg_match("/$exc_IpPattern/i", $_SERVER['REMOTE_ADDR']))) || | |
(($exc_Header != "") && ($_SERVER[$exc_Header] === $exc_HeaderMarker))) echo $markerTxt; | |
} | |
function hook_gms_ga_optout_menu() { | |
if (function_exists('add_options_page')) { | |
add_options_page('options-general.php', 'GA OutOut-Marker', 8, basename(__FILE__), array($this, 'gms_ga_optout_marker_options')) ; | |
} | |
return false ; | |
} | |
/*Administrationsmenu ausgeben und Optionen verwalten*/ | |
function gms_ga_optout_marker_options() { | |
add_option('gms_ga_optout_marker_pattern', '^127\.0\.0\.1$') ; | |
add_option('gms_ga_optout_marker_headername', 'HTTP_GA_TRAFFIC_TYPE') ; | |
add_option('gms_ga_optout_marker_headervalue', 'Intern') ; | |
add_option('gms_ga_optout_marker_echotext', '<script>var gaDim1Value=\'intern\';</script>') ; | |
if (isset($_POST['gms_save']) && ('speichern' == $_POST['gms_save'])) | |
{ | |
update_option('gms_ga_optout_marker_pattern', $_POST['gms_ga_om_pattern']) ; | |
update_option('gms_ga_optout_marker_headername', $_POST['gms_ga_om_headername']) ; | |
update_option('gms_ga_optout_marker_headervalue', $_POST['gms_ga_om_headervalue']) ; | |
update_option('gms_ga_optout_marker_echotext', $_POST['gms_ga_om_echotext']) ; | |
} | |
$s_pattern = stripslashes(get_option('gms_ga_optout_marker_pattern')) ; | |
$s_hdname = stripslashes(get_option('gms_ga_optout_marker_headername')) ; | |
$s_hdval = stripslashes(get_option('gms_ga_optout_marker_headervalue')) ; | |
$s_echotext = stripslashes(get_option('gms_ga_optout_marker_echotext')) ; | |
?> | |
<div class="wrap"> | |
<h2><?php _e('Optionen GA OptOut Marker') ?></h2> | |
<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF'] ; ?>?page=gmsgaoptoutmarker.php&updated=true"> | |
<input type="hidden" name="gms_save" value="speichern" /> | |
<table width="100%" cellspacing="2" cellpadding="5" class="form-table"> | |
<tr><td colspan="2"><h2>Einstellungen Marker-Trigger</h2></td></tr> | |
<tr valign="top"> | |
<th scope="row"><?php _e('IP-Filtermuster:') ?></th> | |
<td><input name="gms_ga_om_pattern" type="text" id="gms_ga_om_pattern" value="<?php echo $s_pattern ; ?>" size="60" /> | |
<br /> | |
<?php _e('Filtermuster für IP-Adressen hier eingeben oder leer lassen.') ?></td> | |
</tr> | |
<tr valign="top"> | |
<th scope="row"><?php _e('Header-Name:') ?></th> | |
<td><input name="gms_ga_om_headername" type="text" id="gms_ga_om_headername" value="<?php echo $s_hdname ; ?>" size="60" /> | |
<br /> | |
<?php _e('Soll ein Header als Marker genutzt werden, Header mit "HTTP_" als Präfix, gross geschrieben und mit einem "_" statt "-" versehen hier und unten den Marker (Header-Wert) angeben. Sonst beides leer lassen. | |
') ?></td> | |
</tr> | |
<tr valign="top"> | |
<th scope="row"><?php _e('Header-Wert:') ?></th> | |
<td><input name="gms_ga_om_headervalue" type="text" id="gms_ga_om_headervalue" value="<?php echo $s_hdval ; ?>" size="60" /> | |
<br /> | |
<?php _e('Wert des Marker-Headers hier eingeben, wenn dieser verwendet wird.') ?></td> | |
</tr> | |
<tr valign="top"> | |
<th scope="row"><?php _e('Text für Ausgabe:') ?></th> | |
<td><textarea cols="80" rows="5" name="gms_ga_om_echotext" id="gms_ga_om_echotext"><?php echo $s_echotext; ?></textarea> | |
<br /> | |
<?php _e('Was soll ausgeben werden, wenn der Marker gefunden wird? Beispiel-Definition einer JS-Variable f. Codeanpassung "<script>var gaDim1Value=\'Intern\'</script>". Für GTM stattdessen z. B. folgende Zeile nutzen: "<script>window.dataLayer=window.dataLayer || []; dataLayer.push({\'gaTrafficType\':\'Intern\'});</script>"') ?></td> | |
</tr> | |
</table> | |
<p class="submit"> | |
<input type="submit" name="Submit" value="<?php _e('Optionen aktualisieren') ?> »" /> | |
</p> | |
</form> | |
</div> | |
<?php | |
} | |
} //Klasse | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Wordpress-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.
Installation
Im Backend der Site kann die heruntergeladene PHP-Datei über "Plugins - Installieren" hochgeladen werden, wenn sie vorher in einem ZIP-Archiv abgelegt wird. Nach Aktivierung kann über "Einstellungen - GA OptOut-Marker" ein IP-Muster und / oder ein Name und ein Sollwert eines individuellen Headers angegeben werden. Es müssen nicht, können aber beide Wege parallel eingesetzt werden. Was nicht genutzt werden soll, darf leer bleiben.
Dadurch wird bei passender IP bzw. passendem Header der angegebene Textblock in den Kopf der Seiten implementiert (der Aufruf von
wp_head();
im Template ist dazu erforderlich). 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.