スクリプトブロック:プラグインの正確な動作
ここでいうブロックとは、プラグインが仕上がったページを、ブラウザーに届く前に書き換えることです。無害化されたスクリプトはソースにまだ載っていますが、読み込まれることも実行されることもありません。このページでは、そのとき技術の上で何が起きるのか、そしてどこに限界があるのかを説明します。
配信のときに何が起きるか
該当する同意がない場合、プラグインはページ全体に出力バッファをかけます。アドレスにブロック対象のホストパターンを含むスクリプト要素は、type 属性を失って type="text/plain" が付き、元のアドレスは data 属性へ移されます。外部スタイルシートは rel="stylesheet" から as="style" 付きの rel="preload" に切り替えられ、アドレスは同じく data 属性へ移されます。決定が下されると、フロントエンドはそれをサーバーへ報告し、Cookie を設定してページを再読み込みします — そのあとサーバーは、書き換えなしでページを配信します。
<script type="text/plain" data-kwpc-src="…">ブロックされたホストの一覧がどこから来るのか
- 有効で、「統計」「マーケティング」「メディアと外部コンテンツ」に入っている、取得したすべてのサービス
- カード「独自のブロックルール」のすべてのパターン — 常にブロックされる追加のホストのパターン
- どちらも空の場合は、代わりに同梱の、統計とマーケティングのカテゴリーの既知のトラッカーホストの一覧が効きます
- 「同意まで Google Fonts をブロック」がオンのときは、加えて fonts.googleapis.com と fonts.gstatic.com も
- 「必須」「機能」「その他」のサービスは、この一覧に載ることはありません
- 「Kakapo Consent」を開き、グループ「ルール」の中の「リソース」(ドイツ語:„Ressourcen“)を選びます。
- スイッチ「スクリプトのブロックを有効」を確かめます — 新しい設置ではオンになっています。
- 「ルールを追加」で独自のホストのパターンを足します。たとえば tracker.example.com です。
- カード「現在ブロック中のホスト」で、どのホストがどの由来でいまブロックされているかを確かめます。
- プラグインが独自の名前で登録するスクリプトについては、カード「ハンドルのルール」で 1 行につき 1 つ、ハンドル、縦線、カテゴリーの形式でルールを入力します。
google-analytics | statistik追加の層と限界
- 埋め込みのフレームは、スクリプトのブロックでは取り除かれません。そのためには同じパネルにスイッチ「埋め込みをブロック」があります: これは同意されていない iframe を配信の前にプレースホルダーに置き換えるもので、元のマークアップはエンコードされたまま一緒に運ばれ、クリックしたときに初めて差し込まれます。見えない計測用のフレーム(高さまたは幅が 0、display:none、aria-hidden)はそのまま手を触れられません
- wp_add_inline_script でハンドルに結び付けられたインラインスクリプトはそのまま残ります — マークアップの中に自分のハンドルを持たないためです
- WooCommerce: 「統計」への同意がなければ wc-cart-fragments、wc-analytics、woocommerce-analytics が外され、「マーケティング」への同意がなければスクリプト wc-marketing と woocommerce-marketing が外されます
- Google Fonts は、代わりにローカルで自分でホストすることもできます。その際に差し替えられるのは、実際にローカルに保存されているファミリーだけです。ダウンロードに失敗した場合は、元の読み込みがそのまま残ります
- ブロック「条件付きコンテンツ」はもっと早い段階で働きます: 同意がなければ、その中身はそもそもレンダリングされず、代わりのボックスが配信されます
まったくブロックされないとき
- スイッチ「CMP 有効」がオフになっている
- 呼び出されたドメインが「ドメイン」(ドイツ語:„Domains“)の一覧に入っていない(空の一覧は、どこでも、という意味です)
- モードが「お知らせのみ」になっている
- 「除外する URL」または「除外するユーザーエージェント」のパターンが当てはまる
- 「プレビューモード」が有効で、訪問者がログイン済みの管理者ではない
- 「位置情報 — EU/EEA のみ」が有効で、サーバーが域外の国を報告している
- 訪問者が「すべて同意」を選んだ
サーバーのすべての判断のよりどころになるのは、サーバーだけが発行し、JavaScript からは読めない署名済みの Cookie です。署名が合わない場合、または焼き込まれた期限が切れている場合は、同意なしとみなされ、ブロックされます。すでに決定を済ませた訪問者のページは、ページキャッシュから外されます。
kwpc_auth
この記事は役に立ったか?