Redkirin Ad Click Verification

説明

日本語: 電話・LINE・メールのクリック、フォーム送信、広告着地を bot の不正クリックから守るアドフラウド対策プラグインです。管理画面は日本語に対応しています。

ヘッドレスブラウザーや広告プラットフォームのクローラーは JavaScript を実行してリンクをクリックします。電話 (tel:)、LINE、メールなどのリンククリックを GA4 のイベントや Google 広告のコンバージョンとして計測しているサイト (たとえば Google タグマネージャーの「リンクのみ」トリガー経由) では、こうした自動クリックがコンバージョンとして数えられてしまいます。GA4 標準の bot フィルターは既知の bot リストに基づくため、これらを除外できません。

Redkirin Ad Click Verification は、コンバージョンの正確性に特化した軽量なアドフラウド対策です。クリックがタグに届く前に、それが実際の人間によるものかを検証します。

  • 人間の兆候 – ページの読み込み開始時点から、マウス移動、スクロール、タッチ、キーボード操作、滞在時間を記録します。長い滞在 (既定5秒) は1つのシグナルとして数えるため、読んでから固定の電話ボタンをタップした訪問者は計測され、即座のタップは計測されません。
  • bot の兆候 – navigator.webdriver、ヘッドレス / クローラーのユーザーエージェント (編集可能な正規表現リスト)、自動化ツールのグローバル変数、言語設定の欠落、Google が公開するクローラー IP 帯。
  • クリックの遮断 – 未検証のクリックは window のキャプチャ段階で止め、Google タグマネージャーのクリックトリガーやインラインの onclick ハンドラーに届かないようにします。遷移そのもの (発信、LINE の起動、リンク先への移動) はプラグインが実行するため、訪問者がブロックされることはありません。
  • dataLayer ガード – 訪問者が未検証の間は、gtm.linkClick / gtm.click と指定したイベント名を dataLayer.push から破棄します。
  • フォーム送信の検証 – フォーム送信にも同じ人間判定を適用します。隠しフィールドで判定結果を CRM に渡し、検証済みの送信は rkacv_form_submit を push し、明確な bot 兆候のある送信は止めます (Contact Form 7 では迷惑メール扱い、WPForms では拒否)。サンクスページは、同じセッションで検証済みのフォーム送信があった場合のみカウントします。
  • アプリ内ブラウザーの判別 – 着地をアプリ別 (Yahoo! JAPAN、LINE、Facebook、Instagram、X、Google アプリ、TikTok、汎用 WebView など) に分類するため、ValueTrack のプレースメントがなくても bot トラフィックがどのアプリから来ているか分かります。
  • 無駄費用の推定 – 平均 CPC (キャンペーンごとの指定も可) を入力すると、レポートに bot 着地 × CPC をキャンペーン別と合計で表示します。
  • 証跡のエクスポート – Google 広告の無効なクリックの申し立てフォーム向けに、bot 着地と遮断クリックの CSV を出力します。
  • アラート – 1時間ごとに確認し、広告着地の bot 率や同一クリック ID からの反復コンバージョンがしきい値を超えたらメールで通知します。任意で日次ダイジェストも送れます。
  • Country restriction – allow-list or block-list of countries (all ISO countries, grouped by region, searchable). Measurement of phone / LINE / form clicks and verified events is withheld for restricted countries, optionally with an HTTP 403. The country comes from the Internet registries (RDAP) or a CDN country header, not from a third-party geolocation API; unknown countries are measured by default.
  • Page view protection – obvious bots (webdriver, bot user agents, automation globals) get no tags at all: every dataLayer push is dropped, so GTM and gtag.js send nothing, not even page_view. Once a visitor is verified, a rkacv_verified_pageview event is pushed that you can use as a key event instead of page_view (thank-you pages, landing pages).
  • 検証済みイベント – 検証済みのクリックは rkacv_verified_click を dataLayer に push します (rkacv_link_type、rkacv_link_url、rkacv_link_text、rkacv_element_id 付き)。任意で gtag('event', ...) を直接呼び出すこともできます。
  • 判定範囲 – パターンに一致するリンクのみ (既定では電話 / LINE / メール)、すべてのリンク、またはボタンを含むすべてのクリックから選べます。
  • bot への表示拒否 (任意、既定はオフ) – 登録した IP 帯、およびヘッドレスブラウザー・自動化ツール・HTTP ライブラリーに HTTP 403 を返します。検索エンジンや広告審査のクローラーは決して遮断しません。任意で、navigator.webdriver を検出したときにブラウザー側でページを非表示にできます。
  • 反復コンバージョンの抑制 – 1回の広告クリック (1つの gclid) から検証済みの電話 / LINE クリックを計測するのは、リンク種別ごとに一定時間 (既定30分) に1回まで、かつクリック ID ごとに1日の上限 (既定3回) までとし、タブ・端末・再読み込みをまたいで適用します。1回の有料クリックからの手動または自動の「コンバージョン水増し」を止めます。
  • あらゆる広告媒体 – Google (gclid / gbraid / wbraid)、Meta (fbclid)、Yahoo! JAPAN (yclid)、LINE (ldtag_cl)、TikTok (ttclid)、X (twclid)、Microsoft (msclkid) のクリック ID を広告着地と反復抑制で認識し、レポートは着地を媒体別に分けて表示します。直接設置した Meta ピクセルや Yahoo タグは明確な bot には読み込まれず、検証済みイベントを Meta ピクセルへカスタムイベントとして送ることもできます。
  • 広告トラフィック分析 – 広告のクリックパラメーター (gclid、gbraid、wbraid など) を伴う訪問を人間 / 保留 / bot に判定し、キャンペーン・プレースメント・デバイス (URL の Google 広告 ValueTrack パラメーターから取得) とともに記録します。「広告トラフィック」レポートでは、キャンペーン別・プレースメント別の bot 率、同一 IP やクリック ID からの反復着地、キャンペーン別の検証済みクリック、Google 広告の IP 除外に使える IP 帯の一覧を確認できます。
  • ダッシュボードウィジェット – 直近7日間の広告トラフィック (着地数、bot 率、保留、人間、推定無駄費用、日別グラフ、上位キャンペーン) と、日別グラフ・遮断理由の内訳・最新の遮断クリックを含むクリックの集計を表示します。
  • ログ – 遮断・検証済みのクリックを理由とともに記録し、しきい値の調整に役立てられます。IP アドレスは既定で匿名化されます。ログ受信エンドポイントはサイトが署名したトークンを持つリクエストのみ受け付け、IP ごととサイト全体でレート制限され、テーブルは自動的に上限管理・削除されます。

