広告アトリビューションの実装

This post is also available in: English Français Српски Български 简体中文

ユーザーが広告を有効にすることを決定したサイトの広告収益化の結果を改善するために、Vivaldi には広告アトリビューションのサポートが含まれるようになりました。この変更が実装された理由については、こちらをご覧ください。

このページは主に、広告アトリビューションがどのように実装されているか、またこの実装につながった選択肢について説明することを目的としています。目標は、いつ、何が許可されるかについて完全に透明化することです。

他の広告ブロッカーコードと同様、この実装はリリース済みのソースコードバンドルの一部として完全に利用できます。これにより、実装がここや他の記事で説明されているとおりであることを完全に確認できます。

広告アトリビューションルールの許可

広告収益化の主な課題は、多くの広告プロバイダーがクリック詐欺を防ぎ、支払い前にコンバージョンが発生していることを確認するために、既知のトラッカーに依存していることです。これに対する唯一の解決策は、残念ながら、トラッカーのブロックリストが何と言っているかに関係なく、そのようなトラッカーをロードできるようにすることです。ただし、これらのトラッカーが一般的なブラウジングの一部として読み込まれないようにすることも確認したいと考えています。

これらすべての要件を満たすために、通常の広告ブロッカールール形式を拡張しました。これは、すべての一般的な広告ブロッカーとルールリストで使用されているのと同じ形式です。拡張フォーマットは、以下で詳しく説明する 3 つの新しいオプションで構成されています。

この実装は、広告ブロッカー機能のほとんどを再利用して広告アトリビューションの目標を効果的に達成できると同時に、広告ブロッカールールリストに付属する自動更新メカニズムを使用できるために選択されました。これにより、ミスを迅速に修正することができます。

仕組み

広告のアトリビューションが機能するようにすることは、複数のステップを踏む複雑な作業です。一般的に、サポートのために広告を使用するサイトに焦点が当てられますが、ほとんどの作業は特定の広告をクリックした後に行われます。実装の一環として、次の状態を経ます。

1. ユーザーがサポートしたいサイトに移動

この場合、広告アトリビューションの実装は、広告のクリックを探す必要があることを記録します。 私たちは、それが ‘プライミング’ されていると言います。

広告アトリビューションは通常、トラッカーブロッカーの状態に関係なく、広告ブロッカーが無効になっている任意のサイトで開始されます。広告アトリビューションのプライミングとは、次のナビゲーションが広告クリックであるかどうかを確認することを意味します。それ以外の影響はありません。

すべてのサイトで広告のブロックが有効になっている場合でも、パートナー検索エンジンの広告アトリビューションをサポートできるように、 attribute-ads ルールオプションを導入しました。

@@||partner-site.example.com/page-i-want-to-Support$attribute-ads

これにより、広告アトリビューションは、広告ブロッカーのステータスに関係なく、一致するページで準備されます。実際には、パートナーサイトに広告を表示できるようにするために、 document オプション(AdBlockPlus でサポートされているドキュメント許可ルールと同じ)も追加します。

@@||partner-site.example.com/page-i-want-to-Support$attribute-ads,document

2. 広告アトリビューションが準備されている場合に広告をマッチング

この場合、広告アトリビューションの実装では、読み込まれる URL と、読み込みの一部として発生するリダイレクトの URL が調査されます。

これらの URL が既知の広告と一致しない場合、広告の帰属は無効のままです。 ユーザーが行き着くサイトが、ユーザーがサポートしたいサイトである場合、再度プライミングされる可能性があります。

URL が既知の広告と一致する場合、広告アトリビューションは次のステージに進み、プロセスが続行されます。

ad-query-trigger オプションは、広告 URL の照合にルールを使用する必要があることを示すために使用されます。

||advertiser.example.com/ad-URL$ad-query-trigger=&click-id-param=|&other-click-id-param=

ad-query-trigger オプションは、|で区切られた複数のクエリ文字列フラグメントで構成される値を取ります。

ad-query-trigger ルールのパターンに一致するドキュメントに直接またはリダイレクトを介して到達すると、さらにリダイレクトが調査されます。これらのリダイレクトについては、URL のクエリ文字列が調べられます。オプションの値として指定された文字列のいずれかが含まれている場合、広告の帰属は完全に有効になり、一致する URL のオリジンがこのタブの広告ランディングオリジンとして保存されます。

ad-query-trigger オプションを使用するには、広告 URL パターンにドメイン名を指定するパターンが必要です。つまり、パターンはホストアンカーで、ドメインの後に ^/ 、または ?

特定のタブとオリジンで広告のアトリビューションを有効にすると、タブが同じオリジン内を移動する限り、その状態は保持されます。別のオリジンに移動すると、広告のアトリビューションは無効になりますが、その状態は 30 分間保持されます。期限内にさらにナビゲーションを行うと、30 分に延長されます。期限が過ぎると、元の原点の外側にさらに移動すると、状態が完全にクリアされます。ランディングオリジンに戻ると、広告のアトリビューションが再び有効になります。

広告のアトリビューションの状態は、通常、有効にされたタブに限定されます。ただし、有効になっているタブから新しいタブへの同一生成元ナビゲーションは、その状態を保持します。

また、広告アトリビューションは、トリガーされてから 7 日後に必ず無効になります。

3. 広告アトリビューションが有効になっている場合のトラッカーのマッチング

広告アトリビューションを有効にすると、配信元がランディング配信元と一致するページに読み込まれたリソースが調査されます。広告のアトリビューションに許可するリソースを指定するために、 ad-attribution-tracker オプションを含むルールが使用されます。

@@||advertiser.example.org/track-click$ad-attribution-tracker=advertiser.example.com/&click-id-param=|advertiser.example.net/&ad_id=

このルールの本文はリソース自体の URL と一致しますが、 ad-attribution-tracker オプションの値は、許可するコンテキストを提供します。 このオプションの値は、| で区切られたドメイン/クエリフラグメントのペアで構成されます。ドメイン部分は、クリックされた広告のドメイン(ランディング元ではなく、広告自体)と照合されます。クエリフラグメントは、広告アトリビューションを有効にするために使用されるクエリ フラグメントと照合されます。ペアは、両方のコンポーネントが一致する場合に一致します。このルールは、リソース URL が一致し、ドメイン/クエリ フラグメントのペアのいずれかが一致する場合に一致します。トラッカーがこの方法で許可されると、広告ブロッカーとトラッカーブロッカーの両方でブロックがバイパスされます。

これらのルールは、現在、Vivaldi が提供する「パートナーからの広告を許可する」リストでのみ使用できます。 これは、悪意のあるルールリストで使用される可能性のある状況を回避するためです。ここでは、どのパートナーサイトで広告アトリビューションが有効になっているか、その結果としてどのトラッカーが許可されているかについて、リストを調べることができます。