Verfolgungsschutz

Was ist Verfolgungsschutz?

Beginnend mit Version 42 beinhalten Firefox Desktop und Firefox für Android einen eingebauten Schutz gegen Verfolgung. In privaten Browserfenstern (Tabs, in Firefox für Android) wird Firefox Inhalte, die von Domains geladen werden, die Nutzer über Seiten verfolgen, blockieren.

Einige dieser blockierten Inhalte sind Teil des Seitenlayouts, weswegen Nutzer Probleme mit diesem haben können. Ist das Seitenraster so angepasst, dass andere Elemente die Lücken der blockierten Inhalte füllen, merken Nutzer keinen Unterschied.

Wenn Firefox Inhalte blockiert, wird die folgende Nachricht ausgegeben:

Die Ressource auf "https://some/url" wurde blockiert, weil das Blockieren von Seitenelementen aktiviert ist.

Die Ausgaben auf der Konsole in Firefox für Android können über den Remote Debugger angezeigt werden.

Das Firefox Benutzerinterface zeigt Nutzern an wenn Inhalte blockiert wurden und ermöglicht es ihnen diese für die Dauer der Sitzung zu entblocken. Nutzer können sich auch entscheiden, den Trackingschutz auch dauerthaft abzuschalten.

Wie entscheidet Firefox was blockiert wird?

Inhalte werden auf Basis der Domain blockiert, von der sie geladen werden.

Firefox kommt mit einer Liste von Seiten, die Nutzer über Seiten hinweg verfolgen. Wenn der Verfolgungschutz aktiv ist, wird Firefox Inhalte von Seiten auf dieser Liste blockieren

Seiten die User tracken sind hauptsächlich externe Werbe- und Analyseseiten

Was bedeutet das für deine Webseite?

Zuerst einmal bedeutet das offensichtlich, dass wenn der Trackingschutz aktiviert ist:

  • Inhalte die von externen Trackern bereit gestellt werden sind für User nicht sichtbar
  • deine Seite wird externe Werbe- und Analyseservices, die tracken, nicht nutzen können

Weniger offensichtlich, falls Teile deiner Seite davon abhänging sind, dass Tracker geladen werden, werden diese Teile nicht funktionieren, wenn der Trackingschutz aktiv is. Beinhaltet deine Seite beispielsweise einen Callback, der ausgeführt wird, wenn Inhalte von einer Trackingseite geladen wurde, so wird dieser Callback nicht ausgeführt.

Zum Beispiel solltest du Google Analytics nicht so verwenden:

<a href="http://www.example.com" onclick="trackLink('http://www.example.com', event);">Visit example.com</a>
<script>
function trackLink(url,event) {
    event.preventDefault();
    ga('send', 'event', 'outbound', 'click', url, {
     'transport': 'beacon',
     'hitCallback': function() { 
       document.location = url; 
     }
   });
}
</script>

Stattdessen solltest  du den Fall berücksichtigen, dass Google Analytics fehlt, in dem du überprüftst ob das ga Objekt initialisiert wurde.

<a href="http://www.example.com" onclick="trackLink('http://www.example.com', event);">Visit example.com</a>
<script>
function trackLink(url,event) {
    event.preventDefault();
    if (window.ga && ga.loaded) {
         ga('send', 'event', 'outbound', 'click', url, {
         'transport': 'beacon',
         'hitCallback': function() { document.location = url; }
       });
    } else {
        document.location = url;
    }
}
</script>

Mehr Informationen zu dieser Technik ist verfügbar auf Google Analytics, Privacy, and Event Tracking.

Sich auf externe Services zu verlassen ist so oder so kein guter Stil: Es bedeutet deine Seite funktioniert nicht, wenn der Service langsam oder nicht verfügbar ist oder der Tracker von einem Addon blockiert wird.