ページキャッシュプラグインと併用できます。訪問者ごとの情報を HTML に埋め込まず、サーバー側の IP 判定は REST API 経由で行います。

管理画面は英語が原文で、日本語訳を同梱しています (日本で一般的な LINE を使った集客を主な対象にしています)。

Google アナリティクス、Google 広告、Google タグマネージャーは Google LLC の商標です。LINE は LY Corporation の商標です。このプラグインは Redkirin が独自に開発したもので、Google および LY Corporation とは提携・承認関係にありません。各名称は互換性の説明のためにのみ使用しています。

外部サービス

このプラグインは3つの外部サービスに接続することがあります。

RDAP (回線事業者の照会) – 「IP アドレスの横に回線事業者を表示」が有効な場合 (既定: 有効)、匿名化した IP 帯の登録者 (携帯キャリア、ISP、ホスティング事業者、固定 IP の割り当てを受けている企業) をインターネットレジストリの公開 RDAP サービスに照会し、結果を30日間キャッシュします。日本の帯域は JPNIC (https://rdap.nic.ad.jp/ip/{range}、規約: https://www.nic.ad.jp/en/db/whois/)、それ以外は https://rdap.org/ip/{range} (担当の地域レジストリへ転送) に照会します。送信するのは匿名化した /24 の帯域 (末尾オクテットをゼロ化) だけで、訪問者の完全な IP は送りません。照会はサーバー側で WP-Cron から、または管理者がログを開いたときに行います。サービス: https://about.rdap.org/ – レジストリの規約: https://www.apnic.net/about-apnic/corporate-documents/documents/resource-management/apnic-whois-terms-and-conditions/

Google クローラーの IP 帯 – 「Google クローラー IP 帯と照合」オプションが有効な場合 (既定で有効)、Google が公開するクローラー IP 帯の一覧を、WP-Cron で1日1回、プラグインの有効化時、および管理者がログ画面で「再取得」をクリックしたときにダウンロードします。一覧は transient にキャッシュされます。このリクエストはサーバーのみが行い、プラグインが訪問者のデータを Google に送ることはありません。

  • https://developers.google.com/static/search/apis/ipranges/googlebot.json
  • https://developers.google.com/static/search/apis/ipranges/special-crawlers.json
  • https://developers.google.com/static/search/apis/ipranges/user-triggered-fetchers-google.json

Google による公開: https://developers.google.com/search/docs/crawling-indexing/verifying-googlebot

Cloudflare の IP 帯 – 「Cloudflare モード」が有効な場合のみ (既定: オフ。サイトが Cloudflare 経由で配信され実際の訪問者 IP が復元されていないことを検知すると、プラグインが有効化を提案します)、Cloudflare が公開する IP 帯リストを https://www.cloudflare.com/ips-v4/ と https://www.cloudflare.com/ips-v6/ から1日1回取得し、2日間キャッシュします。訪問者のデータは送信しません。このリストは、CF-Connecting-IP ヘッダーを訪問者 IP として受け入れる前に、リクエストが本当に Cloudflare から来ているかを確認するために使います。Cloudflare による公開: https://www.cloudflare.com/ips/

このプラグインが Google アナリティクスや Google 広告に何かを送信することはありません。すでに設置済みのタグにクリックを届けるかどうかを判断するだけです。

インストール

  1. redkirin-ad-click-verification フォルダーを /wp-content/plugins/ にアップロードするか、「プラグイン」「新規追加」から zip をインストールします。
  2. プラグインを有効化します。
  3. 管理画面のサイドバーに追加された「Ad Click Verification」メニューを開きます。既存の Google タグマネージャーの設定がある電話 / LINE / メールのリンクなら、既定値のままで動作します。
  4. 任意で、GTM に rkacv_verified_click のカスタムイベントトリガーを作成し、コンバージョンタグをそのトリガーに移してください (設定画面のガイドタブを参照)。

FAQ

訪問者をブロックしますか ?

いいえ。差し止めるのは計測だけです。電話発信、LINE、その他のリンクは常に動作します。クリックを遮断した場合は、プラグインが代わりに遷移を実行します。

Google タグマネージャーのコンテナを変更する必要がありますか ?

必須ではありません。「未検証クリックを遮断する」が有効なら、既存の「クリック – リンクのみ」トリガーは bot のクリックで発火しなくなります。より確実な構成にするには、rkacv_verified_click のカスタムイベントトリガーを作成し、二重計測を避けるため従来のクリックトリガーを一時停止してください。

ページ読み込み直後に電話番号をタップした訪問者はどうなりますか ?

最低滞在時間 (既定1秒) 以内に、事前の操作なしでタップされたクリックは bot と区別できないため計測されません。bot の除外より計測漏れの回避を優先する場合は、滞在時間を短くするか、必要なシグナル数を0にしてください。

キャッシュプラグインや CDN と併用できますか ?

はい。判定はすべてブラウザー内と REST API 経由で行います。リバースプロキシや CDN の配下では、IP 帯の照合が機能するよう rkacv_client_ip フィルターで実際の訪問者 IP を返してください。

どのようなデータが保存されますか ?

任意で、遮断・検証済みクリックのログを保存します。内容は日時、リンク URL、ページ URL、理由、滞在時間、シグナル数、ユーザーエージェント、匿名化した IP (末尾1オクテット / 下位80ビットをゼロ化。無効化可) です。ログは設定した日数で削除され、20,000行が上限です。アンインストール時にすべて削除されます。

ページビューに基づくキーイベント (サンクスページ) も保護できますか ?

はい。明確な bot にはタグを一切発火させず (「明確な bot にはタグを発火させない」)、訪問者が検証された時点で rkacv_verified_pageview を push します。page_view の代わりに、このイベント (必要ならページパスの条件付き) をキーイベントにしてください。ページビュー送信後にしか判別できない bot (IP 帯、操作なし) は page_view 自体からは除けないため、検証済みイベントを用意しています。

Meta 広告、Yahoo! JAPAN 広告、その他の媒体でも使えますか ?

はい。検証はページ上で動作するため、媒体に依存しません。Google、Meta (fbclid)、Yahoo! JAPAN (yclid)、LINE、TikTok、X、Microsoft のクリック ID を着地の記録と反復抑制で認識し、レポートには媒体別の内訳が出ます。各媒体のコンバージョンタグは、検証済みイベント (rkacv_verified_click、rkacv_form_submit、rkacv_verified_pageview) で GTM から発火させてください。直接設置した Meta ピクセルには、検証済みイベントをカスタムイベントとして送れます。

広告トラフィックのレポートで、除外すべきプレースメントが分かりますか ?

キャンペーン別・プレースメント別に、明確な bot 兆候 (webdriver、合成クリック、ヘッドレスのユーザーエージェント、クローラーの IP) を伴う着地の数と、人間と見られる着地の数を表示します。プレースメントとデバイスの内訳には、トラッキングテンプレートに Google 広告の ValueTrack パラメーターが必要です (例: {lpurl}?campaignid={campaignid}&placement={placement}&device={device})。プラグインが Google 広告のアカウントを変更することはなく、除外の設定は Google 広告側でご自身が行います。

ログは信頼できますか ?

ログは訪問者のブラウザーから報告される診断用データです。エンドポイントにはサイトが署名したトークンが必要ですが、トークンは公開ページの一部なので、ページを開ける人なら誰でも書き込めます。ログは調整の参考として扱い、証拠として扱わないでください。GA4 や Google 広告の計測が変わることはありません。書き込みは IP ごととサイト全体でレート制限され、IP ごとの1日の上限があり、テーブルが満杯になると古い行から破棄されるため、新しい行は常に保存されます。

評価

このプラグインにはレビューがありません。

貢献者と開発者

Redkirin Ad Click Verification はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。

貢献者

“Redkirin Ad Click Verification” をあなたの言語に翻訳しましょう。

開発に興味がありますか ?

コードを閲覧するか、SVN リポジトリをチェックするか、開発ログを RSS で購読してみてください。

変更履歴

1.9.7

  • Log entries recorded by versions before 1.1.1 had no click ID stored; they are now back-filled from the page URL once after the update, so the “Repeat (by current rules)” badge and the click ID tables cover older entries too.

1.9.6

  • Event log: verified entries that would be blocked under the current repeat suppression rules (same click ID and link type within the window, or over the daily limit per click ID) get an outlined “Repeat (by current rules)” badge. The stored record is not changed; the badge is computed when the log is displayed, so older entries are re-evaluated too.

1.9.5

  • Repeat conversion suppression now also keeps an in-memory record, so repeated clicks in the same tab are blocked even when the browser blocks localStorage / sessionStorage (some WebViews and privacy settings). Previously such a tab could produce unlimited verified clicks from one ad click.

1.9.4

  • Directory listing: Japanese keyword “アドフラウド” added to the tags, the short description and the description so the plugin can be found by Japanese searches.

1.9.3

  • Japanese translation: three remaining spacing fixes.

1.9.2

  • Japanese translation brought in line with the WordPress Japanese style guide (half-width parentheses with outer spaces, すでに / すべて / ください, など, no spaces around counts).

1.9.1

  • The first option on the Basic settings tab is now called “Protect the site (master switch)” and explains what it pauses; the deny-page feature now also respects it.

1.9.0

  • Cloudflare の検知と Cloudflare モード。管理者が Cloudflare 経由でプラグインの画面を開き、サーバーが実際の訪問者 IP を復元していない場合、IP 判定・国による計測制限・ログが Cloudflare のアドレスを見ている旨の警告と、ワンクリックの「Cloudflare モードを有効にする」ボタンを表示します。Cloudflare モードでは Cloudflare の IP 帯を毎日取得し、本当にその帯から来たリクエストに限り CF-Connecting-IP を訪問者 IP として使い、CF-IPCountry の国ヘッダーを信頼します。汎用のリバースプロキシ警告 (REMOTE_ADDR がプライベートアドレスで X-Forwarded-For あり) では rkacv_client_ip フィルターを案内します。現在のリクエストの状態は、新しい「リバースプロキシ / CDN」設定の横に表示されます。

1.8.5

  • セキュリティ強化: CDN の国ヘッダー (CF-IPCountry / CloudFront-Viewer-Country) を既定では信頼しないようにしました。CDN を経由していないサイトでは誰でも偽装して国による計測制限を回避できるためです。国による計測制限タブの新しいオプション「CDN の国ヘッダーを信頼する」で有効にできます。公開の check エンドポイントから起動するレジストリの同期照会に、サイト全体の上限 (1分あたり30件、フィルター rkacv_geo_sync_lookups_per_minute) を設けました。証跡 CSV のセルが =、+、-、@、タブで始まる場合は引用符を付け、表計算ソフトが数式として実行しないようにしました。
  • 「ページキャッシュを今すぐ削除」を押した管理者には、ページキャッシュの警告を12時間表示しないようにしました。

1.8.4

  • ダッシュボードウィジェットのタイトルを「Redkirin Ad Click Verification」にしました。

1.8.3

  • 設定タブの数値入力欄 (平均 CPC、滞在時間、遅延、保持日数、しきい値) を6桁が見える幅にし、テキスト欄とテキストエリアが列からはみ出さないようにしました。

1.8.2

  • 平均 CPC が未設定でも無駄費用の推定を隠さないようにしました。広告トラフィックのレポート、ダッシュボードウィジェット、日次ダイジェストに「平均 CPC 未設定」と、仮であることを明記した計算例、設定へのリンクを表示します。CPC の入力欄には数値の転記元を記載しました。
  • Network operator / company names next to IP addresses are shown in full instead of being cut off with an ellipsis.

1.8.1

  • 設定タブ「アドフラウド」を新設: 広告トラフィック分析、無駄費用の推定、アラート、同一手順の反復検知を高度な設定から移しました。各タブに専用の初期設定に戻すボタンがあります。

1.8.0

  • 同一手順の反復検知: 別々の IP が同じページで同じブラウザー・ほぼ同じ秒数でクリック / フォーム送信の手順を繰り返している場合、イベントログのタブに一覧表示し (該当行に「同一手順」バッジ、ワンクリックの「bot IP に追加」)、アラートメールでも通知します。webdriver フラグを隠して滞在時間や操作のチェックを通過する stealth 系の bot を捕捉します。
  • Contabo、IONOS、Scaleway、Leaseweb、M247、Hostinger などのホスティング事業者 (ほかにも多くの VPS / クラウド名と国内ホスティング) をホスティングとして認識し、赤で表示するようにしました。登録名に「host」「server」「cloud」「datacenter」「vps」「colo」を含む場合も印を付けます。
  • 国による計測制限を独立したタブに移し、タブ専用の「初期設定に戻す」ボタンを付けました。

1.7.1

  • Country is now stored with every click log entry and ad landing (DB version 7) and shown as a badge next to every IP, Japan included. The event log gets a “By country (7 days)” strip with per-country filtering and an “Exclude from measurement” shortcut that pre-selects the country in the block list. Known countries are back-filled into older rows as lookups complete.
  • イベントログと広告着地の表の各理由に (i) アイコンを付けました。ホバーまたはクリックすると、何を検出したのかを分かりやすく説明します。

1.7.0

  • 「国による計測制限」を新設 (高度な設定): 検索できる地域別のチェックボックスで国の許可リストまたはブロックリストを設定でき、「最近見かけた国」の表示、国が不明な場合のフェイルオープン、任意の HTTP 403、広告トラフィックのレポートの「国別」内訳があります。RDAP 照会の登録国または CDN ヘッダー (Cloudflare、CloudFront) を使い、位置情報 API は使いません。

1.6.3

  • Ad traffic: every breakdown table now has the same columns. Verified clicks (matched by click ID) and the estimated waste are computed per platform, campaign, app, placement, device and source, so the bot-share bars line up across tables.

1.6.2

  • 管理画面のサイドバーメニューの表記を「Redkirin Ad Click Verification」にしました。

1.6.1

  • レイアウト: レポートの見出しを折り返さないようにし、その軸のデータがない内訳表は非表示にし、数値の gad_source にラベルを付け、イベントログの列幅を比率指定にし、回線事業者のバッジをはみ出さず IP の下に置くようにしました。
  • 「ログ」タブとメニューの名称を「イベントログ」に変更しました。

1.6.0

  • ログと広告トラフィック: 匿名化した各 IP の横に、回線事業者 (NTT docomo、au、SoftBank、楽天モバイル、ISP、クラウド / ホスティング事業者、または JPNIC に登録された固定 IP の割り当て先企業) と国を表示します。JPNIC と地域レジストリの公開 RDAP サービスで照会し、30日間キャッシュします。
  • 設定: 基本設定と高度な設定のタブに「このタブを初期設定に戻す」ボタンを追加しました。ホスティング / クラウドの帯域と日本以外で登録された帯域を強調表示し、証跡 CSV に国コードを含めます。照会は WP-Cron で1時間ごと、ログを開いたときに数件ずつ、または「回線事業者を取得」で随時実行します。bot 判定に新しいオプションを追加し、外部サービスの項に記載しました。

1.5.1

  • Autoptimize、WP Rocket、LiteSpeed Cache、Perfmatters、Flying Press、SiteGround Optimizer、WP-Optimize の JavaScript 最適化 (結合、defer、遅延実行) からプラグインのスクリプトを自動的に除外し、defer / async 属性も取り除くため、Google タグマネージャーより前に head で動作し続けます。これがないと遅延実行により bot のタグ遮断が遅れ、早い着地を取りこぼすことがありました。

1.5.0

  • ダッシュボードウィジェット: 着地数、bot 率、保留、人間、推定無駄費用、判定別の日別グラフ、上位キャンペーンを含む広告トラフィックの項目を追加しました。
  • 広告着地を2段階で記録するようにしました。最小滞在時間の直後に仮の記録を作り、遅延後または離脱時に最終判定を書き込みます。離脱イベントなしで閉じられるアプリ内ブラウザーからの訪問が失われなくなりました。最終更新は行ごとの署名キーで認証します。

1.4.1

  • ログ: 「bot IP に追加」ボタンは明確な bot 兆候のある行にだけ表示し、実際の訪問者の可能性がある反復や保留の行には表示しないようにしました。

1.4.0

  • Meta、Yahoo! JAPAN、LINE、TikTok、X、Microsoft のクリック ID (fbclid、yclid、ldtag_cl、ttclid、twclid、msclkid) を広告着地と反復抑制で認識するようにしました。「媒体別」の内訳と媒体の列 / CSV 項目を追加しました。
  • 直接設置した Meta ピクセル (fbq) と Yahoo タグ (ytag / yjDataLayer) も、GTM / gtag と同様に明確な bot には無効化します。
  • 任意の「検証済みイベントを Meta ピクセルに送信」(VerifiedClick / VerifiedPageView / VerifiedFormSubmit のカスタムイベント) を追加しました。
  • トリガー / 取得パラメーターの既定値を拡張しました (campaign_id、adset_id、ad_id、site_source_name、utm_term)。既存のインストールには新しい名前が自動的に追記されます。
  • Meta 広告、Yahoo! JAPAN 広告、その他の媒体向けのガイドを追加しました。

1.3.3

  • キャッシュプラグインへの対応: 一般的なページキャッシュプラグインを検出し、プラグインの画面に「ページキャッシュを今すぐ削除」ボタン付きの通知を表示し、プラグインの更新と設定の保存後にキャッシュを自動的に削除します (他のプラグインは rkacv_cache_plugins フィルターで追加)。

1.3.2

  • ログ画面: 「反復」フィルターと「反復遮断 (直近7日)」カードを追加し、抑制された反復コンバージョンを見つけやすくしました。

1.3.1

  • プラグイン専用のトップレベルメニュー (基本設定、高度な設定、ログ、広告トラフィック、ガイド) を追加し、「設定」配下から移動しました。旧リンクは転送されます。
  • 広告トラフィックのレポート: 内訳表の列幅を統一し、集計カードを等幅にしました。

1.3.0

  • 広告着地のアプリ内ブラウザー分類 (「アプリ別」の内訳と列を追加)、Google 広告の無効なクリックの申し立て用の証跡 CSV エクスポート、無駄費用の推定 (bot 着地 × CPC、キャンペーン別 CPC の上書き) をレポート・ダッシュボード・ダイジェストに追加しました。
  • フォーム送信の検証: 判定結果の隠しフィールド、検証済み送信の rkacv_form_submit イベント、明確な bot 兆候のある送信の遮断 (ブラウザー側、Contact Form 7 の迷惑メール判定、WPForms のエラー)、除外フォームの設定を追加しました。
  • サンクスページの制御: 検証済みページビュー / rkacv_thanks_view は、同じセッションで検証済みのフォーム送信があった場合のみ送信し、直接アクセスはログに記録します。
  • アラートメール (1時間ごとの確認: bot 率、クリック ID ごとの反復コンバージョン) と、任意の日次ダイジェストを追加しました。

1.2.0

  • New “Fire no tags for obvious bots” (default on): when webdriver, a bot user agent or automation globals are present at load, every dataLayer push is dropped so GTM / gtag.js send nothing, including page_view.
  • 「検証済みページビューイベントを送信」(既定オン) を追加: 訪問者が検証されると rkacv_verified_pageview (直接送信が有効なら gtag 経由で verified_page_view も) を push します。page_view の代わりにキーイベントとして使ってください。
  • ガイド: ページビューに基づくキーイベントの項を追加しました。

1.1.3

  • 設定を「基本設定」(判定範囲、しきい値、遮断、検証済みイベント、反復抑制、ログ) と「高度な設定」(bot 判定、広告トラフィック分析、表示拒否) に分けました。一方のタブを保存しても、もう一方の値は保持されます。

1.1.2

  • 設定: 親スイッチに依存するオプション (表示拒否、反復抑制、広告着地、ログ、dataLayer ガード) は、スイッチがオンになるまでグレー表示で編集できないようにしました。値は保持されます。

1.1.1

  • 「反復コンバージョンの抑制」を追加: 検証済みの電話 / LINE クリックは、一定時間内にクリック ID (またはブラウザーセッション) ごと・リンク種別ごとに1回だけ計測し、さらに REST API 経由でログと照合してクリック ID ごとの1日上限を適用します。反復は遮断し、理由「反復」でログに記録します。
  • ログに各行のクリック ID (gclid / gbraid / wbraid / msclkid / yclid) を保存し、広告トラフィックのレポートに反復コンバージョンのあるクリック ID (検証済み、反復遮断、IP 数、初回 / 最終時刻) を一覧表示します。
  • タッチ端末でのキーボード操作をログに参考情報として記録します (デスクトップからの端末エミュレーションや自動操作の兆候)。判定は変わりません。

1.1.0

  • 「広告トラフィック」レポートを追加: 広告着地 (gclid / gbraid / wbraid / gad_campaignid と ValueTrack パラメーター) を設定可能な遅延後または離脱時に人間 / 保留 / bot に判定し、キャンペーン・プレースメント・デバイス・流入元別に bot 率、反復着地 (10分以内の同一 IP、24時間以内の同一クリック ID)、クリック ID で照合した検証済みクリック、Google 広告の IP 除外に使える IP 帯の一覧を表示します。
  • 設定に「広告トラフィック分析」の項を追加しました (ログが有効なら既定で記録オン。トリガー / 取得パラメーター、判定の遅延、保持期間)。
  • ダッシュボードウィジェットに広告着地数と bot 率を表示します。
  • ログと同じ保護 (署名付きトークン、レート制限、IP ごとの1日上限、リングバッファー、保持期間) を備えた新しいテーブル rkacv_ad_visits を追加しました。

1.0.9

  • ログのテーブルをリングバッファーにしました。20,000行の上限に達すると新しい行を拒否する代わりに古い行を破棄するため、大量送信で新しいログを抑え込むことができなくなります。
  • ログ行に IP ごとの1日上限を追加しました (既定300、フィルター rkacv_log_ip_daily_limit)。
  • ログが信頼できない診断用データであることを設定画面と readme に明記しました。

1.0.8

  • ダッシュボードウィジェットを追加: 直近7日間の遮断 / bot 兆候 / 保留 / 検証済み / 表示拒否の件数、日別の棒グラフ、遮断理由の内訳、最新の遮断クリック。

1.0.7

  • 任意の「bot への表示拒否」セクションを追加: 登録済みの bot IP 帯と自動化 / HTTP ライブラリーのユーザーエージェントに HTTP 403 を返します。検索エンジンや広告クローラーは保護リストにより決して拒否されません。navigator.webdriver 検出時のブラウザー側での非表示も任意で選べます。拒否したリクエストは新しい「表示拒否」ステータスとフィルターでログに記録されます。

1.0.6

  • ログ画面: 遮断行に「bot 兆候あり」(確定的な bot の指標) または「保留」(滞在時間 / 操作不足のみ) の印を付けて色分けし、複数回遮断された IP には回数を表示するようにしました。
  • ログ画面: 「bot 兆候あり」フィルターを追加。
  • ログ画面: ワンクリックの「bot IP に追加」ボタンで、その行の IP 帯 (匿名化した IPv4 は /24、IPv6 は /48) を追加 bot CIDR リストに登録できます。ユーザーエージェントが bot パターンに一致していない場合にのみ表示されます。

1.0.5

  • 管理画面の原文を英語にし、日本語訳を同梱 (languages/) して load_plugin_textdomain で読み込むようにしました。
  • ログの理由ラベルを翻訳可能にしました。

1.0.4

  • 「長時間滞在をシグナルとして扱う」しきい値 (既定5000ミリ秒) を追加: 長い滞在を1つの操作シグナルとして数えるため、スクロールせずに読んでから固定の電話 / LINE ボタンをタップした訪問者は計測され、即座のタップは引き続き計測されません。

1.0.3

  • Redkirin Ad Click Verification に改名しました (スラッグ redkirin-ad-click-verification、接頭辞 rkacv_)。dataLayer のキーは rkacv_verified_click、rkacv_human、rkacv_link_type などになりました。
  • ログエンドポイントはレート制限に加えて、サイトが署名したトークン (permission_callback) を必須にしました。
  • readme の説明を短くし、商標表記を追加しました。

1.0.2

  • Redkirin Ad Click Verification に改名しました (スラッグ redkirin-ad-click-verification、PHP 接頭辞 rkacv_)。dataLayer のキー (rkacv_verified_click、rkacv_human、rkacv_link_type など) は変更ありません。
  • ログの日時を UTC で保存し、サイトのタイムゾーンで表示するようにしました。
  • ログテーブルの上限を20,000行にし、ログエンドポイントにサイト全体のレート制限を追加しました。
  • Google クローラー IP 帯キャッシュの同時再取得をロックするようにしました。
  • 修正: 設定を保存すると bot ユーザーエージェントの正規表現からバックスラッシュが消えていました。

1.0.1

  • 修正: 元の dataLayer.push をラップする実際の Google タグマネージャーのランタイムと dataLayer ガードが無限再帰を起こしていました。ガードは差し替えられた実装の連鎖を保持し、再入時には委譲するようにしました。

1.0.0

  • 初回リリース。