Skip to content

Instantly share code, notes, and snippets.

@mbaersch
Last active December 12, 2020 15:04
Show Gist options
  • Save mbaersch/72e9f8d2035a0cdac0c6d6eb6893f7ed to your computer and use it in GitHub Desktop.
Save mbaersch/72e9f8d2035a0cdac0c6d6eb6893f7ed to your computer and use it in GitHub Desktop.
Google Analytics customTask: fixOrganic
//Folgenden Code bei einer direkten Implementierung von Universal Analytics
//in den Trackingcode einfügen; vor dem Absenden des Pageviews
ga('set', 'customTask', function(model) {
var r = document.referrer;
//Suchmuster für relevante Suchmaschinen mit "versteckten" Suchparametern
var srch = /(suche\.t-online\.de)|(qwant\.com)|(metager\.de)|(duckduckgo\.com)|(ecosia\.org)|(android\.googlequicksearchbox\.)|(search\.yahoo\.com)|(zapmeta\.)|(\.sosodesktop\.com)|(search\.mysearch\.com)|(search\.mail\.com)|(thesmartsearch\.net)|(zdsearch\.com)|(search\.easydialsearch\.com)|(safesearch\.hypersonica\.com)|(search\.v9\.com)|(search\.genieo\.com)|(search\.avast\.com)|(searches\.uninstallmaster\.com)|(search\.handycafe\.com)|(searches\.safehomepage\.com)|(search\.snapdo\.com)|(search\.selfbutler\.com)|(infospace\.com)|(search\.avira\.)/i;
//Referrer mit Suchmuster vergleichen
if (r.search(srch) > 0) {
//passenden Parameter bestimmen
var prm = (r.search('yahoo') > 0) ? 'p=':'q=';
//Konstanten Suchparameter anfügen, wenn kein Parameter vorhanden ist
if (r.search(prm) < 0)
r += (r.split('?')[1] ? '&':'?') + prm + '(not provided)';
model.set('referrer', r);
//Keine Kampagnenparameter (yahoo paid) gefunden? Dann setzen...
if (document.location.href.indexOf('utm_source=') < 0) {
model.set('campaignSource', r.replace('http://','').replace('https://','').replace('www.','').split(/[/?#]/)[0]);
model.set('campaignMedium', 'organic');
var rgx = new RegExp('[\\?&]' + prm + '([^&#]*)');
var q = rgx.exec(r);
q = decodeURIComponent(q[1].replace(/\+/g, ' '));
model.set('campaignKeyword', q);
}
}
});
//Folgenden Code bei Verwendung des Google Tag Managers als benutzerdefinierte JS-Variable anlegen und
//als Feld customTask bei Hits in den festzulegenden Feldern nutzen
function() {
return function(model) {
var r = {{Referrer}}; //Referrer als Integrierte Variable aktivieren und hier auslesen
//Suchmuster für Suchmaschinen mit "versteckten" Suchparametern
var srch = /(suche\.t-online\.de)|(qwant\.com)|(metager\.de)|(duckduckgo\.com)|(ecosia\.org)|(android\.googlequicksearchbox\.)|(search\.yahoo\.com)|(zapmeta\.)|(\.sosodesktop\.com)|(search\.mysearch\.com)|(search\.mail\.com)|(thesmartsearch\.net)|(zdsearch\.com)|(search\.easydialsearch\.com)|(safesearch\.hypersonica\.com)|(search\.v9\.com)|(search\.genieo\.com)|(search\.avast\.com)|(searches\.uninstallmaster\.com)|(search\.handycafe\.com)|(searches\.safehomepage\.com)|(search\.snapdo\.com)|(search\.selfbutler\.com)|(infospace\.com)|(search\.avira\.)/i;
//Referrer mit Suchmuster vergleichen
if (r.search(srch) > 0) {
//passenden Parameter bestimmen
var prm = (r.search('yahoo') > 0) ? 'p=':'q=';
//Konstanten Suchparameter anfügen, wenn kein Parameter vorhanden ist
if (r.search(prm) < 0)
r += (r.split('?')[1] ? '&':'?') + prm + '(not provided)';
model.set('referrer', r);
//Keine Kampagnenparameter (yahoo paid) gefunden? Dann setzen...
if (document.location.href.indexOf('utm_source=') < 0) {
model.set('campaignSource', r.replace('http://','').replace('https://','').replace('www.','').split(/[/?#]/)[0]);
model.set('campaignMedium', 'organic');
var rgx = new RegExp('[\\?&]' + prm + '([^&#]*)');
var q = rgx.exec(r);
q = decodeURIComponent(q[1].replace(/\+/g, ' '));
model.set('campaignKeyword', q);
}
}
}
}
@mbaersch
Copy link
Author

mbaersch commented Jun 25, 2018

Wer alle Suchmaschinen eintragen will, die derzeit unter analytrix.de bekannt sind und deren Suchparameter q lautet (Sonderfall p für Yahoo wird ja abgedeckt) bzw. ohnehin nie zur Identifizierung im Verweispfad bei GA ankommt, der kann folgende Variable für das Suchmuster verwenden und oben austauschen:

var srch = /(\.fvpimageviewer\.com)|(\.ozipcompression\.com)|(\.searchturbo\.com)|(\.sosodesktop\.com)|(airzip\.inspsearch\.com)|(android\.googlequicksearchbox\.)|(anonymous-search\.com)|(dalesearch\.com)|(de\.wow\.com)|(delta-search\.com)|(deusu\.de)|(duckduckgo\.com)|(ecosia\.org)|(enhanced-search\.com)|(isearch\.searchcompletion\.com)|(metager\.de)|(suche\.aol\.de)|(search\.aol\.com)|(metager2\.de)|(metasuche\.ch)|(mysearchguardian\.com)|(qwant\.com)|(search\.avira\.com)|(safesearch\.hypersonica\.com)|(samsung\.de\.searchturbo\.com)|(search\.1and1\.com)|(search\.avast\.com)|(search\.b1\.org)|(search\.ch)|(search\.easydialsearch\.com)|(search\.excite\.com)|(search\.genieo\.com)|(search\.gmx\.net)|(search\.handycafe\.com)|(search\.incredibar\.com)|(search\.infospace\.com)|(search\.lilo\.org)|(search\.mail\.com)|(search\.monstercrawler\.com)|(search\.selfbutler\.com)|(search\.sidecubes\.com)|(search\.snapdo\.com)|(search\.socialdownloadr\.com)|(search\.softonic\.com)|(search\.sweetim\.com)|(search\.v9\.com)|(search\.yahoo\.com)|(searches\.safehomepage\.com)|(searches\.uninstallmaster\.com)|(searchgol\.com)|(searchguide\.level3\.com)|(searchthis\.com)|(sm\.de)|(suche\.1und1\.de)|(suche\.gmx\.at)|(suche\.gmx\.ch)|(suche\.gmx\.net)|(suche\.t-online\.de)|(suche\.web\.de)|(suchen\.1und1\.de)|(suchen\.co\.at)|(swissle\.ch)|(thesmartsearch\.net)|(vodafone\.de\.searchturbo\.com)|(yoursearch\.me)|(zapmeta\.at)|(zapmeta\.ch)|(zapmeta\.com)|(zapmeta\.de)|(zdsearch\.com)/i;

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