aboutsummaryrefslogtreecommitdiff
path: root/files/ja/mozilla/firefox/privacy/tracking_protection/index.html
blob: 471f4d06846eb98912f54e6571f0a3010251e74e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
---
title: トラッキング防止
slug: Mozilla/Firefox/Privacy/Tracking_Protection
translation_of: Mozilla/Firefox/Privacy/Tracking_Protection
---
<h2 id="トラッキング防止機能とは何か?">トラッキング防止機能とは何か?</h2>

<p>バージョン 42 以降、デスクトップ版 Firefox および Android 版 Firefox には、組み込みの機能としてトラッキング防止が含まれます。プライベートウィンドウ(Android 版 Firefox ではプライベートタブ)では、サイトをまたいでユーザーを追跡するようなドメインからロードされるコンテンツは Firefox によってブロックされます。</p>

<p>ブロックされたコンテンツがページレイアウトの一部である場合、どの部分が Firefox によってブロックされたレイアウト要素であるのかはユーザーにも分かるでしょう。ただし、ページグリッドが要素のブロックによってできた穴を塞ぐように配置されることで、ユーザーに全く気付かれないこともあります。</p>

<p>Firefox によってコンテンツがブロックされると、ウェブコンソールに次のようなメッセージとして記録されます。</p>

<pre>トラッキング防止機能が有効なため、 "http://some/url" のリソースがブロックされました。</pre>

<p>Android 版 Firefox の場合、コンソールへの出力はリモートデバッガからアクセスできる点に注意してください。</p>

<p>Firefox UI は、コンテンツがいつブロックされたのか、そして、選択すれば現在のセッションにおいてブロック解除を有効にできるということを示します。また、ユーザーはトラッキング防止機能を完全に無効にすることもできます。</p>

<h2 id="Firefox_はどのようにブロックする対象を選ぶのか?">Firefox はどのようにブロックする対象を選ぶのか?</h2>

<p>コンテンツはそれがロードされるドメインに基づいてブロックされます。</p>

<p>Firefox は、サイトをまたぐユーザーの追跡を行うサイトをリストにします。トラッキング防止機能が有効な場合、Firefoxは、このリストにあるサイトからのコンテンツをブロックします。</p>

<p>ユーザーの追跡を行うサイトとしては、広告サイトや分析サイトが一般的です。</p>

<h2 id="このことがあなたのサイトにとって意味するものは?">このことがあなたのサイトにとって意味するものは?</h2>

<p>トラッキング防止が有効であれば、次のことが言えます。</p>

<ul>
 <li>追跡を行うサイトから提供されるコンテンツはユーザーに表示されない。</li>
 <li>追跡を行うような広告サービスまたは解析ツールをあなたのサイトで使うことができなくなる。</li>
</ul>

<p>もしあなたのサイトの別の部分が、ロードされる追跡を行うコンテンツに依存していた場合、トラッキング防止が有効になっているとこれらの部分も同様に正しく表示されなくなるかもしれません。例えば、追跡を行うサイトからコンテンツがロードされた時に実行されるようなコールバックがあなたのサイトに含まれたいた場合、このコールバックが実行されることはありません。</p>

<p>例えば、Google Analytics はこのような使い方をすべきではありません:</p>

