メインコンテンツまでスキップ

リファラの検証

リファラトラフィックの検証

Roktは、プラットフォームを通じて配信されるリファラトラフィックの信頼性を広告主が検証するためのメカニズムを提供しています。

現在の実装では、ECDSA-256アルゴリズムで署名されたJSON Web Token (JWT) を使用しています。検証に必要な公開鍵は、以下のエンドポイントから取得できます。

デフォルトドメイン: https://public-api.rokt.com/.well-known/jwks.json

カスタムドメイン: https://[custom-domain]/.well-known/jwks.json

これらの公開鍵をダウンロードしてキャッシュすることをお勧めします。推奨されるキャッシュ期間は1週間です。キーのローテーションが発生した場合、Roktは円滑な移行を確保するためのガイダンスを提供するために積極的に連絡します。

署名付きトークンのパススルーをサポートするようにキャンペーントラフィックURLを更新

ユニークな署名付きトークンを生成するには、クリエイティブの宛先URLに次のURLパラメータを含めるようにしてください: jwt={rokt.jwt|}。クリエイティブの構築についての詳細はこちらをご覧ください。

rokt-jwt-token

宛先URLでは、jwt={rokt.jwt|}の前に&または?を追加する必要があります。これは元のトラフィックリンクによって決まります。元のトラフィックリンクに?が含まれている場合は、jwtの前に&を追加します。 例: www.landingpage.com/?hello=world&jwt={rokt.jwt|}

元のトラフィックリンクに?が含まれていない場合は、jwtの前に?を追加します。

例: www.landingpage.com/?jwt={rokt.jwt|}

キャンペーントラフィックURLでのJWTの使用

キャンペーントラフィックURLを指定する際に、rokt.jwt マクロを含めることができます。実行時に、Roktはこのマクロをデジタル署名されたJWTに置き換えます。このトークンを公開鍵で検証することで、以下のクレームを抽出できます:

  • cid – キャンペーンID
  • crid – クリエイティブID
  • rclid – RoktクリックID。詳細はRokt Click IDをご覧ください
  • iat – 発行時のタイムスタンプ
  • exp – 有効期限のタイムスタンプ(発行から24時間後に設定)
  • iss – 発行者("Rokt"に設定)
  • aud – オーディエンス(空文字列に設定)

これらのフィールドにより、広告主はキャンペーントラフィックを安全に識別し、確信を持って帰属させることができます。

注意: トークンの有効期限の検証は任意であり、広告主のセキュリティ要件に基づいて設定できます。一部の広告主は有効期限を厳密に検証することを選択するかもしれませんが、他の広告主はより柔軟な検証ポリシーを実装する場合があります。

クロックスキュー許容範囲

JWT検証を実装する際には、サーバー間の潜在的な時間差を考慮して、1分のクロックスキュー許容範囲を設定することをお勧めします。分散システムではサーバー間の完全な時間同期が常に可能とは限らず、この猶予期間は本番環境での信頼性の高いトークン検証を保証するのに役立ちます。

以下の例は、異なるプログラミング言語とJWTライブラリでこのクロックスキュー許容範囲を実装する方法を示しています。

テストトークン

以下の例をテストするために、このサンプルJWTトークンを使用できます:

eyJhbGciOiJFUzI1NiIsImtpZCI6InJva3Qtc2lnbmluZy1rZXkiLCJ0eXAiOiJKV1QifQ.eyJjaWQiOiIzNDM2MDg1MzY4NjkyNDA4MzI0IiwiY3JpZCI6IjM0Mzc3MzI3NTQ5MzU5MDYzMDgiLCJyY2xpZCI6IjdkYjk1OGRiZDIzMjI0N2E0YTgyODVhMzRkMjJmZTBmNGU5YWZmYTQ2M2JmNWVlNTRlMjY3MjFhYjBkZjBlMjMiLCJuYmYiOjE3NTU2NjY2MDEsImV4cCI6MTc1NTY3MDIwMSwiaWF0IjoxNzU1NjY2NjAxfQ.D2_5RnmIgWucUx-7JG5b-Av9PM0V59w6Pmumqv0_zHgkD1136dPhKSMv2i-fP4Z0maANJcAwY6jSTXzp6Gc7gA

注意: このトークンはテスト目的のみで使用され、有効期限があります。このトークンをコピーして、以下の例で使用してください。

以下の例コードのリストをご覧ください:

  • Javaの例 - JJWTライブラリを使用したJavaでのJWT検証
  • Pythonの例 - PyJWTとcryptographyを使用したPythonでのJWT検証
  • Node.jsの例 - joseライブラリを使用したNode.jsでのJWT検証
  • Goの例 - golang-jwtを使用したGoでのJWT検証
  • C#の例 - Microsoft.IdentityModelを使用したC#でのJWT検証
この記事は役に立ちましたか?