<pre class="brush:html example-bad line-numbers  language-html"><code class="language-html"><span class="tag token"><span class="tag token"><span class="punctuation token">&lt;</span>a</span> <span class="attr-name token">href</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>http://www.example.com<span class="punctuation token">"</span></span> <span class="attr-name token">onclick</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>trackLink(<span class="punctuation token">'</span>http://www.example.com<span class="punctuation token">'</span>, event);<span class="punctuation token">"</span></span><span class="punctuation token">&gt;</span></span>Visit example.com<span class="tag token"><span class="tag token"><span class="punctuation token">&lt;/</span>a</span><span class="punctuation token">&gt;</span></span>
<span class="tag token"><span class="tag token"><span class="punctuation token">&lt;</span>script</span><span class="punctuation token">&gt;</span></span><span class="language-javascript script token">
<span class="keyword token">function</span> <span class="function token">trackLink</span><span class="punctuation token">(</span>url<span class="punctuation token">,</span>event<span class="punctuation token">)</span> <span class="punctuation token">{</span>
    event<span class="punctuation token">.</span><span class="function token">preventDefault</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
    <span class="function token">ga</span><span class="punctuation token">(</span><span class="string token">'send'</span><span class="punctuation token">,</span> <span class="string token">'event'</span><span class="punctuation token">,</span> <span class="string token">'outbound'</span><span class="punctuation token">,</span> <span class="string token">'click'</span><span class="punctuation token">,</span> url<span class="punctuation token">,</span> <span class="punctuation token">{</span>
     <span class="string token">'transport'</span><span class="punctuation token">:</span> <span class="string token">'beacon'</span><span class="punctuation token">,</span>
     <span class="string token">'hitCallback'</span><span class="punctuation token">:</span> <span class="keyword token">function</span><span class="punctuation token">(</span><span class="punctuation token">)</span> <span class="punctuation token">{</span>
       document<span class="punctuation token">.</span>location <span class="operator token">=</span> url<span class="punctuation token">;</span>
     <span class="punctuation token">}</span>
   <span class="punctuation token">}</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
<span class="punctuation token">}</span>
</span><span class="tag token"><span class="tag token"><span class="punctuation token">&lt;/</span>script</span><span class="punctuation token">&gt;</span></span></code></pre>

<p>その代わり、Google Analytics を使わない場合も考慮して、次のように ga オブジェクトが初期化されているか確認してください:</p>

<pre class="brush:html example-good line-numbers  language-html"><code class="language-html"><span class="tag token"><span class="tag token"><span class="punctuation token">&lt;</span>a</span> <span class="attr-name token">href</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>http://www.example.com<span class="punctuation token">"</span></span> <span class="attr-name token">onclick</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>trackLink(<span class="punctuation token">'</span>http://www.example.com<span class="punctuation token">'</span>, event);<span class="punctuation token">"</span></span><span class="punctuation token">&gt;</span></span>Visit example.com<span class="tag token"><span class="tag token"><span class="punctuation token">&lt;/</span>a</span><span class="punctuation token">&gt;</span></span>
<span class="tag token"><span class="tag token"><span class="punctuation token">&lt;</span>script</span><span class="punctuation token">&gt;</span></span><span class="language-javascript script token">
<span class="keyword token">function</span> <span class="function token">trackLink</span><span class="punctuation token">(</span>url<span class="punctuation token">,</span>event<span class="punctuation token">)</span> <span class="punctuation token">{</span>
    event<span class="punctuation token">.</span><span class="function token">preventDefault</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
    <span class="keyword token">if</span> <span class="punctuation token">(</span>window<span class="punctuation token">.</span>ga <span class="operator token">&amp;&amp;</span> ga<span class="punctuation token">.</span>loaded<span class="punctuation token">)</span> <span class="punctuation token">{</span>
         <span class="function token">ga</span><span class="punctuation token">(</span><span class="string token">'send'</span><span class="punctuation token">,</span> <span class="string token">'event'</span><span class="punctuation token">,</span> <span class="string token">'outbound'</span><span class="punctuation token">,</span> <span class="string token">'click'</span><span class="punctuation token">,</span> url<span class="punctuation token">,</span> <span class="punctuation token">{</span>
         <span class="string token">'transport'</span><span class="punctuation token">:</span> <span class="string token">'beacon'</span><span class="punctuation token">,</span>
         <span class="string token">'hitCallback'</span><span class="punctuation token">:</span> <span class="keyword token">function</span><span class="punctuation token">(</span><span class="punctuation token">)</span> <span class="punctuation token">{</span> document<span class="punctuation token">.</span>location <span class="operator token">=</span> url<span class="punctuation token">;</span> <span class="punctuation token">}</span>
       <span class="punctuation token">}</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
    <span class="punctuation token">}</span> <span class="keyword token">else</span> <span class="punctuation token">{</span>
        document<span class="punctuation token">.</span>location <span class="operator token">=</span> url<span class="punctuation token">;</span>
    <span class="punctuation token">}</span>
<span class="punctuation token">}</span>
</span><span class="tag token"><span class="tag token"><span class="punctuation token">&lt;/</span>script</span><span class="punctuation token">&gt;</span></span></code></pre>

<p>この手法についてより詳しくは <a href="https://hacks.mozilla.org/2016/01/google-analytics-privacy-and-event-tracking/">Google Analytics, Privacy, and Event Tracking</a> をご覧ください。</p>

<p>他のサイトからのコンテンツに依存してしまうやり方は、そのサイトが重かったり、読み込みに失敗したり、アドオンによってトラッキングがブロックされた場合にあなたのサイトまで影響を受けてしまうので良い方法とは言えません。</p>