
{
    "kind": "term",
    "name": "ティーリウム・アイデンティティ・パートナーズ",
    "count": 19,
    "items": [

    
        {
            "weight": "-10",
            "url": "https://docs.tealium.com/ja/industries/tealium-identity-partners/about/",
            "title": "アイデンティティ・パートナー・エコシステム",
            "body": "<p>Tealiumは、個人情報（PII）を使用して訪問データを結びつけ、単一の顧客ビューの訪問プロファイルを作成するために、決定論的情報源に依存しています。しかし、第一者データと第三者データのアイデンティティ・プロバイダーを使用することで、訪問、見込み客、顧客それぞれについての高品質な洞察を得ることができます。これらの確率論的な洞察は、Tealiumによって収集されたデータや豊かにされたプロファイルと組み合わせることで、関係データをエンリッチメントし、顧客にパーソナライズされた体験を提供することができます。</p>\n<h2 id=\"アイデンティティプロバイダーは何をするのか\">アイデンティティ・プロバイダーは何をするのか？</h2>\n<p>Tealiumのアイデンティティ・パートナーは以下のサービスを提供します：</p>\n<ul>\n<li>第一者データと第三者データを単一の顧客データベースに収集します。これはCRMとして使用することも、ビジネスが所有するCRMをエンリッチメントするために使用することもできます。</li>\n<li>第一者データを収集、クリーニング、正規化する継続的なプロセスを行い、サービスの品質を保証します。</li>\n<li>UID2.0と統合します。これは第三者クッキーを置き換えるオープンソースのIDフレームワークです。例えば、The Trade DeskはUID 2.0を提供し、広告主がPIIを共有すると、広告ターゲティングのための短期間の匿名識別子を返送します。</li>\n<li>一部のデータプロバイダーは、AdTechや公開関連の機能も提供します。これらは公開プラットフォームとの直接統合をサポートし、広告ターゲティングを支援するものや、プライバシーに準拠した環境での広告キャンペーンの分析を可能にするものもあります。</li>\n</ul>\n<p>Tealiumは、プラットフォーム全体で多数のアイデンティティ・パートナー統合へのアクセスを提供します：iQタグ管理、イベントストリーム、データソース、オーディエンスストリーム、およびファンクションズ。これらのソースから情報を引き出し、訪問や顧客プロファイルの明確なビジョンを組み合わせる作業は大変ですが、Tealiumは複数のソースからのアイデンティティ・プロバイダー・データの統合プロセスをスムーズかつ簡単にするためにここにあります。</p>\n<h3 id=\"決定論的-vs-確率論的\">決定論的 vs 確率論的</h3>\n<p>決定論的マッチングと確率論的データモデルの違いを理解することが重要です：</p>\n<ul>\n<li>決定論的マッチングは、第一者データを使用してデバイスレベルのデータを適切なユーザープロファイルにリンクします。</li>\n<li>確率論的モデルは、信頼度に基づいてユーザーデータを個人にリンクする予測アルゴリズムを使用します。</li>\n</ul>\n<p>決定論的方法はPII（メール、UID2.0など）を使用してユーザーを識別します。Tealiumは訪問のスティッチングで決定論的モデルを採用しています。</p>\n<p>確率論的アイデンティティプログラムとの統合は通常、返されたデータと信頼スコアを処理するためにTealiumのファンクションを使用する必要があります。</p>\n<h2 id=\"仕組み\">仕組み</h2>\n<h3 id=\"auth0とciam\">Auth0とCIAM</h3>\n<p>Auth0はCustomer Identity Access Management（CIAM）モデルを使用します：</p>\n<figure><a class=\"slb\" href=\"/images/industries/screen-shot-2022-09-26-at-13.41.19.png\"><img src=\"https://docs.tealium.com/images/industries/screen-shot-2022-09-26-at-13.41.19.png\"/>\n    </a>\n</figure>\n<p>ユーザーがAuth0にログインすると、そのアイデンティティはAuth0認証サーバーによって確認されます。</p>\n<p>TealiumはAuth0アクションとして表示され、ドラッグアンドドロップ統合を通じて使用することができます。</p>\n<p>Auth0データソースはTealiumの新しい<strong>Identity</strong>カテゴリに表示されます。</p>\n<h3 id=\"uid-20\">UID 2.0</h3>\n<p>The Trade Deskや他のベンダーは、PIIを使用して決定論的に識別するUID 2.0を使用します。訪問にUID 2.0を割り当てるためのエンリッチメントとファンクションコードを構成する必要があります：</p>\n<figure><a class=\"slb\" href=\"/images/industries/screen-shot-2022-09-26-at-13.41.53.png\"><img src=\"https://docs.tealium.com/images/industries/screen-shot-2022-09-26-at-13.41.53.png\"/>\n    </a>\n</figure>\n<p>詳細については、<a href=\"/ja/server-side/functions/event-visitor-functions/uid2/\">Tealium Functionsを使用してUID2.0トークンを生成する</a>を参照してください。</p>\n<p class=\"note\"><i class=\"fa fa-exclamation-triangle\"></i>UID 2.0はプライバシー制限のためEUでは使用できません。</p>\n<h3 id=\"acxiomとmerkle\">AcxiomとMerkle</h3>\n<p>アイデンティティおよびデータ管理ソリューションプロバイダーとして、AcxiomとMerkleは以下の役割を果たします：</p>\n<ul>\n<li>顧客データ戦略を提供し、追加のオプションサービスもあります。</li>\n<li>FunctionsおよびTealium iQタグ管理へのアクセスが必要です。</li>\n<li>第一者データと第三者データをクレンジングしてビジネス用に保存し、プロファイルを世帯にグループ化し、人口統計を収集し、NCOA（National Change of Address）を追跡するなどの作業を行います。</li>\n<li>「決定論的にステッチし、確率論的にエンリッチする」という方法で訪問を識別します。</li>\n</ul>\n<figure><a class=\"slb\" href=\"/images/industries/data-partners-&#43;-tealium---acxiom-%283%29.png\"><img src=\"https://docs.tealium.com/images/industries/data-partners-&#43;-tealium---acxiom-%283%29.png\"/>\n    </a>\n</figure>\n<h3 id=\"netid\">netID</h3>\n<p>ウェブサイトでnetIDでログインまたは登録すると、ユーザーのnetIDアイデンティティパラメータがTealiumのリアルタイムデータ収集、エンリッチメント、アクティベーション機能で利用可能になります。</p>\n<p>ユーザーがnetID認証を使用してウェブサイトにログインすると、そのアイデンティティはnetID認証APIによって確認されます。API <code>READ SERVICE</code> のレスポンスからのアイデンティティパラメータ <code>tpid</code> は、Tealiumデータレイヤーに永続化することができます。</p>\n<ul>\n<li>Tealium iQのロードルールやタグ変数マッピングでクライアントサイドのアクティベーションにnetIDを使用します。サポートされている広告技術に対して、サポートされている場合。</li>\n<li>Tealium EventStreamのルール、イベントフィード、コネクタ属性マッピングでサーバーサイドのアクティベーションにnetIDを使用します。サポートされている広告技術に対して、サポートされている場合。</li>\n<li>Tealium AudienceStreamの訪問プロファイルを豊かにし、顧客プロファイルベースのアクティベーションと抑制にコネクタ属性をマッピングするためにnetIDを使用します。サポートされている広告技術に対して、サポートされている場合。</li>\n</ul>\n<h2 id=\"アイデンティティプロバイダーの使用方法\">アイデンティティ・プロバイダーの使用方法</h2>\n<p>アイデンティティ・プロバイダーを使用して、電話番号やメールアドレスなどのPIIをTealiumに即座に共有し、顧客プロファイルをエンリッチすることができます。これにより、匿名の訪問を既知の訪問や顧客に変換することができます。</p>\n<p>データプロバイダーは常に自社のデータをクリーニングおよび正規化しているため、この情報を使用して自社のデータをクリーニングするのに役立ちます。</p>\n<p>第三者クッキーが廃止されるにつれて、匿名のリターゲティングはもはや可能ではなくなります。したがって、一つ以上のPIIをAdTech IDパートナーと共有することで、公開社やドメイン全体でその個人を識別し、ターゲティングすることができます。</p>\n<p>すでに多くの顧客が第三者のアイデンティティ・プロバイダーを雇用して訪問プロファイルを改善しています。Tealium Identity Marketplaceは、このデータの購読、インポート、統合を簡素化するのに役立ちます。</p>\n<h2 id=\"アイデンティティタグコネクタデータソース\">アイデンティティ・タグ、コネクタ、データソース</h2>\n<p><strong>タグ</strong>、<strong>コネクタ</strong>、<strong>データソース</strong>インターフェースのそれぞれの<strong>Identity</strong>カテゴリには、そのプラットフォームの部分に対する利用可能な識別リソースがすべてリストされています。</p>\n<h3 id=\"アイデンティティとデータ管理ソリューション\">アイデンティティとデータ管理ソリューション</h3>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:left\">パートナー</th>\n<th style=\"text-align:left\">統合タイプ</th>\n<th style=\"text-align:left\">概要</th>\n<th style=\"text-align:left\">ドキュメントリンク</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style=\"text-align:left\">Acxiom</td>\n<td style=\"text-align:left\">タグ</td>\n<td style=\"text-align:left\"><ul><li>ブランドの所有メディアと有料メディア全体に実装されたファーストパーティタグ。</li><li>所有メディアと有料メディアにわたって一貫したアイデンティティを提供。</li><li>確定的および確率的シグナルの両方によってリンケージを構築することが可能。</li><li>クライアント自身のドメインで動作し、他のエンティティとのデータ共有がない完全なファーストパーティソリューションとして機能。</li><li>クッキーがない場合（または受け入れられない場合）でもアイデンティティを解決可能。</li></ul></td>\n<td style=\"text-align:left\"><a href=\"/ja/client-side-tags/acxiom-real-identity-rtag/\">Acxiom Real Identity rTag 構成ガイド</a></td>\n</tr>\n<tr>\n<td style=\"text-align:left\">Auth0</td>\n<td style=\"text-align:left\">データソース</td>\n<td style=\"text-align:left\">Auth0統合市場内のアクションで、ログイン時にAuth0からユーザーデータを送信</td>\n<td style=\"text-align:left\"><a href=\"https://marketplace.auth0.com/integrations/tealium\">TealiumのAuth0統合</a></td>\n</tr>\n<tr>\n<td style=\"text-align:left\">Merkle</td>\n<td style=\"text-align:left\">タグ</td>\n<td style=\"text-align:left\">Merkuryは、組織のファーストパーティCRMデータとログイン、アウトバウンドメールキャンペーン、メディアリーチなどの貴重なインタラクションを使用して、個人ベースのIDの宇宙を作成および拡大します。Tealium IQのデータマッピング機能を使用して、Merkuryと共有されるデータポイントを制御できます。</td>\n<td style=\"text-align:left\"><a href=\"/ja/client-side-tags/merkle-merkury-tag/\">Merkle Merkuryタグ構成ガイド</a></td>\n</tr>\n<tr>\n<td style=\"text-align:left\">netID</td>\n<td style=\"text-align:left\">データレイヤー (UDOオブジェクト)</td>\n<td style=\"text-align:left\">netIDログイン標準を実装するために、netIDパートナーは自社のウェブサイトでブラウザベースのJavaScript APIリクエストを実装し、Tealiumがダウンストリームでアクティベーションを行うために、ブラウザ保存（ファーストパーティクッキー、localStorage、またはsessionStorage）にnetIDアイデンティティとプライバシープロパティを保持します。</td>\n<td style=\"text-align:left\"><a href=\"/ja/industries/tealium-identity-partners/netid-identity-resolution/\">netID実装ガイド</a></td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"広告アイデンティティサービス\">広告アイデンティティサービス</h3>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:left\">パートナー</th>\n<th style=\"text-align:left\">統合タイプ</th>\n<th style=\"text-align:left\">概要</th>\n<th style=\"text-align:left\">ドキュメントリンク</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style=\"text-align:left\">Criteo</td>\n<td style=\"text-align:left\">タグ</td>\n<td style=\"text-align:left\">Cookie Matchingは、Tealiumの訪問を識別するクッキーと、Criteoのユーザーを識別するクッキーを関連付けます。</td>\n<td style=\"text-align:left\"><a href=\"/ja/client-side-tags/criteo-cookie-matching-service-tag/\">Criteo Cookie Matching Serviceタグ構成ガイド</a></td>\n</tr>\n<tr>\n<td style=\"text-align:left\">Criteo</td>\n<td style=\"text-align:left\">コネクタ</td>\n<td style=\"text-align:left\">Audience Matchは、柔軟な顧客ターゲティングソリューションです。</td>\n<td style=\"text-align:left\"><a href=\"/ja/server-side-connectors/criteo-audiences-connector/\">Criteo Audience Matchコネクタ構成ガイド</a></td>\n</tr>\n<tr>\n<td style=\"text-align:left\">Epsilon</td>\n<td style=\"text-align:left\">タグ</td>\n<td style=\"text-align:left\">ブラウザによって呼び出されると、交換とのIDを同期するパートナーピクセルURLのリストを返します。これにより、ユーザーはサイトを離れた後も識別され、メッセージが送信されます。</td>\n<td style=\"text-align:left\"><a href=\"/ja/client-side-tags/epsilon-partner-sync-web-service-tag/\">Epsilon Partner Sync Web Serviceタグ構成ガイド</a></td>\n</tr>\n<tr>\n<td style=\"text-align:left\">The Trade Desk (TDD)</td>\n<td style=\"text-align:left\">タグ</td>\n<td style=\"text-align:left\">The Trade Desk Universal Pixelは、マーケターがユーザーデータについてより詳細に見ることを可能にし、より詳細なレベルでのレポート分析を行います。</td>\n<td style=\"text-align:left\"><a href=\"/ja/client-side-tags/the-trade-desk-universal-pixel-tag/\">Tealium iQ用Trade Desk Universal Pixel構成ガイド</a></td>\n</tr>\n<tr>\n<td style=\"text-align:left\">The Trade Desk (TDD)</td>\n<td style=\"text-align:left\">コネクタ</td>\n<td style=\"text-align:left\">The Trade Deskコネクタは、よりパーソナライズされた広告キャンペーンのために、エンリッチされた訪問プロファイルとオーディエンスをTDDに投稿するために使用できます。</td>\n<td style=\"text-align:left\"><a href=\"/ja/client-side-tags/the-trade-desk-cookie-matching-service-tag/\">The Trade Desk Cookie Matching Serviceタグ構成ガイド</a> (UID2.0機能と共に使用)</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">The Trade Desk (TDD)</td>\n<td style=\"text-align:left\">機能</td>\n<td style=\"text-align:left\">UID2.0は、サードパーティクッキーに代わるオープンソースの識別子です。</td>\n<td style=\"text-align:left\"><a href=\"/ja/server-side-connectors/the-trade-desk-connector/\">The Trade Deskコネクタ構成ガイド</a> (UID2.0機能と共に使用)</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"アイデンティティプロバイダーのプライバシー制限\">アイデンティティプロバイダーのプライバシー制限：</h3>\n<p>アイデンティティパートナーは、GDPRなどの法律による制限があるため、運用できる場所に制限があります。各パートナーは異なる能力を持っています（例えば、Merkleはグローバルですが、TDD UID2.0はEU内では使用できません）。</p>\n<ul>\n<li>Acxiom - <a href=\"https://www.acxiom.com/data-privacy-ethics/gdpr/\">GDPR</a></li>\n<li>Auth0 - <a href=\"https://auth0.com/docs/secure/data-privacy-and-compliance/gdpr\">Auth0 一般データ保護規則コンプライアンス</a></li>\n<li>Criteo - <a href=\"https://www.criteo.com/blog/gdpr-need-know-criteo/\">GDPR: 知っておくべきこと | Criteo</a></li>\n<li>Epsilon - <a href=\"https://www.epsilon.com/emea/insights/blog/gdpr-steps-towards-compliance\">GDPR: コンプライアンスへのステップ</a></li>\n<li>Merkle - <a href=\"https://merkleinc.ch/en/data-protection\">データ保護声明</a></li>\n<li>Tapad - <a href=\"https://www.tapad.com/global-privacy-notice\">プライバシー通知 - グローバル</a></li>\n<li>TDD - <a href=\"https://github.com/UnifiedID2/\">UnifiedID2</a></li>\n</ul>\n<h2 id=\"アイデンティティプロバイダーの実装方法\">アイデンティティプロバイダーの実装方法</h2>\n<p>アイデンティティプロバイダーを実装するには：</p>\n<ul>\n<li>The Trade DeskおよびUID 2.0については、<a href=\"/ja/server-side/functions/event-visitor-functions/uid2/\">Tealium Functionsを使用してUID2.0トークンを生成する</a>を参照してください。</li>\n<li>Acxiomについては、<a href=\"../acxiom-identity-resolution/\">Tealium Functionsを使用したAcxiomアイデンティティ解決</a>を参照してください。</li>\n<li>netIDについては、<a href=\"/ja/industries/tealium-identity-partners/netid-identity-resolution/\">netID実装ガイド</a>を参照してください。</li>\n</ul>\n<p>近日中にさらに多くの機能例を追加します。</p>\n"
        }  

    , 
        {
            "weight": "80",
            "url": "https://docs.tealium.com/ja/server-side/functions/event-visitor-functions/uid2/",
            "title": "訪問機能を使用してUID2を生成する",
            "body": "<h2 id=\"uid2の仕組み\">UID2の仕組み</h2>\n<p>Unified ID 2.0（UID2）は、<a href=\"https://www.thetradedesk.com/us/about-us/industry-initiatives/unified-id-solution-2-0#technical-documentation\">The Trade Desk</a>から提供されるオープンソースのIDフレームワークです。UID2は、メールアドレスや電話番号などの個人識別情報（PII）に基づいて決定的なユーザー識別子を使用し、サードパーティクッキーを置き換えます。識別子はハッシュ化および暗号化され、UID2リクエストに応答してUID2が返されます。詳細については、<a href=\"https://unifiedid.com/docs/intro\">The Trade Desk: UID2 documentation</a>を参照してください。</p>\n<p>UID2は、<a href=\"/ja/server-side-connectors/the-trade-desk-first-party-data-connector/\">The Trade Desk connector</a>およびその他のアウトバウンドコネクタでサポートされています。</p>\n<h2 id=\"訪問機能の作成\">訪問機能の作成</h2>\n<p>PIIを持つがUID2を持たない各訪問に対してUID2を生成するために、訪問機能の使用を推奨します。この機能はUID2を作成し、<code>tealium_visitor_id</code>と共にTealium Collectに送信し、訪問のプロファイルを更新します。</p>\n<p>訪問機能についての詳細は、<a href=\"/ja/server-side/functions/event-visitor-functions/about/\">About event and visitor functions</a>を参照してください。</p>\n<h3 id=\"前提条件\">前提条件</h3>\n<p>UID2を生成する訪問機能を作成する前に：</p>\n<ul>\n<li><strong>UID2イベント仕様を定義する</strong>：The Trade Deskから受け取ったデータの属性（<code>uid_identifier</code>、<code>uid2</code>、<code>uid_timestamp</code>）を持つUID2イベント仕様を作成します。この機能は、このイベント仕様を使用してTealium Collectにイベントを送信します。詳細については、<a href=\"/ja/server-side/event-health/manage-event-specifications/\">Manage event specifications</a>および<a href=\"/ja/server-side/attributes/enrichments/enrichments/\">About enrichments</a>を参照してください。<br>\n<figure><a class=\"slb\" href=\"/images/server-side/functions-uid2_event_spec.png\"><img src=\"https://docs.tealium.com/images/server-side/functions-uid2_event_spec.png\"\n           alt=\"Example event specification\"\n           title=\"Example event specification\"/>\n      </a>\n  </figure></li>\n<li><strong>PII属性を選択する</strong>：ユーザーを識別するためのPII属性を1つまたは複数選択します。UID2バージョン3は電話番号、メールアドレス、またはその両方をサポートしています。バージョン2は電話番号またはメールアドレスのいずれかをサポートしています。</li>\n<li><strong>UID2訪問属性を作成する</strong>：UID2を格納するための訪問属性を作成します。この訪問属性をイベントのUID2属性の値で更新するためのエンリッチメントを追加します。詳細については、<a href=\"/ja/server-side/attributes/about/\">Using Attributes</a>および<a href=\"/ja/server-side/attributes/enrichments/enrichments/\">About enrichments</a>を参照してください。</li>\n<li><strong>特定のオーディエンスを構築する</strong>：UID2を持たない特定の訪問（メールアドレス、電話番号、またはその他の識別子を持つ訪問）のためのオーディエンスを作成します。<br>\n<figure><a class=\"slb\" href=\"/images/server-side/uid2-function-trigger-example.png\"><img src=\"https://docs.tealium.com/images/server-side/uid2-function-trigger-example.png\"\n           alt=\"uid2-function-trigger-example.png\"\n           title=\"uid2-function-trigger-example.png\"/>\n      </a>\n  </figure><br>\n詳細については、<a href=\"/ja/server-side/audiences/manage/#create-an-audience\">Create an audience</a>を参照してください。</li>\n</ul>\n<h3 id=\"訪問機能の構成\">訪問機能の構成</h3>\n<p>訪問機能を構成するには：</p>\n<ol>\n<li>トリガーには<strong>Processed Visitor</strong>を選択します。</li>\n<li><strong>Audience</strong>には、UID2がない特定の訪問のために作成したオーディエンスを選択します。</li>\n<li><strong>Trigger On</strong>には<code>Joined Audience</code>を選択します。</li>\n<li>デフォルトのコードを<a href=\"#example-code\">example code</a>に置き換えます。</li>\n<li>必要に応じて例のコードを変更します。（コード内の<code>TODO</code>コメントは必要な変更を示しています。）</li>\n</ol>\n<h2 id=\"例のコード\">例のコード</h2>\n<h3 id=\"バージョン3\">バージョン3</h3>\n<p>バージョン3では、単一のリクエストで複数の識別子（例えば、メールアドレスや電話番号）をサポートしています。コード内の属性IDをデータに合わせて更新してください。コードはメールUIDを優先しますが、必要に応じてこれを変更することができます。返されたUIDが既存の訪問UIDと一致しない場合にのみ <code>track()</code> メソッドが実行されます。</p>\n<p>Trade Deskの構成属性（<code>api_key</code>, <code>secret</code>）およびUID2属性IDは、スクリプトの開始時に <code>ttd_config</code> オブジェクトでグループ化されています。</p>\n\n<div class=\"pv2\">\n<div class=\"expand ba pa2 b--black-20 pv3\">\n    <div class=\"expand-label\" style=\"cursor: pointer;\" onclick=\"$h = $(this);$h.next('div').slideToggle(100,function () {$h.children('i').attr('class',function () {return $h.next('div').is(':visible') ? 'fas fa-chevron-down' : 'fas fa-chevron-right';});});\">\n        <i style=\"font-size:x-small;\" class=\"fas fa-chevron-right\"></i>\n        <span style=\"font-weight:bold;\">\n        \n    \t\n    \tコードを表示する\n    \t\n    \t</span>\n    </div>\n    <div class=\"expand-content pa2\" style=\"display: none;\">\n        <div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-js\" data-lang=\"js\"><span style=\"display:flex;\"><span><span style=\"color:#66d9ef\">import</span> <span style=\"color:#a6e22e\">CryptoES</span> <span style=\"color:#a6e22e\">from</span> <span style=\"color:#e6db74\">&#39;crypto-es&#39;</span>;\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span><span style=\"color:#a6e22e\">activate</span>(<span style=\"color:#66d9ef\">async</span> ({ <span style=\"color:#a6e22e\">visitor</span>, <span style=\"color:#a6e22e\">visit</span>, <span style=\"color:#a6e22e\">helper</span> }) =&gt; {\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">genHash</span> <span style=\"color:#f92672\">=</span> (<span style=\"color:#a6e22e\">data</span>) =&gt; <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">SHA256</span>(<span style=\"color:#a6e22e\">data</span>).<span style=\"color:#a6e22e\">toString</span>(<span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Base64</span>);\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">validateEmail</span> <span style=\"color:#f92672\">=</span> (<span style=\"color:#a6e22e\">email</span>) =&gt; {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">return</span> String(<span style=\"color:#a6e22e\">email</span>).<span style=\"color:#a6e22e\">toLowerCase</span>().<span style=\"color:#a6e22e\">match</span>(\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#e6db74\">/^(([^&lt;&gt;()[\\]\\\\.,;:\\s@&#34;]+(\\.[^&lt;&gt;()[\\]\\\\.,;:\\s@&#34;]+)*)|.(&#34;.+&#34;))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/</span>\n</span></span><span style=\"display:flex;\"><span>    );\n</span></span><span style=\"display:flex;\"><span>  };\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#75715e\">// TODO: 以下のTrade Desk構成属性を更新してください。\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">ttd_config</span> <span style=\"color:#f92672\">=</span> {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">api_key</span> <span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#39;TTD_API_KEY&#39;</span>, <span style=\"color:#75715e\">// TODO: TTD_API_KEYをあなたのTTD APIキーに変更してください。\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#a6e22e\">secret</span> <span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#39;UID2_SECRET&#39;</span> <span style=\"color:#75715e\">// TODO: UID2_SECRETをあなたのTTD UID2シークレットに変更してください。\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>  };\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#75715e\">// TODO: 必要に応じて以下のTealium構成属性を更新してください。\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">tealium_config</span> <span style=\"color:#f92672\">=</span> {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">tealium_account</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#39;CURRENT&#39;</span>,\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">tealium_profile</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#39;CURRENT&#39;</span>,\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">tealium_datasource</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#39;DATA_SOURCE_KEY&#39;</span>, <span style=\"color:#75715e\">// TODO: DATA_SOURCE_KEYをあなたのTealiumデータソースキーに変更してください。\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#a6e22e\">email_hashed</span><span style=\"color:#f92672\">:</span> <span style=\"color:#66d9ef\">false</span>, <span style=\"color:#75715e\">// TODO: メールが既にハッシュ化されている場合は、これをtrueに構成してください。\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#a6e22e\">phone_hashed</span><span style=\"color:#f92672\">:</span> <span style=\"color:#66d9ef\">false</span>, <span style=\"color:#75715e\">// TODO: 電話が既にハッシュ化されている場合は、これをtrueに構成してください。\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#a6e22e\">email_attr_id</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#39;EMAIL_ATTRIBUTE_ID&#39;</span>, <span style=\"color:#75715e\">// TODO: 訪問のメールに対応する属性に変更してください。\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#a6e22e\">phone_attr_id</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#39;PHONE_ATTRIBUTE_ID&#39;</span>, <span style=\"color:#75715e\">// TODO: 訪問の電話に対応する属性に変更してください。\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#a6e22e\">current_uid2_attr_id</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#39;CURRENT_UID2_ATTRIBUTE_ID&#39;</span> <span style=\"color:#75715e\">// TODO: 訪問のUID2に対応する属性に変更してください。\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>  };\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">if</span> (<span style=\"color:#a6e22e\">tealium_config</span>.<span style=\"color:#a6e22e\">tealium_account</span> <span style=\"color:#f92672\">===</span> <span style=\"color:#e6db74\">&#39;CURRENT&#39;</span>) {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">tealium_config</span>.<span style=\"color:#a6e22e\">tealium_account</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">visitor</span>.<span style=\"color:#a6e22e\">properties</span>.<span style=\"color:#a6e22e\">account</span>;\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">if</span> (<span style=\"color:#a6e22e\">tealium_config</span>.<span style=\"color:#a6e22e\">tealium_profile</span> <span style=\"color:#f92672\">===</span> <span style=\"color:#e6db74\">&#39;CURRENT&#39;</span>) {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">tealium_config</span>.<span style=\"color:#a6e22e\">tealium_profile</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">visitor</span>.<span style=\"color:#a6e22e\">properties</span>.<span style=\"color:#a6e22e\">profile</span>;\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">email</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">visitor</span>.<span style=\"color:#a6e22e\">getAttributeValueById</span>(<span style=\"color:#a6e22e\">tealium_config</span>.<span style=\"color:#a6e22e\">email_attr_id</span>);\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">phone</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">visitor</span>.<span style=\"color:#a6e22e\">getAttributeValueById</span>(<span style=\"color:#a6e22e\">tealium_config</span>.<span style=\"color:#a6e22e\">phone_attr_id</span>);\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">current_uid</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">visitor</span>.<span style=\"color:#a6e22e\">getAttributeValueById</span>(<span style=\"color:#a6e22e\">tealium_config</span>.<span style=\"color:#a6e22e\">current_uid2_attr_id</span>);\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">tealium_vid</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">visitor</span>.<span style=\"color:#a6e22e\">properties</span>.<span style=\"color:#a6e22e\">visitor_id</span>;\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">email_hash</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#66d9ef\">null</span>;\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">if</span> (<span style=\"color:#a6e22e\">email</span>) {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">if</span> (<span style=\"color:#f92672\">!</span><span style=\"color:#a6e22e\">tealium_config</span>.<span style=\"color:#a6e22e\">email_hashed</span>) {\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#66d9ef\">if</span> (<span style=\"color:#f92672\">!</span><span style=\"color:#a6e22e\">validateEmail</span>(<span style=\"color:#a6e22e\">email</span>)) {\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#66d9ef\">throw</span> <span style=\"color:#66d9ef\">new</span> Error(<span style=\"color:#e6db74\">&#39;Email is not valid&#39;</span>);\n</span></span><span style=\"display:flex;\"><span>      }\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">email_hash</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">genHash</span>(<span style=\"color:#a6e22e\">email</span>);\n</span></span><span style=\"display:flex;\"><span>    } <span style=\"color:#66d9ef\">else</span> {\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">email_hash</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">email</span>;\n</span></span><span style=\"display:flex;\"><span>    }\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">phone_hash</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#66d9ef\">null</span>;\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">if</span> (<span style=\"color:#a6e22e\">phone</span>) {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">phone_hash</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">tealium_config</span>.<span style=\"color:#a6e22e\">phone_hashed</span> <span style=\"color:#f92672\">?</span> <span style=\"color:#a6e22e\">phone</span> <span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">genHash</span>(<span style=\"color:#a6e22e\">phone</span>);\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">if</span> (<span style=\"color:#f92672\">!</span><span style=\"color:#a6e22e\">email_hash</span> <span style=\"color:#f92672\">&amp;&amp;</span> <span style=\"color:#f92672\">!</span><span style=\"color:#a6e22e\">phone_hash</span>) {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">throw</span> <span style=\"color:#66d9ef\">new</span> Error(<span style=\"color:#e6db74\">&#39;Provide at least one identity: email or phone.&#39;</span>);\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">url</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#e6db74\">&#39;https://prod.uidapi.com/v3/identity/map&#39;</span>;\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">key</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Base64</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">ttd_config</span>.<span style=\"color:#a6e22e\">secret</span>);\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">hexRef</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#e6db74\">&#34;0123456789abcdef&#34;</span>;\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">randomBytes</span> <span style=\"color:#f92672\">=</span> (<span style=\"color:#a6e22e\">bytes</span>) =&gt; {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">buf</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#e6db74\">&#39;&#39;</span>;\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">for</span> (<span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">i</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#ae81ff\">0</span>; <span style=\"color:#a6e22e\">i</span> <span style=\"color:#f92672\">&lt;</span> <span style=\"color:#a6e22e\">bytes</span> <span style=\"color:#f92672\">*</span> <span style=\"color:#ae81ff\">2</span>; <span style=\"color:#a6e22e\">i</span><span style=\"color:#f92672\">++</span>)\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">buf</span> <span style=\"color:#f92672\">+=</span> <span style=\"color:#a6e22e\">hexRef</span>.<span style=\"color:#a6e22e\">charAt</span>(Math.<span style=\"color:#a6e22e\">floor</span>(Math.<span style=\"color:#a6e22e\">random</span>() <span style=\"color:#f92672\">*</span> <span style=\"color:#a6e22e\">hexRef</span>.<span style=\"color:#a6e22e\">length</span>));\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">return</span> <span style=\"color:#a6e22e\">buf</span>;\n</span></span><span style=\"display:flex;\"><span>  };\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">writeBigUint64BE</span> <span style=\"color:#f92672\">=</span> (<span style=\"color:#a6e22e\">num</span>, <span style=\"color:#a6e22e\">bytes</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#ae81ff\">8</span>) =&gt; {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">buf</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">num</span>.<span style=\"color:#a6e22e\">toString</span>(<span style=\"color:#ae81ff\">16</span>);\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">padding</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#e6db74\">&#39;&#39;</span>;\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">for</span> (<span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">i</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#ae81ff\">0</span>; <span style=\"color:#a6e22e\">i</span> <span style=\"color:#f92672\">&lt;</span> <span style=\"color:#a6e22e\">bytes</span> <span style=\"color:#f92672\">*</span> <span style=\"color:#ae81ff\">2</span> <span style=\"color:#f92672\">-</span> <span style=\"color:#a6e22e\">buf</span>.<span style=\"color:#a6e22e\">length</span>; <span style=\"color:#a6e22e\">i</span><span style=\"color:#f92672\">++</span>)\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">padding</span> <span style=\"color:#f92672\">+=</span> <span style=\"color:#e6db74\">&#39;0&#39;</span>;\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">return</span> <span style=\"color:#a6e22e\">padding</span> <span style=\"color:#f92672\">+</span> <span style=\"color:#a6e22e\">buf</span>;\n</span></span><span style=\"display:flex;\"><span>  };\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">encrypt</span> <span style=\"color:#f92672\">=</span> (<span style=\"color:#a6e22e\">data</span>) =&gt; {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">iv</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">randomBytes</span>(<span style=\"color:#ae81ff\">12</span>);\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">nonce</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">randomBytes</span>(<span style=\"color:#ae81ff\">8</span>);\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">millisec</span> <span style=\"color:#f92672\">=</span> Date.<span style=\"color:#a6e22e\">now</span>();\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">timestamp</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">writeBigUint64BE</span>(<span style=\"color:#a6e22e\">millisec</span>);\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">payload</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Utf8</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">JSON</span>.<span style=\"color:#a6e22e\">stringify</span>(<span style=\"color:#a6e22e\">data</span>));\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">body</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">timestamp</span> <span style=\"color:#f92672\">+</span> <span style=\"color:#a6e22e\">nonce</span> <span style=\"color:#f92672\">+</span> <span style=\"color:#a6e22e\">payload</span>;\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">ivBuf</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Hex</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">iv</span>);\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">encryptedBody</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">AES</span>.<span style=\"color:#a6e22e\">encrypt</span>(\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Hex</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">body</span>),\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">key</span>,\n</span></span><span style=\"display:flex;\"><span>      {\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">iv</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">ivBuf</span>,\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">mode</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">mode</span>.<span style=\"color:#a6e22e\">GCM</span>,\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">padding</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">pad</span>.<span style=\"color:#a6e22e\">NoPadding</span>\n</span></span><span style=\"display:flex;\"><span>      }\n</span></span><span style=\"display:flex;\"><span>    );\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">ciphertext</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">encryptedBody</span>.<span style=\"color:#a6e22e\">ciphertext</span>;\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">authTag</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">mode</span>.<span style=\"color:#a6e22e\">GCM</span>.<span style=\"color:#a6e22e\">mac</span>(<span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">algo</span>.<span style=\"color:#a6e22e\">AES</span>, <span style=\"color:#a6e22e\">key</span>, <span style=\"color:#a6e22e\">ivBuf</span>, <span style=\"color:#66d9ef\">null</span>, <span style=\"color:#a6e22e\">ciphertext</span>).<span style=\"color:#a6e22e\">toString</span>();\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">enveloped</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#e6db74\">&#39;01&#39;</span> <span style=\"color:#f92672\">+</span> <span style=\"color:#a6e22e\">iv</span> <span style=\"color:#f92672\">+</span> <span style=\"color:#a6e22e\">ciphertext</span>.<span style=\"color:#a6e22e\">toString</span>() <span style=\"color:#f92672\">+</span> <span style=\"color:#a6e22e\">authTag</span>;\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">return</span> {\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">timestamp</span><span style=\"color:#f92672\">:</span> parseInt(<span style=\"color:#a6e22e\">timestamp</span>, <span style=\"color:#ae81ff\">16</span>),\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">nonce</span><span style=\"color:#f92672\">:</span> parseInt(<span style=\"color:#a6e22e\">nonce</span>, <span style=\"color:#ae81ff\">16</span>),\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">enveloped</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Hex</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">enveloped</span>).<span style=\"color:#a6e22e\">toString</span>(<span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Base64</span>)\n</span></span><span style=\"display:flex;\"><span>    };\n</span></span><span style=\"display:flex;\"><span>  };\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">decrypt</span> <span style=\"color:#f92672\">=</span> (<span style=\"color:#a6e22e\">data</span>) =&gt; {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">buf</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Base64</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">data</span>).<span style=\"color:#a6e22e\">toString</span>(<span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Hex</span>);\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">iv</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Hex</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">buf</span>.<span style=\"color:#a6e22e\">substring</span>(<span style=\"color:#ae81ff\">0</span>, <span style=\"color:#ae81ff\">24</span>));\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">ciphertext</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Hex</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">buf</span>.<span style=\"color:#a6e22e\">substring</span>(<span style=\"color:#ae81ff\">24</span>, <span style=\"color:#a6e22e\">buf</span>.<span style=\"color:#a6e22e\">length</span> <span style=\"color:#f92672\">-</span> <span style=\"color:#ae81ff\">32</span>));\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">tag</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">buf</span>.<span style=\"color:#a6e22e\">substring</span>(<span style=\"color:#a6e22e\">buf</span>.<span style=\"color:#a6e22e\">length</span> <span style=\"color:#f92672\">-</span> <span style=\"color:#ae81ff\">32</span>);\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">encryptedBody</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#66d9ef\">new</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">lib</span>.<span style=\"color:#a6e22e\">CipherParams</span>({ <span style=\"color:#a6e22e\">ciphertext</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">ciphertext</span> });\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">decrypted</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">AES</span>.<span style=\"color:#a6e22e\">decrypt</span>(<span style=\"color:#a6e22e\">encryptedBody</span>, <span style=\"color:#a6e22e\">key</span>, {\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">iv</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">iv</span>,\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">mode</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">mode</span>.<span style=\"color:#a6e22e\">GCM</span>,\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">padding</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">pad</span>.<span style=\"color:#a6e22e\">NoPadding</span>\n</span></span><span style=\"display:flex;\"><span>    }).<span style=\"color:#a6e22e\">toString</span>();\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">timestamp</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">decrypted</span>.<span style=\"color:#a6e22e\">substring</span>(<span style=\"color:#ae81ff\">0</span>, <span style=\"color:#ae81ff\">16</span>);\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">nonce</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">decrypted</span>.<span style=\"color:#a6e22e\">substring</span>(<span style=\"color:#ae81ff\">16</span>, <span style=\"color:#ae81ff\">32</span>);\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">the</span> <span style=\"color:#a6e22e\">developed</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">decrypted</span>.<span style=\"color:#a6e22e\">substring</span>(<span style=\"color:#ae81ff\">32</span>);\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">return</span> {\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">timestamp</span><span style=\"color:#f92672\">:</span> parseInt(<span style=\"color:#a6e22e\">timestamp</span>, <span style=\"color:#ae81ff\">16</span>),\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">nonce</span><span style=\"color:#f92672\">:</span> parseInt(<span style=\"color:#a6e22e\">nonce</span>, <span style=\"color:#ae81ff\">16</span>),\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">developed</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">JSON</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Hex</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">developed</span>).<span style=\"color:#a6e22e\">toString</span>(<span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Utf8</span>))\n</span></span><span style=\"display:flex;\"><span>    };\n</span></span><span style=\"display:flex;\"><span>  };\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">payload</span> <span style=\"color:#f92672\">=</span> {};\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">if</span> (<span style=\"color:#a6e22e\">email_hash</span>) <span style=\"color:#a6e22e\">payload</span>.<span style=\"color:#a6e22e\">email_hash</span> <span style=\"color:#f92672\">=</span> [<span style=\"color:#a6e22e\">email_hash</span>];\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">if</span> (<span style=\"color:#a6e22e\">phone_hash</span>) <span style=\"color:#a6e22e\">payload</span>.<span style=\"color:#a6e22e\">phone_hash</span> <span style=\"color:#f92672\">=</span> [<span style=\"color:#a6e22e\">phone_hash</span>];\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> { <span style=\"color:#a6e22e\">timestamp</span>, <span style=\"color:#a6e22e\">nonce</span>, <span style=\"color:#a6e22e\">enveloped</span> } <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">encrypt</span>(<span style=\"color:#a6e22e\">payload</span>);\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">response</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#66d9ef\">await</span> <span style=\"color:#a6e22e\">fetch</span>(<span style=\"color:#a6e22e\">url</span>, {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">method</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#39;POST&#39;</span>,\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">body</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">enveloped</span>,\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">headers</span><span style=\"color:#f92672\">:</span> {\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#e6db74\">&#39;Authorization&#39;</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">`Bearer </span><span style=\"color:#e6db74\">${</span><span style=\"color:#a6e22e\">ttd_config</span>.<span style=\"color:#a6e22e\">api_key</span><span style=\"color:#e6db74\">}</span><span style=\"color:#e6db74\">`</span>\n</span></span><span style=\"display:flex;\"><span>    }\n</span></span><span style=\"display:flex;\"><span>  });\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">if</span> (<span style=\"color:#a6e22e\">response</span>.<span style=\"color:#a6e22e\">status</span> <span style=\"color:#f92672\">===</span> <span style=\"color:#ae81ff\">200</span>) {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">body</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#66d9ef\">await</span> <span style=\"color:#a6e22e\">response</span>.<span style=\"color:#a6e22e\">text</span>();\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">data</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">decrypt</span>(<span style=\"color:#a6e22e\">body</span>);\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#75715e\">// メールからのUIDが優先されます。必要に応じて変更してください。\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">uid_email</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">developed</span>.<span style=\"color:#a6e22e\">body</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">email_hash</span><span style=\"color:#f92672\">?</span>.[<span style=\"color:#ae81ff\">0</span>]<span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">u</span>;\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">uid_phone</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">developed</span>.<span style=\"color:#a6e22e\">body</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">phone_hash</span><span style=\"color:#f92672\">?</span>.[<span style=\"color:#ae81ff\">0</span>]<span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">u</span>;\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">uid2</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">uid_email</span> <span style=\"color:#f92672\">??</span> <span style=\"color:#a6e22e\">uid_phone</span>;\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#75715e\">// 取得したUIDが既存の訪問UIDと一致しない場合のみTealiumイベントが生成されます\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#66d9ef\">if</span> (<span style=\"color:#a6e22e\">uid2</span> <span style=\"color:#f92672\">&amp;&amp;</span> <span style=\"color:#a6e22e\">uid2</span> <span style=\"color:#f92672\">!==</span> <span style=\"color:#a6e22e\">current_uid</span>) {\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">event_data</span> <span style=\"color:#f92672\">=</span> {\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">tealium_event</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#34;UID2_event_data&#34;</span>,\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">tealium_visitor_id</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">tealium_vid</span>,\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">uid</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">uid2</span>,\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">uid_timestamp</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">JSON</span>.<span style=\"color:#a6e22e\">stringify</span>(<span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">timestamp</span>)\n</span></span><span style=\"display:flex;\"><span>      };\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#75715e\">// イベントデータオブジェクトをTealiumに送信して処理します。\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>      <span style=\"color:#66d9ef\">await</span> <span style=\"color:#a6e22e\">track</span>(<span style=\"color:#a6e22e\">event_data</span>, <span style=\"color:#a6e22e\">tealium_config</span>)\n</span></span><span style=\"display:flex;\"><span>        .<span style=\"color:#a6e22e\">then</span>(<span style=\"color:#a6e22e\">response</span> =&gt; {\n</span></span><span style=\"display:flex;\"><span>          <span style=\"color:#66d9ef\">if</span> (<span style=\"color:#f92672\">!</span><span style=\"color:#a6e22e\">response</span>.<span style=\"color:#a6e22e\">ok</span>) {\n</span></span><span style=\"display:flex;\"><span>            <span style=\"color:#66d9ef\">throw</span> <span style=\"color:#66d9ef\">new</span> Error(<span style=\"color:#e6db74\">`Track failed with status </span><span style=\"color:#e6db74\">${</span><span style=\"color:#a6e22e\">response</span>.<span style=\"color:#a6e22e\">status</span><span style=\"color:#e6db74\">}</span><span style=\"color:#e6db74\">`</span>);\n</span></span><span style=\"display:flex;\"><span>          }\n</span></span><span style=\"display:flex;\"><span>        })\n</span></span><span style=\"display:flex;\"><span>        .<span style=\"color:#66d9ef\">catch</span>(<span style=\"color:#a6e22e\">error</span> =&gt; <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">error</span>(<span style=\"color:#e6db74\">&#39;Error:&#39;</span>, <span style=\"color:#a6e22e\">error</span>.<span style=\"color:#a6e22e\">message</span>));\n</span></span><span style=\"display:flex;\"><span>    }\n</span></span><span style=\"display:flex;\"><span>  } <span style=\"color:#66d9ef\">else</span> {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">error</span>(<span style=\"color:#e6db74\">`UID2 fetch failed: </span><span style=\"color:#e6db74\">${</span><span style=\"color:#a6e22e\">response</span>.<span style=\"color:#a6e22e\">status</span><span style=\"color:#e6db74\">}</span><span style=\"color:#e6db74\">`</span>);\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>});\n</span></span></code></pre></div>\n    </div>\n</div>\n</div>\n<p>バージョン3の例では、次のJSON構造でメール属性のハッシュ化されたUID2を返します：</p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-json\" data-lang=\"json\"><span style=\"display:flex;\"><span>{\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#f92672\">&#34;body&#34;</span>: {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#f92672\">&#34;email_hash&#34;</span>: [\n</span></span><span style=\"display:flex;\"><span>      {\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#f92672\">&#34;u&#34;</span>: <span style=\"color:#e6db74\">&#34;AdvIvSiaum0P5s3X/7X8h8sz+OhF2IG8DNbEnkWSbYM=&#34;</span>,\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#f92672\">&#34;p&#34;</span>: <span style=\"color:#e6db74\">&#34;EObwtHBUqDNZR33LNSMdtt5cafsYFuGmuY4ZLenlue4=&#34;</span>,\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#f92672\">&#34;r&#34;</span>: <span style=\"color:#ae81ff\">1735689600000</span>\n</span></span><span style=\"display:flex;\"><span>      },\n</span></span><span style=\"display:flex;\"><span>      {\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#f92672\">&#34;u&#34;</span>: <span style=\"color:#e6db74\">&#34;IbW4n6LIvtDj/8fCESlU0QG9K/fH63UdcTkJpAG8fIQ=&#34;</span>,\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#f92672\">&#34;p&#34;</span>: <span style=\"color:#66d9ef\">null</span>,\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#f92672\">&#34;r&#34;</span>: <span style=\"color:#ae81ff\">1735862400000</span>\n</span></span><span style=\"display:flex;\"><span>      }\n</span></span><span style=\"display:flex;\"><span>    ],\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#f92672\">&#34;phone_hash&#34;</span>: []\n</span></span><span style=\"display:flex;\"><span>  },\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#f92672\">&#34;status&#34;</span>: <span style=\"color:#e6db74\">&#34;success&#34;</span>\n</span></span><span style=\"display:flex;\"><span>}\n</span></span></code></pre></div><h3 id=\"バージョン2\">バージョン2</h3>\n<p class=\"note\"><i class=\"fa fa-exclamation-triangle\"></i>UID2バージョン2は2026年6月30日に廃止されます。既存のUID2バージョン2関数をバージョン3に更新してください。</p>\n<p>バージョン2の例では、ユーザー識別子としてメールアドレスを使用しています。電話番号など、異なる識別子を使用するように適応させてください。属性IDは、メール属性の値を取得するために使用されます。属性IDを、あなたの属性に対する正しい値に更新してください。</p>\n\n<div class=\"pv2\">\n<div class=\"expand ba pa2 b--black-20 pv3\">\n    <div class=\"expand-label\" style=\"cursor: pointer;\" onclick=\"$h = $(this);$h.next('div').slideToggle(100,function () {$h.children('i').attr('class',function () {return $h.next('div').is(':visible') ? 'fas fa-chevron-down' : 'fas fa-chevron-right';});});\">\n        <i style=\"font-size:x-small;\" class=\"fas fa-chevron-right\"></i>\n        <span style=\"font-weight:bold;\">\n        \n    \t\n    \tコードを表示するには展開してください\n    \t\n    \t</span>\n    </div>\n    <div class=\"expand-content pa2\" style=\"display: none;\">\n        <div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-js\" data-lang=\"js\"><span style=\"display:flex;\"><span><span style=\"color:#66d9ef\">import</span> <span style=\"color:#a6e22e\">CryptoES</span> <span style=\"color:#a6e22e\">from</span> <span style=\"color:#e6db74\">&#39;crypto-es&#39;</span>\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span><span style=\"color:#a6e22e\">activate</span>(<span style=\"color:#66d9ef\">async</span> ({ <span style=\"color:#a6e22e\">visitor</span>, <span style=\"color:#a6e22e\">visit</span>, <span style=\"color:#a6e22e\">helper</span> }) =&gt; {  \n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">genHash</span> <span style=\"color:#f92672\">=</span> (<span style=\"color:#a6e22e\">data</span>) =&gt; {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">return</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">SHA256</span>(<span style=\"color:#a6e22e\">data</span>).<span style=\"color:#a6e22e\">toString</span>(<span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Base64</span>)\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">validateEmail</span> <span style=\"color:#f92672\">=</span> (<span style=\"color:#a6e22e\">email</span>) =&gt; {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">return</span> String(<span style=\"color:#a6e22e\">email</span>)\n</span></span><span style=\"display:flex;\"><span>      .<span style=\"color:#a6e22e\">toLowerCase</span>()\n</span></span><span style=\"display:flex;\"><span>      .<span style=\"color:#a6e22e\">match</span>(\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#e6db74\">/^(([^&lt;&gt;()[\\]\\\\.,;:\\s@&#34;]+(\\.[^&lt;&gt;()[\\]\\\\.,;:\\s@&#34;]+)*)|.(&#34;.+&#34;))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/</span>\n</span></span><span style=\"display:flex;\"><span>      );\n</span></span><span style=\"display:flex;\"><span>  };\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">tealium_config</span> <span style=\"color:#f92672\">=</span> {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">tealium_account</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#39;CURRENT&#39;</span>, \n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">tealium_profile</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#39;CURRENT&#39;</span>,\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">tealium_datasource</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#39;DATA_SOURCE_KEY&#39;</span>, <span style=\"color:#75715e\">// TODO: Change DATA_SOURCE_KEY to your Tealium Data Source key.\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#a6e22e\">email_hashed</span><span style=\"color:#f92672\">:</span> <span style=\"color:#66d9ef\">false</span> <span style=\"color:#75715e\">// TODO: If your email is already hashed, set this to true.\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>  };\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">if</span> (<span style=\"color:#a6e22e\">tealium_config</span>.<span style=\"color:#a6e22e\">tealium_account</span> <span style=\"color:#f92672\">==</span> <span style=\"color:#e6db74\">&#39;CURRENT&#39;</span>) {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">tealium_config</span>.<span style=\"color:#a6e22e\">tealium_account</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">visitor</span>.<span style=\"color:#a6e22e\">properties</span>.<span style=\"color:#a6e22e\">account</span>\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">if</span> (<span style=\"color:#a6e22e\">tealium_config</span>.<span style=\"color:#a6e22e\">tealium_profile</span> <span style=\"color:#f92672\">==</span> <span style=\"color:#e6db74\">&#39;CURRENT&#39;</span>) {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">tealium_config</span>.<span style=\"color:#a6e22e\">tealium_profile</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">visitor</span>.<span style=\"color:#a6e22e\">properties</span>.<span style=\"color:#a6e22e\">profile</span>\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#75715e\">// TODO: Change the attribute_number to point to the attribute with the visitor&#39;s email\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">email</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">visitor</span>.<span style=\"color:#a6e22e\">getAttributeValueById</span>(<span style=\"color:#e6db74\">&#39;ATTRIBUTE_ID&#39;</span>)\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">hashed_email</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#e6db74\">&#39;&#39;</span>;\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">tealium_vid</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">visitor</span>.<span style=\"color:#a6e22e\">properties</span>.<span style=\"color:#a6e22e\">visitor_id</span>\n</span></span><span style=\"display:flex;\"><span>  \n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">if</span> (<span style=\"color:#f92672\">!</span><span style=\"color:#a6e22e\">tealium_config</span>.<span style=\"color:#a6e22e\">email_hashed</span>) {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">if</span> (<span style=\"color:#f92672\">!</span><span style=\"color:#a6e22e\">validateEmail</span>(<span style=\"color:#a6e22e\">email</span>)) {\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#66d9ef\">throw</span> <span style=\"color:#66d9ef\">new</span> Error(<span style=\"color:#e6db74\">&#39;Email attribute is not a valid email&#39;</span>);\n</span></span><span style=\"display:flex;\"><span>    }\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">hashed_email</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">genHash</span>(<span style=\"color:#a6e22e\">email</span>)\n</span></span><span style=\"display:flex;\"><span>  } <span style=\"color:#66d9ef\">else</span> {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">hashed_email</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">email</span>\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#75715e\">// TODO: Update the following variables with your TTD UID2 credentials\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">api_key</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#e6db74\">&#39;TTD_API_KEY&#39;</span> <span style=\"color:#75715e\">// TODO: Change TTD_API_KEY to your TTD API Key.\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">secret</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#e6db74\">&#39;UID2_SECRET&#39;</span> <span style=\"color:#75715e\">// TODO: Change UID2_SECRET to your TTD UID2 secret.\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">url</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#e6db74\">&#39;https://prod.uidapi.com/v2/identity/map&#39;</span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">key</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Base64</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">secret</span>)\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">hexRef</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#e6db74\">&#34;0123456789abcdef&#34;</span>\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">randomBytes</span> <span style=\"color:#f92672\">=</span> (<span style=\"color:#a6e22e\">bytes</span>) =&gt; {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">buf</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#e6db74\">&#39;&#39;</span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">for</span> (<span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">i</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#ae81ff\">0</span>; <span style=\"color:#a6e22e\">i</span> <span style=\"color:#f92672\">&lt;</span> <span style=\"color:#a6e22e\">bytes</span> <span style=\"color:#f92672\">*</span> <span style=\"color:#ae81ff\">2</span>; <span style=\"color:#a6e22e\">i</span><span style=\"color:#f92672\">++</span>)\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">buf</span> <span style=\"color:#f92672\">+=</span> <span style=\"color:#a6e22e\">hexRef</span>.<span style=\"color:#a6e22e\">charAt</span>(Math.<span style=\"color:#a6e22e\">floor</span>(Math.<span style=\"color:#a6e22e\">random</span>() <span style=\"color:#f92672\">*</span> <span style=\"color:#a6e22e\">hexRef</span>.<span style=\"color:#a6e22e\">length</span>))\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">return</span> <span style=\"color:#a6e22e\">buf</span>\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">writeBigUint64BE</span> <span style=\"color:#f92672\">=</span> (<span style=\"color:#a6e22e\">num</span>, <span style=\"color:#a6e22e\">bytes</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#ae81ff\">8</span>) =&gt; {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">buf</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">num</span>.<span style=\"color:#a6e22e\">toString</span>(<span style=\"color:#ae81ff\">16</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">padding</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#e6db74\">&#39;&#39;</span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">for</span> (<span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">i</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#ae81ff\">0</span>; <span style=\"color:#a6e22e\">i</span> <span style=\"color:#f92672\">&lt;</span> <span style=\"color:#a6e22e\">bytes</span> <span style=\"color:#f92672\">*</span> <span style=\"color:#ae81ff\">2</span> <span style=\"color:#f92672\">-</span> <span style=\"color:#a6e22e\">buf</span>.<span style=\"color:#a6e22e\">length</span>; <span style=\"color:#a6e22e\">i</span><span style=\"color:#f92672\">++</span>)\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">padding</span> <span style=\"color:#f92672\">+=</span> <span style=\"color:#e6db74\">&#39;0&#39;</span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">return</span> <span style=\"color:#a6e22e\">padding</span> <span style=\"color:#f92672\">+</span> <span style=\"color:#a6e22e\">buf</span>\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">encrypt</span> <span style=\"color:#f92672\">=</span> (<span style=\"color:#a6e22e\">data</span>) =&gt; {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">iv</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">randomBytes</span>(<span style=\"color:#ae81ff\">12</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">nonce</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">randomBytes</span>(<span style=\"color:#ae81ff\">8</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">millisec</span> <span style=\"color:#f92672\">=</span> Date.<span style=\"color:#a6e22e\">now</span>()\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">timestamp</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">writeBigUint64BE</span>(<span style=\"color:#a6e22e\">millisec</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">payload</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Utf8</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">JSON</span>.<span style=\"color:#a6e22e\">stringify</span>(<span style=\"color:#a6e22e\">data</span>))\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">body</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">timestamp</span> <span style=\"color:#f92672\">+</span> <span style=\"color:#a6e22e\">nonce</span> <span style=\"color:#f92672\">+</span> <span style=\"color:#a6e22e\">payload</span> \n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">ivBuf</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Hex</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">iv</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">encryptedBody</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">AES</span>.<span style=\"color:#a6e22e\">encrypt</span>(\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Hex</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">body</span>),\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">key</span>,\n</span></span><span style=\"display:flex;\"><span>      {\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">iv</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">ivBuf</span>,\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">mode</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">mode</span>.<span style=\"color:#a6e22e\">GCM</span>,\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">padding</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">pad</span>.<span style=\"color:#a6e22e\">NoPadding</span>\n</span></span><span style=\"display:flex;\"><span>      }\n</span></span><span style=\"display:flex;\"><span>    )\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">ciphertext</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">encryptedBody</span>.<span style=\"color:#a6e22e\">ciphertext</span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">authTag</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">mode</span>.<span style=\"color:#a6e22e\">GCM</span>.<span style=\"color:#a6e22e\">mac</span>(<span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">algo</span>.<span style=\"color:#a6e22e\">AES</span>, <span style=\"color:#a6e22e\">key</span>, <span style=\"color:#a6e22e\">ivBuf</span>, <span style=\"color:#66d9ef\">null</span>, <span style=\"color:#a6e22e\">ciphertext</span>).<span style=\"color:#a6e22e\">toString</span>()\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">enveloped</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#e6db74\">&#39;01&#39;</span> <span style=\"color:#f92672\">+</span> <span style=\"color:#a6e22e\">iv</span> <span style=\"color:#f92672\">+</span> <span style=\"color:#a6e22e\">ciphertext</span>.<span style=\"color:#a6e22e\">toString</span>() <span style=\"color:#f92672\">+</span> <span style=\"color:#a6e22e\">authTag</span>\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">return</span> {\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">timestamp</span><span style=\"color:#f92672\">:</span> parseInt(<span style=\"color:#a6e22e\">timestamp</span>, <span style=\"color:#ae81ff\">16</span>),\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">nonce</span><span style=\"color:#f92672\">:</span> parseInt(<span style=\"color:#a6e22e\">nonce</span>, <span style=\"color:#ae81ff\">16</span>),\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">enveloped</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Hex</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">enveloped</span>).<span style=\"color:#a6e22e\">toString</span>(<span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Base64</span>)\n</span></span><span style=\"display:flex;\"><span>    }\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">decrypt</span> <span style=\"color:#f92672\">=</span> (<span style=\"color:#a6e22e\">data</span>) =&gt; {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">buf</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Base64</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">data</span>).<span style=\"color:#a6e22e\">toString</span>(<span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Hex</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">iv</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Hex</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">buf</span>.<span style=\"color:#a6e22e\">substring</span>(<span style=\"color:#ae81ff\">0</span>, <span style=\"color:#ae81ff\">24</span>))\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">ciphertext</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Hex</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">buf</span>.<span style=\"color:#a6e22e\">substring</span>(<span style=\"color:#ae81ff\">24</span>, <span style=\"color:#a6e22e\">buf</span>.<span style=\"color:#a6e22e\">length</span> <span style=\"color:#f92672\">-</span> <span style=\"color:#ae81ff\">32</span>))\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">the</span> <span style=\"color:#a6e22e\">tag</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">buf</span>.<span style=\"color:#a6e22e\">substring</span>(<span style=\"color:#a6e22e\">buf</span>.<span style=\"color:#a6e22e\">length</span> <span style=\"color:#f92672\">-</span> <span style=\"color:#ae81ff\">32</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">encryptedBody</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#66d9ef\">new</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">lib</span>.<span style=\"color:#a6e22e\">CipherParams</span>({ <span style=\"color:#a6e22e\">ciphertext</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">ciphertext</span> })\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">decrypted</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">AES</span>.<span style=\"color:#a6e22e\">decrypt</span>(<span style=\"color:#a6e22e\">encryptedBody</span>, <span style=\"color:#a6e22e\">key</span>, \n</span></span><span style=\"display:flex;\"><span>      {\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">iv</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">iv</span>, \n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">mode</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">mode</span>.<span style=\"color:#a6e22e\">GCM</span>, \n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">padding</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">pad</span>.<span style=\"color:#a6e22e\">NoPadding</span>\n</span></span><span style=\"display:flex;\"><span>      }\n</span></span><span style=\"display:flex;\"><span>    ).<span style=\"color:#a6e22e\">toString</span>()\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">timestamp</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">decrypted</span>.<span style=\"color:#a6e22e\">substring</span>(<span style=\"color:#ae81ff\">0</span>, <span style=\"color:#ae81ff\">16</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">the</span> <span style=\"color:#a6e22e\">nonce</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">decrypted</span>.<span style=\"color:#a6e22e\">substring</span>(<span style=\"color:#ae81ff\">16</span>, <span style=\"color:#ae81ff\">32</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">the</span> <span style=\"color:#a6e22e\">developed</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">decrypted</span>.<span style=\"color:#a6e22e\">substring</span>(<span style=\"color:#ae81ff\">32</span>)\n</span></span><span style=\"display:flex;\"><span>  \n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">return</span> {\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">timestamp</span><span style=\"color:#f92672\">:</span> parseInt(<span style=\"color:#a6e22e\">timestamp</span>, <span style=\"color:#ae81ff\">16</span>),\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">nonce</span><span style=\"color:#f92672\">:</span> parseInt(<span style=\"color:#a6e22e\">nonce</span>, <span style=\"color:#ae81ff\">16</span>),\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">developed</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">JSON</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Hex</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">developed</span>).<span style=\"color:#a6e22e\">toString</span>(<span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Utf8</span>))\n</span></span><span style=\"display:flex;\"><span>    }\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">payload</span> <span style=\"color:#f92672\">=</span> {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">email_hash</span><span style=\"color:#f92672\">:</span> [<span style=\"color:#a6e22e\">hashed_email</span>]\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> {<span style=\"color:#a6e22e\">timestamp</span>, <span style=\"color:#a6e22e\">nonce</span>, <span style=\"color:#a6e22e\">enveloped</span>} <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">encrypt</span>(<span style=\"color:#a6e22e\">payload</span>)\n</span></span><span style=\"display:flex;\"><span>  \n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">response</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#66d9ef\">await</span> <span style=\"color:#a6e22e\">fetch</span>(<span style=\"color:#a6e22e\">url</span>, {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">method</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#39;POST&#39;</span>,\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">body</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">enveloped</span>,\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">headers</span><span style=\"color:#f92672\">:</span> {\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#e6db74\">&#39;Authorization&#39;</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">`Bearer </span><span style=\"color:#e6db74\">${</span><span style=\"color:#a6e22e\">api_key</span><span style=\"color:#e6db74\">}</span><span style=\"color:#e6db74\">`</span>\n</span></span><span style=\"display:flex;\"><span>    }\n</span></span><span style=\"display:flex;\"><span>  })\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">if</span> (<span style=\"color:#a6e22e\">response</span>.<span style=\"color:#a6e22e\">status</span> <span style=\"color:#f92672\">==</span> <span style=\"color:#ae81ff\">200</span>) {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">body</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#66d9ef\">await</span> <span style=\"color:#a6e22e\">response</span>.<span style=\"color:#a6e22e\">text</span>()\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">data</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">decrypt</span>(<span style=\"color:#a6e22e\">body</span>)\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#75715e\">// This event spec is sent to Tealium at the end of the function. Make sure that the attributes in the event spec you created match the attributes in event_data.\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">event_data</span> <span style=\"color:#f92672\">=</span> {\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">tealium_event</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#34;UID2_event_data&#34;</span>,\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">tealium_visitor_id</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">tealium_vid</span>,\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">uid</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">developed</span>.<span style=\"color:#a6e22e\">body</span>.<span style=\"color:#a6e22e\">mapped</span>[<span style=\"color:#ae81ff\">0</span>].<span style=\"color:#a6e22e\">advertising_id</span>,\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">uid_timestamp</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">JSON</span>.<span style=\"color:#a6e22e\">stringify</span>(<span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">timestamp</span>)\n</span></span><span style=\"display:flex;\"><span>    };\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#75715e\">// Send the event_data object to Tealium for processing.\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#66d9ef\">if</span> (<span style=\"color:#a6e22e\">event_data</span>.<span style=\"color:#a6e22e\">uid</span>) {\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">track</span>(<span style=\"color:#a6e22e\">event_data</span>, <span style=\"color:#a6e22e\">tealium_config</span>)\n</span></span><span style=\"display:flex;\"><span>        .<span style=\"color:#a6e22e\">then</span>(<span style=\"color:#a6e22e\">response</span> =&gt; {\n</span></span><span style=\"display:flex;\"><span>          <span style=\"color:#66d9ef\">if</span> (<span style=\"color:#f92672\">!</span><span style=\"color:#a6e22e\">response</span>.<span style=\"color:#a6e22e\">ok</span>) {\n</span></span><span style=\"display:flex;\"><span>            <span style=\"color:#66d9ef\">throw</span> <span style=\"color:#66d9ef\">new</span> Error(<span style=\"color:#e6db74\">`Network response was not ok. Status code: </span><span style=\"color:#e6db74\">${</span><span style=\"color:#a6e22e\">response</span>.<span style=\"color:#a6e22e\">status</span><span style=\"color:#e6db74\">}</span><span style=\"color:#e6db74\">.`</span>);\n</span></span><span style=\"display:flex;\"><span>          }\n</span></span><span style=\"display:flex;\"><span>          <span style=\"color:#66d9ef\">return</span> <span style=\"color:#a6e22e\">response</span>.<span style=\"color:#a6e22e\">text</span>();\n</span></span><span style=\"display:flex;\"><span>        })\n</span></span><span style=\"display:flex;\"><span>        .<span style=\"color:#66d9ef\">catch</span>(<span style=\"color:#a6e22e\">error</span> =&gt; <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">error</span>(<span style=\"color:#e6db74\">&#39;Error:&#39;</span>, <span style=\"color:#a6e22e\">error</span>.<span style=\"color:#a6e22e\">message</span>));\n</span></span><span style=\"display:flex;\"><span>    } <span style=\"color:#66d9ef\">else</span> {\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">error</span>(<span style=\"color:#e6db74\">&#34;Could not generate advertising ID&#34;</span>)\n</span></span><span style=\"display:flex;\"><span>    }\n</span></span><span style=\"display:flex;\"><span>  } <span style=\"color:#66d9ef\">else</span> {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#e6db74\">&#39;UID2 fetch failed&#39;</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#a6e22e\">JSON</span>.<span style=\"color:#a6e22e\">stringify</span>(<span style=\"color:#a6e22e\">response</span>))\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>})\n</span></span></code></pre></div>\n    </div>\n</div>\n</div>\n<p>バージョン2の例では、次のJSON構造でメール属性のハッシュ化されたUID2を返します：</p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-json\" data-lang=\"json\"><span style=\"display:flex;\"><span>{\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#f92672\">&#34;body&#34;</span>: {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#f92672\">&#34;mapped&#34;</span>: [\n</span></span><span style=\"display:flex;\"><span>      {\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#f92672\">&#34;identifier&#34;</span>: <span style=\"color:#e6db74\">&#34;EObwtHBUqDNZR33LNSMdtt5cafsYFuGmuY4ZLenlue4=&#34;</span>,\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#f92672\">&#34;advertising_id&#34;</span>: <span style=\"color:#e6db74\">&#34;AdvIvSiaum0P5s3X/7X8h8sz+OhF2IG8DNbEnkWSbYM=&#34;</span>,\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#f92672\">&#34;bucket_id&#34;</span>: <span style=\"color:#e6db74\">&#34;a30od4mNRd&#34;</span>\n</span></span><span style=\"display:flex;\"><span>      },\n</span></span><span style=\"display:flex;\"><span>      {\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#f92672\">&#34;identifier&#34;</span>: <span style=\"color:#e6db74\">&#34;Rx8SW4ZyKqbPypXmswDNuq0SPxStFXBTG/yvPns/2NQ=&#34;</span>,\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#f92672\">&#34;advertising_id&#34;</span>: <span style=\"color:#e6db74\">&#34;IbW4n6LIvtDj/8fCESlU0QG9K/fH63UdcTkJpAG8fIQ=&#34;</span>,\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#f92672\">&#34;bucket_id&#34;</span>: <span style=\"color:#e6db74\">&#34;ad1ANEmVZ&#34;</span>\n</span></span><span style=\"display:flex;\"><span>      }\n</span></span><span style=\"display:flex;\"><span>    ]\n</span></span><span style=\"display:flex;\"><span>  },\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#f92672\">&#34;status&#34;</span>: <span style=\"color:#e6db74\">&#34;success&#34;</span>\n</span></span><span style=\"display:flex;\"><span>}\n</span></span></code></pre></div>"
        }  

    , 
        {
            "weight": "85",
            "url": "https://docs.tealium.com/ja/server-side/functions/event-visitor-functions/euid/",
            "title": "EUIDを生成するための関数の使用",
            "body": "<p>European Unified ID (EUID)は、<a href=\"https://euid.eu/docs/intro\">The Trade Desk</a>によって作成されたオープンソースのIDフレームワークで、サードパーティクッキーの代わりに使用できます。EUIDは、ユーザーの個人識別情報（PII）に基づいた決定論的なユーザー識別子です。現在、EUIDはユーザーのメールアドレスのみを識別子として使用し、ヨーロッパ地域に限定されています。識別子はハッシュ化および暗号化され、EUIDリクエストへの応答で返されるEUIDが作成されます。詳細については、<a href=\"https://euid.eu/docs/intro\">European Unified ID Overview</a>を参照してください。</p>\n<p>EUIDは、<a href=\"/ja/server-side-connectors/the-trade-desk-first-party-data-connector/\">The Trade Desk connector</a>およびその他のサポートされているアウトバウンドコネクタで使用できます。</p>\n<h2 id=\"訪問プロファイルのためのeuidの生成\">訪問プロファイルのためのEUIDの生成</h2>\n<p>EUIDを生成するために訪問関数の使用を推奨します。訪問がPIIを持っているがEUIDが割り当てられていない場合に関数をトリガーします。訪問関数についての詳細は、<a href=\"/ja/server-side/functions/event-visitor-functions/about/\">About event and visitor functions</a>を参照してください。</p>\n<p>訪問関数は以下を行います：</p>\n<ul>\n<li>訪問のメールアドレスをキャプチャしてハッシュ化する。</li>\n<li>訪問にEUIDが割り当てられていない場合、<a href=\"https://euid.eu/docs/endpoints/post-identity-map\">EUID endpoint</a>を使用してEUIDを生成する。</li>\n<li>EUIDと<code>tealium_visitor_id</code>を含むイベントをTealium Collectに送信する。</li>\n</ul>\n<p>関数から送信されたイベントによって訪問属性が豊かになります。</p>\n<h3 id=\"前提条件\">前提条件</h3>\n<p>EUIDを生成する訪問関数を作成する前に、以下を行ってください：</p>\n<ul>\n<li>ユーザーの識別子として使用するPII訪問属性を選択します。EUIDは現在、メールアドレス識別子をサポートしています。</li>\n<li>EUIDを保存する訪問属性を作成します。この訪問属性をイベントEUID属性の値でエンリッチするためにエンリッチメントを追加します。詳細については、<a href=\"/ja/server-side/attributes/about/\">Using Attributes</a>および<a href=\"/ja/server-side/attributes/enrichments/enrichments/\">About enrichments</a>を参照してください。</li>\n<li>メールアドレスが割り当てられているがEUIDが割り当てられていない訪問を特定するオーディエンスを作成します。例えば：<br>\n<figure><a class=\"slb\" href=\"/images/server-side/euid-function-trigger-example.png\"><img src=\"https://docs.tealium.com/images/server-side/euid-function-trigger-example.png\"\n         alt=\"euid-function-trigger-example.png\"\n         title=\"euid-function-trigger-example.png\"/>\n    </a>\n</figure><br>\n詳細については、<a href=\"/ja/server-side/audiences/manage/#create-an-audience\">Create an audience</a>を参照してください。</li>\n</ul>\n<h2 id=\"euidジェネレータ関数\">EUIDジェネレータ関数</h2>\n<p>関数を作成する際には、以下を行ってください：</p>\n<ol>\n<li>トリガーには<strong>Processed Visitor</strong>を選択します。</li>\n<li><strong>Audience</strong>には、EUIDが割り当てられていない特定の訪問のために作成したオーディエンスを選択します。<strong>Trigger On</strong>はデフォルト値の<code>Joined Audience</code>に構成します。\n処理済み訪問関数のデフォルトコードを削除し、<a href=\"#example-code\">Example code</a>に示されているEUIDを生成するための例コードをコピーして貼り付けます。必要に応じて例コードを変更してください。</li>\n</ol>\n<h3 id=\"例示コード\">例示コード</h3>\n<p class=\"note\"><i class=\"fa fa-exclamation-triangle\"></i>この例示コードは訪問にEUIDを割り当てる関数を構成するためのガイドであり、<strong>修正なしには使用できません</strong>。コード内の<code>TODO</code>と記載されたコメントを探し、あなたの構成に必要な行を修正してください。</p>\n<p>この例では、ユーザー識別子としてメールアドレスを使用していますが、他のユーザー識別子に適応させることも可能です。属性IDを使用してメール属性の値を取得します。使用している属性の正しい値で属性IDを更新し、適切な場所（<code>api_key</code> と <code>secret</code>）にあなたのEUID認証情報を配置してください。</p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-js\" data-lang=\"js\"><span style=\"display:flex;\"><span><span style=\"color:#66d9ef\">import</span> <span style=\"color:#a6e22e\">CryptoES</span> <span style=\"color:#a6e22e\">from</span> <span style=\"color:#e6db74\">&#39;crypto-es&#39;</span>\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span><span style=\"color:#a6e22e\">activate</span>(<span style=\"color:#66d9ef\">async</span> ({ <span style=\"color:#a6e22e\">visitor</span>, <span style=\"color:#a6e22e\">visit</span>, <span style=\"color:#a6e22e\">helper</span> }) =&gt; {  \n</span></span><span style=\"display:flex;\"><span>  \n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">genHash</span> <span style=\"color:#f92672\">=</span> (<span style=\"color:#a6e22e\">data</span>) =&gt; {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">return</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">SHA256</span>(<span style=\"color:#a6e22e\">data</span>).<span style=\"color:#a6e22e\">toString</span>(<span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Base64</span>)\n</span></span><span style=\"display:flex;\"><span>    }\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">validateEmail</span> <span style=\"color:#f92672\">=</span> (<span style=\"color:#a6e22e\">email</span>) =&gt; {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">return</span> String(<span style=\"color:#a6e22e\">email</span>)\n</span></span><span style=\"display:flex;\"><span>      .<span style=\"color:#a6e22e\">toLowerCase</span>()\n</span></span><span style=\"display:flex;\"><span>      .<span style=\"color:#a6e22e\">match</span>(\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#e6db74\">/^(([^&lt;&gt;()[\\]\\\\.,;:\\s@&#34;]+(\\.[^&lt;&gt;()[\\]\\\\.,;:\\s@&#34;]+)*)|.(&#34;.+&#34;))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/</span>\n</span></span><span style=\"display:flex;\"><span>      );\n</span></span><span style=\"display:flex;\"><span>    };\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">tealium_config</span> <span style=\"color:#f92672\">=</span> {\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">tealium_account</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#39;CURRENT&#39;</span>,\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">tealium_profile</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#39;CURRENT&#39;</span>,\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">tealium_datasource</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#39;DATA_SOURCE_KEY&#39;</span>, <span style=\"color:#75715e\">// TODO: Change DATA_SOURCE_KEY to your Tealium Data Source key.\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>      <span style=\"color:#a6e22e\">email_hashed</span><span style=\"color:#f92672\">:</span> <span style=\"color:#66d9ef\">false</span> <span style=\"color:#75715e\">// TODO: If your email is already hashed, set this to true.\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    };\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">if</span>(<span style=\"color:#a6e22e\">tealium_config</span>.<span style=\"color:#a6e22e\">tealium_account</span> <span style=\"color:#f92672\">==</span> <span style=\"color:#e6db74\">&#39;CURRENT&#39;</span>) {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">tealium_config</span>.<span style=\"color:#a6e22e\">tealium_account</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">visitor</span>.<span style=\"color:#a6e22e\">properties</span>.<span style=\"color:#a6e22e\">account</span>\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">if</span>(<span style=\"color:#a6e22e\">tealium_config</span>.<span style=\"color:#a6e22e\">tealium_profile</span> <span style=\"color:#f92672\">==</span> <span style=\"color:#e6db74\">&#39;CURRENT&#39;</span>) {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">tealium_config</span>.<span style=\"color:#a6e22e\">tealium_profile</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">visitor</span>.<span style=\"color:#a6e22e\">properties</span>.<span style=\"color:#a6e22e\">profile</span>\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">email</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">visitor</span>.<span style=\"color:#a6e22e\">getAttributeValueById</span>(<span style=\"color:#e6db74\">&#34;ATTRIBUTE_ID&#34;</span>) <span style=\"color:#75715e\">// TODO: Change ATTRIBUTE_ID to the attribute ID of the user identifier attribute\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>  <span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">email_hash</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#e6db74\">&#39;&#39;</span>;\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#a6e22e\">email</span>)\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">tealium_vid</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">visitor</span>.<span style=\"color:#a6e22e\">properties</span>.<span style=\"color:#a6e22e\">visitor_id</span>\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">if</span>(<span style=\"color:#f92672\">!</span><span style=\"color:#a6e22e\">tealium_config</span>.<span style=\"color:#a6e22e\">email_hashed</span>) {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">if</span>(<span style=\"color:#f92672\">!</span><span style=\"color:#a6e22e\">validateEmail</span>(<span style=\"color:#a6e22e\">email</span>)) {\n</span></span><span style=\"display:flex;\"><span>       <span style=\"color:#66d9ef\">throw</span> <span style=\"color:#66d9ef\">new</span> Error(<span style=\"color:#e6db74\">`Email Attribute is not a valid email`</span>);\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#66d9ef\">return</span> <span style=\"color:#66d9ef\">false</span>\n</span></span><span style=\"display:flex;\"><span>    }\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">email_hash</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">genHash</span>(<span style=\"color:#a6e22e\">email</span>)\n</span></span><span style=\"display:flex;\"><span>  } <span style=\"color:#66d9ef\">else</span> {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">email_hash</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">email</span>\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#a6e22e\">email_hash</span>)\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#75715e\">//Update the following variables with your TTD EUID credentials\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">api_key</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#e6db74\">&#39;api_key&#39;</span> <span style=\"color:#75715e\">// TODO: Change api_key to your assigned EUID API Key\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">secret</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#e6db74\">&#39;secret&#39;</span> <span style=\"color:#75715e\">// TODO: Change secret to your assigned EUID secret\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>  <span style=\"color:#75715e\">// const url = &#39;https://integ.euid.eu/v2/identity/map&#39; // Testing Environment (separate credentials are used). Only use for TESTING\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">url</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#e6db74\">&#39;https://prod.euid.eu/v2/identity/map&#39;</span>  <span style=\"color:#75715e\">// Production Environment\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">key</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Base64</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">secret</span>)\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#a6e22e\">the</span> <span style=\"color:#a6e22e\">hexRef</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#e6db74\">&#34;0123456789abcdef&#34;</span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">randomBytes</span> <span style=\"color:#f92672\">=</span> (<span style=\"color:#a6e22e\">bytes</span>) =&gt; {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">buf</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#e6db74\">&#39;&#39;</span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">for</span> (<span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">i</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#ae81ff\">0</span>; <span style=\"color:#a6e22e\">i</span> <span style=\"color:#f92672\">&lt;</span> <span style=\"color:#a6e22e\">bytes</span> <span style=\"color:#f92672\">*</span> <span style=\"color:#ae81ff\">2</span>; <span style=\"color:#a6e22e\">i</span><span style=\"color:#f92672\">++</span>)\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">buf</span> <span style=\"color:#f92672\">+=</span> <span style=\"color:#a6e22e\">hexRef</span>.<span style=\"color:#a6e22e\">charAt</span>(Math.<span style=\"color:#a6e22e\">floor</span>(Math.<span style=\"color:#a6e22e\">random</span>() <span style=\"color:#f92672\">*</span> <span style=\"color:#a6e22e\">hexRef</span>.<span style=\"color:#a6e22e\">length</span>))\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">return</span> <span style=\"color:#a6e22e\">buf</span>\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">writeBigUint64BE</span> <span style=\"color:#f92672\">=</span> (<span style=\"color:#a6e22e\">num</span>, <span style=\"color:#a6e22e\">bytes</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#ae81ff\">8</span>) =&gt; {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">buf</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">num</span>.<span style=\"color:#a6e22e\">toString</span>(<span style=\"color:#ae81ff\">16</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">padding</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#e6db74\">&#39;&#39;</span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">for</span> (<span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">i</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#ae81ff\">0</span>; <span style=\"color:#a6e22e\">i</span> <span style=\"color:#f92672\">&lt;</span> <span style=\"color:#a6e22e\">bytes</span> <span style=\"color:#f92672\">*</span> <span style=\"color:#ae81ff\">2</span> <span style=\"color:#f92672\">-</span> <span style=\"color:#a6e22e\">buf</span>.<span style=\"color:#a6e22e\">length</span>; <span style=\"color:#a6e22e\">i</span><span style=\"color:#f92672\">++</span>)\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">padding</span> <span style=\"color:#f92672\">+=</span> <span style=\"color:#e6db74\">&#39;0&#39;</span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">return</span> <span style=\"color:#a6e22e\">padding</span> <span style=\"color:#f92672\">+</span> <span style=\"color:#a6e22e\">buf</span>\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">encrypt</span> <span style=\"color:#f92672\">=</span> (<span style=\"color:#a6e22e\">data</span>) =&gt; {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">iv</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">randomBytes</span>(<span style=\"color:#ae81ff\">12</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">nonce</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">randomBytes</span>(<span style=\"color:#ae81ff\">8</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">millisec</span> <span style=\"color:#f92672\">=</span> Date.<span style=\"color:#a6e22e\">now</span>()\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">timestamp</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">writeBigUint64BE</span>(<span style=\"color:#a6e22e\">millisec</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">payload</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Utf8</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">JSON</span>.<span style=\"color:#a6e22e\">stringify</span>(<span style=\"color:#a6e22e\">data</span>))\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">body</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">timestamp</span> <span style=\"color:#f92672\">+</span> <span style=\"color:#a6e22e\">nonce</span> <span style=\"color:#f92672\">+</span> <span style=\"color:#a6e22e\">payload</span> \n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">ivBuf</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Hex</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">iv</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">encryptedBody</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">AES</span>.<span style=\"color:#a6e22e\">encrypt</span>(\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Hex</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">body</span>),\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">key</span>,\n</span></span><span style=\"display:flex;\"><span>      {\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">iv</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">ivBuf</span>,\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">mode</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">mode</span>.<span style=\"color:#a6e22e\">GCM</span>,\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">padding</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">pad</span>.<span style=\"color:#a6e22e\">NoPadding</span>\n</span></span><span style=\"display:flex;\"><span>      }\n</span></span><span style=\"display:flex;\"><span>    )\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">the</span> <span style=\"color:#a6e22e\">ciphertext</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">encryptedBody</span>.<span style=\"color:#a6e22e\">ciphertext</span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">the</span> <span style=\"color:#a6e22e\">authTag</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">mode</span>.<span style=\"color:#a6e22e\">GCM</span>.<span style=\"color:#a6e22e\">mac</span>(<span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">algo</span>.<span style=\"color:#a6e22e\">AES</span>, <span style=\"color:#a6e22e\">key</span>, <span style=\"color:#a6e22e\">ivBuf</span>, <span style=\"color:#66d9ef\">null</span>, <span style=\"color:#a6e22e\">ciphertext</span>).<span style=\"color:#a6e22e\">toString</span>()\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">the</span> <span style=\"color:#a6e22e\">enveloped</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#e6db74\">&#39;01&#39;</span> <span style=\"color:#f92672\">+</span> <span style=\"color:#a6e22e\">iv</span> <span style=\"color:#f92672\">+</span> <span style=\"color:#a6e22e\">ciphertext</span>.<span style=\"color:#a6e22e\">toString</span>() <span style=\"color:#f92672\">+</span> <span style=\"color:#a6e22e\">authTag</span>\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">return</span> {\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">timestamp</span><span style=\"color:#f92672\">:</span> parseInt(<span style=\"color:#a6e22e\">timestamp</span>, <span style=\"color:#ae81ff\">16</span>),\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">nonce</span><span style=\"color:#f92672\">:</span> parseInt(<span style=\"color:#a6e22e\">nonce</span>, <span style=\"color:#ae81ff\">16</span>),\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">enveloped</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Hex</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">enveloped</span>).<span style=\"color:#a6e22e\">toString</span>(<span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Base64</span>)\n</span></span><span style=\"display:flex;\"><span>    }\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">decrypt</span> <span style=\"color:#f92672\">=</span> (<span style=\"color:#a6e22e\">data</span>) =&gt; {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">buf</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Base64</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">data</span>).<span style=\"color:#a6e22e\">toString</span>(<span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Hex</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">iv</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Hex</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">buf</span>.<span style=\"color:#a6e22e\">substring</span>(<span style=\"color:#ae81ff\">0</span>, <span style=\"color:#ae81ff\">24</span>))\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">ciphertext</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Hex</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">buf</span>.<span style=\"color:#a6e22e\">substring</span>(<span style=\"color:#ae81ff\">24</span>, <span style=\"color:#a6e22e\">buf</span>.<span style=\"color:#a6e22e\">length</span> <span style=\"color:#f92672\">-</span> <span style=\"color:#ae81ff\">32</span>))\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">tag</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">buf</span>.<span style=\"color:#a6e22e\">substring</span>(<span style=\"color:#a6e22e\">buf</span>.<span style=\"color:#a6e22e\">length</span> <span style=\"color:#f92672\">-</span> <span style=\"color:#ae81ff\">32</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">encryptedBody</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#66d9ef\">new</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">lib</span>.<span style=\"color:#a6e22e\">CipherParams</span>({ <span style=\"color:#a6e22e\">ciphertext</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">ciphertext</span> })\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">decrypted</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">AES</span>.<span style=\"color:#a6e22e\">decrypt</span>(<span style=\"color:#a6e22e\">encryptedBody</span>,<span style=\"color:#a6e22e\">key</span>, \n</span></span><span style=\"display:flex;\"><span>      {\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">iv</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">iv</span>, \n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">mode</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">mode</span>.<span style=\"color:#a6e22e\">GCM</span>, \n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">padding</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">pad</span>.<span style=\"color:#a6e22e\">NoPadding</span>\n</span></span><span style=\"display:flex;\"><span>      }\n</span></span><span style=\"display:flex;\"><span>    ).<span style=\"color:#a6e22e\">toString</span>()\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">timestamp</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">decrypted</span>.<span style=\"color:#a6e22e\">substring</span>(<span style=\"color:#ae81ff\">0</span>, <span style=\"color:#ae81ff\">16</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">the</span> <span style=\"color:#a6e22e\">nonce</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">decrypted</span>.<span style=\"color:#a6e22e\">substring</span>(<span style=\"color:#ae81ff\">16</span>, <span style=\"color:#ae81ff\">32</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">the</span> <span style=\"color:#a6e22e\">developed</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">decrypted</span>.<span style=\"color:#a6e22e\">substring</span>(<span style=\"color:#ae81ff\">32</span>)\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#75715e\">//const tagCheck = CryptoES.mode.GCM.mac(CryptoES.AES, key, iv, null, ciphertext).toString()\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>  <span style=\"color:#75715e\">//console.log(&#39;\\nauthTag check:&#39;, tag == tagCheck)\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">return</span> {\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">timestamp</span><span style=\"color:#f92672\">:</span> parseInt(<span style=\"color:#a6e22e\">timestamp</span>, <span style=\"color:#ae81ff\">16</span>),\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">nonce</span><span style=\"color:#f92672\">:</span> parseInt(<span style=\"color:#a6e22e\">nonce</span>, <span style=\"color:#ae81ff\">16</span>),\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">developed</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">JSON</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Hex</span>.<span style=\"color:#a6e22e\">parse</span>(<span style=\"color:#a6e22e\">developed</span>).<span style=\"color:#a6e22e\">toString</span>(<span style=\"color:#a6e22e\">CryptoES</span>.<span style=\"color:#a6e22e\">enc</span>.<span style=\"color:#a6e22e\">Utf8</span>))\n</span></span><span style=\"display:flex;\"><span>    }\n</span></span><span style=\"display:flex;\"><span>  }\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">payload</span> <span style=\"color:#f92672\">=</span> {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">email_hash</span><span style=\"color:#f92672\">:</span> [<span style=\"color:#a6e22e\">genHash</span>(<span style=\"color:#a6e22e\">email</span>)]\n</span></span><span style=\"display:flex;\"><span>    }\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> {<span style=\"color:#a6e22e\">timestamp</span>, <span style=\"color:#a6e22e\">nonce</span>, <span style=\"color:#a6e22e\">enveloped</span>} <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">encrypt</span>(<span style=\"color:#a6e22e\">payload</span>)\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#e6db74\">&#39;\\n********** encypted **********&#39;</span>)\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#e6db74\">&#39;timestamp:&#39;</span>, <span style=\"color:#a6e22e\">timestamp</span>)\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#e6db74\">&#39;nonce:&#39;</span>, <span style=\"color:#a6e22e\">nonce</span>)\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#e6db74\">&#39;enveloped:&#39;</span>, <span style=\"color:#a6e22e\">enveloped</span>)\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">response</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#66d9ef\">await</span> <span style=\"color:#a6e22e\">fetch</span>(<span style=\"color:#a6e22e\">url</span>, {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">method</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#39;POST&#39;</span>,\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">body</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">enveloped</span>,\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">headers</span><span style=\"color:#f92672\">:</span> {\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#e6db74\">&#39;Authorization&#39;</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">`Bearer </span><span style=\"color:#e6db74\">${</span><span style=\"color:#a6e22e\">api_key</span><span style=\"color:#e6db74\">}</span><span style=\"color:#e6db74\">`</span>\n</span></span><span style=\"display:flex;\"><span>    }\n</span></span><span style=\"display:flex;\"><span>  })\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">if</span> (<span style=\"color:#a6e22e\">response</span>.<span style=\"color:#a6e22e\">status</span> <span style=\"color:#f92672\">==</span> <span style=\"color:#ae81ff\">200</span>) {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">body</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#66d9ef\">await</span> <span style=\"color:#a6e22e\">response</span>.<span style=\"color:#a6e22e\">text</span>()\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#e6db74\">&#39;\\n********** response **********&#39;</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#a6e22e\">body</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">data</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">decrypt</span>(<span style=\"color:#a6e22e\">body</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#e6db74\">&#39;\\n********** decrypted **********&#39;</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#e6db74\">&#39;timeStamp:&#39;</span>, <span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">timestamp</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#e6db74\">&#39;nonce:&#39;</span>, <span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">nonce</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#e6db74\">&#39;response:&#39;</span>, <span style=\"color:#a6e22e\">JSON</span>.<span style=\"color:#a6e22e\">stringify</span>(<span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">developed</span>))\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#e6db74\">&#39;\\n&#39;</span>)\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span> <span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">event_data</span> <span style=\"color:#f92672\">=</span>{\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">tealium_event</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#34;euid_event&#34;</span>,\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">tealium_visitor_id</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">tealium_vid</span>,\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">euid_hashed_email</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">developed</span>.<span style=\"color:#a6e22e\">body</span>.<span style=\"color:#a6e22e\">mapped</span>[<span style=\"color:#ae81ff\">0</span>].<span style=\"color:#a6e22e\">identifier</span>,\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">euid_bucket_id</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">developed</span>.<span style=\"color:#a6e22e\">body</span>.<span style=\"color:#a6e22e\">mapped</span>[<span style=\"color:#ae81ff\">0</span>].<span style=\"color:#a6e22e\">bucket_id</span>,\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">euid_raw</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">developed</span>.<span style=\"color:#a6e22e\">body</span>.<span style=\"color:#a6e22e\">mapped</span>[<span style=\"color:#ae81ff\">0</span>].<span style=\"color:#a6e22e\">advertising_id</span>,\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">euid_timestamp</span> <span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">JSON</span>.<span style=\"color:#a6e22e\">stringify</span>(<span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">timestamp</span>),\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">euid_nonce</span><span style=\"color:#f92672\">:</span> <span style=\"color:#a6e22e\">JSON</span>.<span style=\"color:#a6e22e\">stringify</span>(<span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">nonce</span>)\n</span></span><span style=\"display:flex;\"><span>    };\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#a6e22e\">JSON</span>.<span style=\"color:#a6e22e\">stringify</span>(<span style=\"color:#a6e22e\">event_data</span>))\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">if</span>(<span style=\"color:#a6e22e\">event_data</span>.<span style=\"color:#a6e22e\">euid_raw</span>) {\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">track</span>(<span style=\"color:#a6e22e\">event_data</span>, <span style=\"color:#a6e22e\">tealium_config</span>)\n</span></span><span style=\"display:flex;\"><span>          .<span style=\"color:#a6e22e\">then</span>(<span style=\"color:#a6e22e\">response</span> =&gt; {\n</span></span><span style=\"display:flex;\"><span>              <span style=\"color:#66d9ef\">if</span> (<span style=\"color:#f92672\">!</span><span style=\"color:#a6e22e\">response</span>.<span style=\"color:#a6e22e\">ok</span>) {\n</span></span><span style=\"display:flex;\"><span>                  <span style=\"color:#66d9ef\">throw</span> <span style=\"color:#66d9ef\">new</span> Error(<span style=\"color:#e6db74\">`Network response was not ok. Status code: </span><span style=\"color:#e6db74\">${</span><span style=\"color:#a6e22e\">response</span>.<span style=\"color:#a6e22e\">status</span><span style=\"color:#e6db74\">}</span><span style=\"color:#e6db74\">.`</span>);\n</span></span><span style=\"display:flex;\"><span>              }\n</span></span><span style=\"display:flex;\"><span>              <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#e6db74\">&#39;Status code:&#39;</span>, <span style=\"color:#a6e22e\">response</span>.<span style=\"color:#a6e22e\">status</span>);\n</span></span><span style=\"display:flex;\"><span>              <span style=\"color:#66d9ef\">return</span> <span style=\"color:#a6e22e\">response</span>.<span style=\"color:#a6e22e\">text</span>();\n</span></span><span style=\"display:flex;\"><span>          })\n</span></span><span style=\"display:flex;\"><span>          .<span style=\"color:#66d9ef\">catch</span>(<span style=\"color:#a6e22e\">error</span> =&gt; <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">error</span>(<span style=\"color:#e6db74\">&#39;Error:&#39;</span>, <span style=\"color:#a6e22e\">error</span>.<span style=\"color:#a6e22e\">message</span>));\n</span></span><span style=\"display:flex;\"><span>    } \n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">else</span> {\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">error</span>(<span style=\"color:#e6db74\">&#34;Couldn&#39;t generate advertising ID&#34;</span>)\n</span></span><span style=\"display:flex;\"><span>      }\n</span></span><span style=\"display:flex;\"><span>  } \n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">else</span> {\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#e6db74\">&#39;\\nxxxxx  failed  xxxxx\\n&#39;</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#a6e22e\">JSON</span>.<span style=\"color:#a6e22e\">stringify</span>(<span style=\"color:#a6e22e\">response</span>))\n</span></span><span style=\"display:flex;\"><span>    }\n</span></span><span style=\"display:flex;\"><span>  })\n</span></span></code></pre></div>"
        }  

    , 
        {
            "weight": "0",
            "url": "https://docs.tealium.com/ja/client-side-tags/neustar-idmp-site-activity-tag/",
            "title": "Neustar IDMPサイトアクティビティタグ構成ガイド",
            "body": "<p>Neustar IDMPサイトアクティビティタグを使用して、ウェブサイトでのユーザーの行動、例えばコンバージョンイベントなどを追跡します。</p>\n<h2 id=\"タグのヒント\">タグのヒント</h2>\n<ul>\n<li>タグ構成で<strong>ピクセルタイプ</strong>を選択して、正しいスクリプトタイプをロードします。</li>\n<li>マッピングを使用してタグ構成を上書きし、動的に構成します。</li>\n</ul>\n<h2 id=\"タグ構成\">タグ構成</h2>\n<p>新しいタグを追加するためにタグマーケットプレイスに移動します。詳細については、<a href=\"/ja/iq-tag-management/tags/about/\">タグについて</a>を参照してください。</p>\n<p>タグを追加する際には、以下の構成を行います：</p>\n<ul>\n<li><strong>NeustarタグID</strong>：あなたのNeustar IDMPタグの数値。</li>\n<li><strong>ピクセルタイプ</strong>：画像またはiframeタグタイプを生成するかを選択します。</li>\n</ul>\n<h2 id=\"ロードルール\">ロードルール</h2>\n<p>すべてのページでタグをロードするか、タグがロードされる条件を構成します。詳細については、<a href=\"/ja/iq-tag-management/load-rules/about/\">ロードルールについて</a>を参照してください。</p>\n<h2 id=\"データマッピング\">データマッピング</h2>\n<p>マッピングは、データレイヤー変数からベンダータグの対応する宛先変数へデータを送信するプロセスです。詳細については、<a href=\"/ja/iq-tag-management/data-mappings/about/\">データマッピングについて</a>を参照してください。</p>\n<p>利用可能なカテゴリは以下の通りです：</p>\n<h3 id=\"構成\">構成</h3>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:left\">変数</th>\n<th style=\"text-align:left\">タイプ</th>\n<th style=\"text-align:left\">説明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style=\"text-align:left\"><code>pixelId</code></td>\n<td style=\"text-align:left\">文字列</td>\n<td style=\"text-align:left\">ピクセルID</td>\n</tr>\n<tr>\n<td style=\"text-align:left\"><code>pixelType</code></td>\n<td style=\"text-align:left\">文字列</td>\n<td style=\"text-align:left\">ピクセルタイプ</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"標準\">標準</h3>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:left\">変数</th>\n<th style=\"text-align:left\">タイプ</th>\n<th style=\"text-align:left\">説明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style=\"text-align:left\"><code>che</code></td>\n<td style=\"text-align:left\">文字列</td>\n<td style=\"text-align:left\">キャッシュバスター</td>\n</tr>\n<tr>\n<td style=\"text-align:left\"><code>rev</code></td>\n<td style=\"text-align:left\">数値</td>\n<td style=\"text-align:left\">収益</td>\n</tr>\n<tr>\n<td style=\"text-align:left\"><code>cur</code></td>\n<td style=\"text-align:left\">文字列</td>\n<td style=\"text-align:left\">通貨コード</td>\n</tr>\n<tr>\n<td style=\"text-align:left\"><code>qty</code></td>\n<td style=\"text-align:left\">数値</td>\n<td style=\"text-align:left\">注文数</td>\n</tr>\n<tr>\n<td style=\"text-align:left\"><code>type</code></td>\n<td style=\"text-align:left\">文字列</td>\n<td style=\"text-align:left\">タイプ</td>\n</tr>\n<tr>\n<td style=\"text-align:left\"><code>ord</code></td>\n<td style=\"text-align:left\">文字列</td>\n<td style=\"text-align:left\">注文ID</td>\n</tr>\n<tr>\n<td style=\"text-align:left\"><code>uid</code></td>\n<td style=\"text-align:left\">文字列</td>\n<td style=\"text-align:left\">第三者ユーザーID</td>\n</tr>\n<tr>\n<td style=\"text-align:left\"><code>dedup</code></td>\n<td style=\"text-align:left\">文字列</td>\n<td style=\"text-align:left\">重複排除ID</td>\n</tr>\n<tr>\n<td style=\"text-align:left\"><code>ip</code></td>\n<td style=\"text-align:left\">文字列</td>\n<td style=\"text-align:left\">IPアドレス</td>\n</tr>\n</tbody>\n</table>\n"
        }  

    , 
        {
            "weight": "0",
            "url": "https://docs.tealium.com/ja/client-side-tags/neustar-pageadvisor-tag/",
            "title": "Neustar PageAdvisorタグ構成ガイド",
            "body": "<h2 id=\"タグのヒント\">タグのヒント</h2>\n<ul>\n<li>マッピングを使用して、標準の構成値を動的に上書きします。</li>\n<li>カスタム変数を使用して、動的な値を割り当てます。</li>\n</ul>\n<h2 id=\"タグの構成\">タグの構成</h2>\n<p>タグマーケットプレイスに移動して新しいタグを追加します。詳細については、<a href=\"/ja/iq-tag-management/tags/about/\">タグについて</a>を参照してください。</p>\n<p>タグを追加する際には、以下の構成を行います：</p>\n<ul>\n<li><strong>サービスID (sid)</strong>: Neustarがクライアントを識別するための10桁の数値（例：<code>9876543210</code>）。</li>\n<li><strong>ページ参照 (page)</strong>: クライアントがユーザーがどのページにいるかを示すために使用する参照（例：<code>http://www.neustar.biz</code>）。</li>\n</ul>\n<h2 id=\"ロードルール\">ロードルール</h2>\n<p>すべてのページでタグをロードするか、タグがロードされる条件を構成します。詳細については、<a href=\"/ja/iq-tag-management/load-rules/about/\">ロードルールについて</a>を参照してください。</p>\n<h2 id=\"データマッピング\">データマッピング</h2>\n<p>マッピングは、データレイヤー変数からベンダータグの対応する宛先変数にデータを送信するプロセスです。詳細については、<a href=\"/ja/iq-tag-management/data-mappings/about/\">データマッピングについて</a>を参照してください。</p>\n<p>利用可能なカテゴリは以下の通りです：</p>\n<h3 id=\"標準\">標準</h3>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:left\">変数</th>\n<th style=\"text-align:left\">説明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style=\"text-align:left\"><code>service_id</code></td>\n<td style=\"text-align:left\">サービスID</td>\n</tr>\n<tr>\n<td style=\"text-align:left\"><code>page_ref</code></td>\n<td style=\"text-align:left\">ページ参照</td>\n</tr>\n<tr>\n<td style=\"text-align:left\"><code>cv1</code></td>\n<td style=\"text-align:left\">カスタム変数</td>\n</tr>\n</tbody>\n</table>\n"
        }  

    , 
        {
            "weight": "0",
            "url": "https://docs.tealium.com/ja/client-side-tags/neustar-real-user-measurement-tag/",
            "title": "Neustar（リアルユーザー測定）タグ",
            "body": "<p>Neustar（RUM）Inc.は、インターネット、通信、情報サービス、金融サービス、小売、メディア、広告業界にリアルタイムの情報と分析を提供する信頼性の高い中立的なプロバイダーです。</p>\n<h2 id=\"タグのヒント\">タグのヒント</h2>\n<ul>\n<li>より正確なメトリクスのために、以下のコードをPreLoader拡張に追加します：</li>\n</ul>\n<pre tabindex=\"0\"><code>window.t_pagestart = new Date().getTime();\n</code></pre><ul>\n<li>このタグは最初に実行することを推奨します（タグリストの先頭に移動）</li>\n<li>このタグは <code>Wait=Yes</code>（デフォルト）に構成する必要があります</li>\n<li>タグの構成は必要ありません</li>\n</ul>\n<h2 id=\"タグの構成\">タグの構成</h2>\n<p>新しいタグを追加するためにタグマーケットプレイスに移動します。詳細については、<a href=\"/ja/iq-tag-management/tags/about/\">タグについて</a>を参照してください。</p>\n<p>タグを追加する際には、以下の構成を行います：</p>\n<ul>\n<li><strong>アカウントID</strong>: アカウントID。</li>\n<li><strong>タイムアウト値</strong>: タグがタイムアウトするまでの時間を構成します。</li>\n<li><strong>タグのロード時にInitを実行</strong>: タグがロードされたときに初期化プロセスを実行します。マッピングできません。</li>\n</ul>\n<h2 id=\"ロードルール\">ロードルール</h2>\n<p>すべてのページでタグをロードするか、タグがロードされる条件を構成します。詳細については、<a href=\"/ja/iq-tag-management/load-rules/about/\">ロードルールについて</a>を参照してください。</p>\n<h2 id=\"データマッピング\">データマッピング</h2>\n<p>マッピングは、データレイヤー変数からベンダータグの対応する宛先変数にデータを送信するプロセスです。詳細については、<a href=\"/ja/iq-tag-management/data-mappings/about/\">データマッピングについて</a>を参照してください。</p>\n<p>利用可能なカテゴリーは以下の通りです：</p>\n<h3 id=\"スタンダード\">スタンダード</h3>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:left\">説明</th>\n<th style=\"text-align:left\">変数</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style=\"text-align:left\"><code>account</code></td>\n<td style=\"text-align:left\">アカウントID</td>\n</tr>\n<tr>\n<td style=\"text-align:left\"><code>time_out</code></td>\n<td style=\"text-align:left\">見込みロードタイムアウト</td>\n</tr>\n</tbody>\n</table>\n"
        }  

    , 
        {
            "weight": "0",
            "url": "https://docs.tealium.com/ja/client-side-tags/acxiom-real-identity-rtag/",
            "title": "Acxiom Real Identity rTag構成ガイド",
            "body": "<p>rTAGは、データ収集機能、アイデンティティ生成と関連付け、プライバシーガバナンス、パートナータグの呼び出しを管理するコンテナをデジタルチャネルに柔軟に組み込む能力を提供します。</p>\n<h2 id=\"タグのヒント\">タグのヒント</h2>\n<ul>\n<li>マッピングを使用してタグの構成を上書きまたは動的に構成します。</li>\n</ul>\n<h2 id=\"タグの構成\">タグの構成</h2>\n<p>タグマーケットプレイスに移動して新しいタグを追加します。タグの追加方法の一般的な指示については、<a href=\"/ja/iq-tag-management/tags/about/\">タグの概要</a>の記事を読んでください。</p>\n<p>タグを追加する際には、以下の構成を行います：</p>\n<ul>\n<li><strong>ドメイン名</strong>：クライアントのドメイン名のサブドメインで、CNAMEがrTAGに変更される必要があります。</li>\n<li><strong>ESIトグル</strong>：（オプション）トップレベルディレクトリはESIが有効かどうかを示します。\n<ul>\n<li><strong>1</strong> — ファイルが直接ESIで処理されることを示します。</li>\n<li><strong>2</strong> — ESIファイルが生成された後にgzip圧縮されキャッシュされることを示します。</li>\n</ul>\n</li>\n<li><strong>ログモード</strong>：クライアントのログ要件に基づくログモード。</li>\n<li><strong>タグタイプ</strong>：受け取るオブジェクトのファイル名。</li>\n</ul>\n<h2 id=\"ロードルール\">ロードルール</h2>\n<p>すべてのページでタグをロードするか、タグがロードされる条件を構成します。ロードルールについての詳細は、<a href=\"/ja/iq-tag-management/load-rules/about/\">ロードルール</a>のドキュメンテーションを参照してください。</p>\n<h2 id=\"データマッピング\">データマッピング</h2>\n<p>マッピングは、データレイヤー変数からベンダータグの対応する宛先変数にデータを送信するプロセスです。タグ宛先に変数をマップする方法については、<a href=\"/ja/iq-tag-management/data-mappings/manage/\">データマッピング</a>を参照してください。</p>\n<p>利用可能なカテゴリは以下の通りです：</p>\n<h3 id=\"タグ構成\">タグ構成</h3>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:left\">変数</th>\n<th style=\"text-align:left\">説明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style=\"text-align:left\">ドメイン名 (<code>domain_name</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">ESIトグル (<code>esi_toggle</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">ログモード (<code>logging_mode</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">タグタイプ (<code>tag_type</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"標準\">標準</h3>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:left\">変数</th>\n<th style=\"text-align:left\">説明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style=\"text-align:left\">キャッシュバスター、通常はランダムな数値またはタイムスタンプに構成されます (<code>r</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">302リダイレクトディレクティブのエンコードされたURL宛先 (<code>ru</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">イベントID (<code>evid</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">セッションID (<code>s</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">ドメイン (<code>dmn</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">ファイル名付きパス (<code>pn</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">URLのクエリ文字列 (<code>qs</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">参照ページのドメイン (<code>rdn</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">参照ページのファイル名付きパス (<code>rpn</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">参照ページのURLのクエリ文字列 (<code>rqs</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">ユニークなユーザーエージェント/ユーザー/ブラウザ識別子、これはクッキー、統計ID、または他のソースから取得できます (<code>uu</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">統計ID (<code>suu</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">使用する特定のクラスタグ構成 (<code>cls</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">パブリッシャーまたはサイト識別子 (<code>pubid</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">パートナー固有の識別子 (<code>puu</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">clientObjectによってクライアントが渡されるペイロード (<code>payload</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">広告代理店識別子 (<code>ag</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">広告主またはマーケター識別子 (<code>adv</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">キャンペーン識別子 (<code>ca</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">クリエイティブ識別子 (<code>cr</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">ユーザーセグメントのリスト (<code>sg</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">エンティティタイプのカンマ区切りリスト (<code>aqet</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">クライアントが決定した変数0 (<code>v0</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">クライアントが決定した変数1 (<code>v1</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">クライアントが決定した変数2 (<code>v2</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">クライアントが決定した変数3 (<code>v3</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">クライアントが決定した変数4 (<code>v4</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">クライアントが決定した変数5 (<code>v5</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">クライアントが決定した変数6 (<code>v6</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">クライアントが決定した変数7 (<code>v7</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">クライアントが決定した変数8 (<code>v8</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">クライアントが決定した変数9 (<code>v9</code>)</td>\n<td style=\"text-align:left\">[文字列]</td>\n</tr>\n</tbody>\n</table>\n"
        }  

    , 
        {
            "weight": "0",
            "url": "https://docs.tealium.com/ja/client-side-tags/epsilon-partner-sync-web-service-tag/",
            "title": "EpsilonパートナーシンクWebサービスタグ構成ガイド",
            "body": "<p>Epsilonは、マーケターが予測、活性化、そして測定可能なビジネス成果を証明するのを支援する豊富な50年の歴史を持つ、結果ベースのマーケティングのリーダーです。</p>\n<h2 id=\"タグ構成\">タグ構成</h2>\n<p>まず、タグマーケットに移動し、EpsilonパートナーシンクWebサービスタグを追加します（<a href=\"/ja/iq-tag-management/tags/manage/\">タグの追加方法</a>について詳しくはこちら）。</p>\n<p>タグを追加した後、以下の構成を行います：</p>\n<ul>\n<li><strong>広告主識別子</strong>： <code>dtm_cid</code></li>\n<li><strong>セカンダリ広告主識別子</strong>： <code>dtm_cmagic</code></li>\n<li><strong>ページ訪問フォームID</strong>： <code>dtm_fid</code></li>\n</ul>\n<h2 id=\"データマッピング\">データマッピング</h2>\n<p>マッピングは、<a href=\"/ja/iq-tag-management/data-layer/data-layer-variables/\">データレイヤー変数</a>からベンダータグの対応する宛先変数にデータを送信するプロセスです。変数をタグの宛先にマップする方法については、<a href=\"/ja/iq-tag-management/data-mappings/manage/\">データマッピング</a>を参照してください。</p>\n<p>利用可能なカテゴリは以下の通りです：</p>\n<h3 id=\"タグ構成-1\">タグ構成</h3>\n<table>\n<thead>\n<tr>\n<th>変数</th>\n<th>データタイプ</th>\n<th>説明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>dtm_cid</code></td>\n<td>文字列</td>\n<td>会社ID</td>\n</tr>\n<tr>\n<td><code>dtm_cmagic</code></td>\n<td>文字列</td>\n<td>セカンダリ会社ID</td>\n</tr>\n<tr>\n<td><code>dtm_fid</code></td>\n<td>文字列</td>\n<td>フォームID</td>\n</tr>\n<tr>\n<td><code>dtm_cookie_id</code></td>\n<td>文字列</td>\n<td>クッキーID</td>\n</tr>\n<tr>\n<td><code>dtm_user_id</code></td>\n<td>文字列</td>\n<td>ユーザーID</td>\n</tr>\n<tr>\n<td><code>dtm_token_sc</code></td>\n<td>文字列</td>\n<td>dtm_token_sc</td>\n</tr>\n<tr>\n<td><code>dtmc_tcf_string</code></td>\n<td>文字列</td>\n<td>dtmc_tcf_string</td>\n</tr>\n<tr>\n<td><code>cachebuster</code></td>\n<td>文字列</td>\n<td>キャッシュバスター</td>\n</tr>\n</tbody>\n</table>\n"
        }  

    , 
        {
            "weight": "0",
            "url": "https://docs.tealium.com/ja/industries/tealium-identity-partners/acxiom-identity-resolution/",
            "title": "Acxiom Identity ResolutionのためのTealium Functionsの使用",
            "body": "<p>Acxiomからデータを取得するために訪問関数の使用を推奨します。訪問関数についての詳細は、<a href=\"/ja/server-side/functions/event-visitor-functions/about/\">イベントと訪問関数</a>を参照してください。</p>\n<p>訪問関数は以下の操作を行います：</p>\n<ul>\n<li>Acxiomから追加データをリクエストします。</li>\n<li>追加データと<code>tealium_visitor_id</code>を含むイベントをTealium Collectに送信します。</li>\n</ul>\n<p>EventStream属性と訪問属性は、関数から送信されたイベントによって豊かにされます。</p>\n<h2 id=\"前提条件\">前提条件</h2>\n<ul>\n<li>Tealium EventSteamおよびTealium Functions。</li>\n<li>データソースとしてのTealium Collect API。</li>\n<li>追加情報を保存する訪問属性。</li>\n<li>訪問属性をエンリッチするために必要な属性を持つイベント仕様である<code>acxiom_function_event</code>。</li>\n<li>イベント属性の値に訪問属性を構成するエンリッチメント。</li>\n</ul>\n<p>Acxiom Real Tagタグがインストールされている場合、関数は最も効果的に動作します。この識別子は訪問の信頼度を高めます。</p>\n<h2 id=\"イベントを処理する関数の作成\">イベントを処理する関数の作成</h2>\n<p>関数を作成するには：</p>\n<ol>\n<li><strong>Transform &gt; Functions</strong>に移動します。</li>\n<li><strong>Add Function</strong>をクリックします。</li>\n<li>関数の名前を入力します。</li>\n<li>関数の説明をノートに入力します。</li>\n<li><strong>Processed Event</strong>トリガーを選択します。</li>\n<li>トリガーのためのイベントフィードを選択します。</li>\n<li><strong>Continue</strong>をクリックします。</li>\n<li>下記のサンプルコードを<strong>Code</strong>ボックスに入力します。</li>\n<li>構成に必要に応じてコードをカスタマイズします。</li>\n<li>関数を保存します。</li>\n</ol>\n<p><strong>Test</strong>機能とPostman API Workbenchなどのツールを使用して関数をテストできます。</p>\n<p>関数の作成に関する詳細は、<a href=\"/ja/server-side/functions/manage-functions/create-function/\">Managing Functions</a>を参照してください。</p>\n<h2 id=\"例示関数コード\">例示関数コード</h2>\n<p>以下に含まれるテスト例関数は、送信された属性に基づいて訪問プロファイルをマッチングしようとします：</p>\n<table>\n<thead>\n<tr>\n<th>属性</th>\n<th>説明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>acxiom_function_event</code></td>\n<td>イベント仕様名</td>\n</tr>\n<tr>\n<td><code>realId</code></td>\n<td>Acxiom rTag</td>\n</tr>\n<tr>\n<td><code>address</code></td>\n<td>ユーザーの住所</td>\n</tr>\n<tr>\n<td><code>phone</code></td>\n<td>ユーザーの電話番号</td>\n</tr>\n<tr>\n<td><code>email</code></td>\n<td>ユーザーのメールアドレス</td>\n</tr>\n<tr>\n<td><code>fullName</code></td>\n<td>ユーザーのフルネーム</td>\n</tr>\n</tbody>\n</table>\n<p>関数はプロファイルエンリッチメントのための追加ユーザーデータを返します。</p>\n<p class=\"note\"><i class=\"fa fa-exclamation-triangle\"></i>このコードは現在ベータ版です。</p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-js\" data-lang=\"js\"><span style=\"display:flex;\"><span><span style=\"color:#75715e\">// イベントスコープ関数では、event, authなどのモジュールが使用可能です\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span><span style=\"color:#66d9ef\">import</span> { <span style=\"color:#a6e22e\">event</span>, <span style=\"color:#a6e22e\">store</span>, <span style=\"color:#a6e22e\">tealium</span> } <span style=\"color:#a6e22e\">from</span> <span style=\"color:#e6db74\">&#34;tealium&#34;</span>;\n</span></span><span style=\"display:flex;\"><span>(<span style=\"color:#66d9ef\">async</span> () =&gt; {\n</span></span><span style=\"display:flex;\"><span>    \n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#75715e\">// これらのエンドポイントは、Acxiomとの構成に特有のものです。\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">access_url</span><span style=\"color:#f92672\">=</span><span style=\"color:#e6db74\">&#34;https://mydomain.com/metrics/access_token&#34;</span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">query_url</span><span style=\"color:#f92672\">=</span><span style=\"color:#e6db74\">&#34;https://mydomain.com/metrics&#34;</span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">query_name</span><span style=\"color:#f92672\">=</span><span style=\"color:#e6db74\">&#34;demo_dsapi_match&#34;</span>\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#75715e\">// イベントオブジェクトで使用可能なものを正確に知るために、これをアンコメントしてください\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#75715e\">//console.log(&#39;Data available:\\n&#39;, JSON.stringify(event, null, 2));\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">data</span> <span style=\"color:#f92672\">=</span> {};\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">tealium_account</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">event</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">data</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">udo</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">tealium_account</span>;\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">tealium_profile</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">event</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">data</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">udo</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">tealium_profile</span>;\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">visitor_id</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">event</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">data</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">udo</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">visitor_id</span>;\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">trace_id</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">event</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">data</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">firstparty_tealium_cookies</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">trace_id</span>;\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">acxiom_real_id</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">event</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">data</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">udo</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">acxiom_real_id</span> <span style=\"color:#f92672\">||</span> <span style=\"color:#e6db74\">&#34;&#34;</span>;\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">customer_email</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">event</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">data</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">udo</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">customer_email</span>;\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">customer_first_name</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">event</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">data</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">udo</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">customer_first_name</span>;\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">customer_last_name</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">event</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">data</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">udo</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">customer_last_name</span>;\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">customer_full_name</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#e6db74\">`</span><span style=\"color:#e6db74\">${</span><span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">customer_first_name</span><span style=\"color:#e6db74\">}</span><span style=\"color:#e6db74\"> </span><span style=\"color:#e6db74\">${</span><span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">customer_last_name</span><span style=\"color:#e6db74\">}</span><span style=\"color:#e6db74\">`</span>\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#75715e\">// acxiom_real_idが利用可能かチェックします\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#75715e\">// if (typeof data.acxiom_real_id === &#34;undefined&#34;) {\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#75715e\">//     console.error(&#34;acxiom_entity_id is unavailable.&#34;);\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#75715e\">//     return;\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#75715e\">// }\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#75715e\">// グローバル変数からリフレッシュトークンを取得します\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">refresh_token</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">store</span>.<span style=\"color:#a6e22e\">get</span>(<span style=\"color:#e6db74\">&#34;acxiom_refresh_token&#34;</span>)\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#e6db74\">&#34;refresh_token: &#34;</span>, <span style=\"color:#a6e22e\">refresh_token</span>)\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#75715e\">// アクセストークンを生成します\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">access_token_request</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#66d9ef\">await</span> <span style=\"color:#a6e22e\">fetch</span>(<span style=\"color:#a6e22e\">access_url</span>, {\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">method</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#34;POST&#34;</span>,\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">headers</span><span style=\"color:#f92672\">:</span> {\n</span></span><span style=\"display:flex;\"><span>            <span style=\"color:#e6db74\">&#34;Content-Type&#34;</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#34;application/json&#34;</span>,\n</span></span><span style=\"display:flex;\"><span>            <span style=\"color:#e6db74\">&#34;Authorization&#34;</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">`Bearer </span><span style=\"color:#e6db74\">${</span><span style=\"color:#a6e22e\">refresh_token</span><span style=\"color:#e6db74\">}</span><span style=\"color:#e6db74\">`</span>\n</span></span><span style=\"display:flex;\"><span>        },\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">body</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">`{&#34;grant_type&#34;:&#34;refresh_token&#34;,&#34;refresh_token&#34;:&#34;</span><span style=\"color:#e6db74\">${</span><span style=\"color:#a6e22e\">refresh_token</span><span style=\"color:#e6db74\">}</span><span style=\"color:#e6db74\">&#34;}`</span>\n</span></span><span style=\"display:flex;\"><span>    })\n</span></span><span style=\"display:flex;\"><span>    .<span style=\"color:#66d9ef\">catch</span>((<span style=\"color:#a6e22e\">error</span>) =&gt; {\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">error</span>(<span style=\"color:#e6db74\">&#39;Error:&#39;</span>, <span style=\"color:#a6e22e\">error</span>);\n</span></span><span style=\"display:flex;\"><span>    });\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">access_token_response</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#66d9ef\">await</span> <span style=\"color:#a6e22e\">access_token_request</span>.<span style=\"color:#a6e22e\">json</span>();\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#75715e\">// console.log(&#34;access_token_response:&#34;, JSON.stringify(access_token_response));\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">access_token</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">access_token_response</span>.<span style=\"color:#a6e22e\">jwt_token</span>;\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#75715e\">// console.log(&#34;access_token: &#34;, access_token)\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#75715e\">// Acxiom PAILからacxiom_real_idを使用してquery_execution_idを取得します\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">response</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#66d9ef\">await</span> <span style=\"color:#a6e22e\">fetch</span>(<span style=\"color:#e6db74\">`</span><span style=\"color:#e6db74\">${</span><span style=\"color:#a6e22e\">query_url</span><span style=\"color:#e6db74\">}</span><span style=\"color:#e6db74\">/named_queries/</span><span style=\"color:#e6db74\">${</span><span style=\"color:#a6e22e\">query_name</span><span style=\"color:#e6db74\">}</span><span style=\"color:#e6db74\">/execute`</span>, {\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">method</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#34;POST&#34;</span>,\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">redirect</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#34;follow&#34;</span>,\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">headers</span><span style=\"color:#f92672\">:</span> {\n</span></span><span style=\"display:flex;\"><span>            <span style=\"color:#e6db74\">&#34;Content-Type&#34;</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#34;application/json&#34;</span>,\n</span></span><span style=\"display:flex;\"><span>            <span style=\"color:#e6db74\">&#34;Authorization&#34;</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">`Bearer </span><span style=\"color:#e6db74\">${</span><span style=\"color:#a6e22e\">access_token</span><span style=\"color:#e6db74\">}</span><span style=\"color:#e6db74\">`</span>\n</span></span><span style=\"display:flex;\"><span>        },\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">body</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">`{\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#e6db74\">            &#34;realID&#34;: &#34;</span><span style=\"color:#e6db74\">${</span><span style=\"color:#a6e22e\">data</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">acxiom_real_id</span><span style=\"color:#e6db74\">}</span><span style=\"color:#e6db74\">&#34;, \n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#e6db74\">            &#34;address&#34;: &#34;</span><span style=\"color:#e6db74\">${</span><span style=\"color:#a6e22e\">data</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">customer_address</span><span style=\"color:#e6db74\">}</span><span style=\"color:#e6db74\">&#34;, \n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#e6db74\">            &#34;phone&#34;: &#34;</span><span style=\"color:#e6db74\">${</span><span style=\"color:#a6e22e\">data</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">customer_phone</span><span style=\"color:#e6db74\">}</span><span style=\"color:#e6db74\">&#34;, \n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#e6db74\">            &#34;email&#34;: &#34;</span><span style=\"color:#e6db74\">${</span><span style=\"color:#a6e22e\">data</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">customer_email</span><span style=\"color:#e6db74\">}</span><span style=\"color:#e6db74\">&#34;, \n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#e6db74\">            &#34;fullName&#34;: &#34;</span><span style=\"color:#e6db74\">${</span><span style=\"color:#a6e22e\">data</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">customer_full_name</span><span style=\"color:#e6db74\">}</span><span style=\"color:#e6db74\">&#34;\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#e6db74\">        }`</span>\n</span></span><span style=\"display:flex;\"><span>    })\n</span></span><span style=\"display:flex;\"><span>    .<span style=\"color:#a6e22e\">then</span>(<span style=\"color:#a6e22e\">res</span> =&gt; {\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#e6db74\">&#34;Res: &#34;</span>, <span style=\"color:#a6e22e\">JSON</span>.<span style=\"color:#a6e22e\">stringify</span>(<span style=\"color:#a6e22e\">res</span>))\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#66d9ef\">return</span> <span style=\"color:#a6e22e\">res</span>\n</span></span><span style=\"display:flex;\"><span>    })\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#75715e\">// .then(response =&gt; console.log(&#34;Response: &#34;, JSON.stringify(response)))\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    .<span style=\"color:#66d9ef\">catch</span>(<span style=\"color:#a6e22e\">error</span> =&gt; <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">error</span>(<span style=\"color:#e6db74\">&#39;Error: &#39;</span>, <span style=\"color:#a6e22e\">error</span>.<span style=\"color:#a6e22e\">message</span>));\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">body</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#66d9ef\">await</span> <span style=\"color:#a6e22e\">response</span>.<span style=\"color:#a6e22e\">json</span>();\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">query_execution_id</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">body</span>.<span style=\"color:#a6e22e\">query_execution_id</span>\n</span></span><span style=\"display:flex;\"><span>    \n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#75715e\">// console.log(&#34;Status: &#34; + response.status);\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#e6db74\">&#34;Body: &#34;</span> <span style=\"color:#f92672\">+</span> <span style=\"color:#a6e22e\">JSON</span>.<span style=\"color:#a6e22e\">stringify</span>(<span style=\"color:#a6e22e\">body</span>, <span style=\"color:#66d9ef\">null</span>, <span style=\"color:#ae81ff\">2</span>));\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#75715e\">// Acxiomからの応答データが利用可能かチェックします\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#66d9ef\">if</span> (<span style=\"color:#f92672\">!</span><span style=\"color:#a6e22e\">response</span>.<span style=\"color:#a6e22e\">ok</span>) {\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">error</span>(<span style=\"color:#e6db74\">&#34;Acxiom response data is unavailable.&#34;</span>);\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#66d9ef\">return</span>;\n</span></span><span style=\"display:flex;\"><span>    }\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#75715e\">// query_execution_idを使用してAcxiom PAILからデータを取得します\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">payload</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#66d9ef\">await</span> <span style=\"color:#a6e22e\">fetch</span>(<span style=\"color:#e6db74\">`</span><span style=\"color:#e6db74\">${</span><span style=\"color:#a6e22e\">query_url</span><span style=\"color:#e6db74\">}</span><span style=\"color:#e6db74\">/query_executions/</span><span style=\"color:#e6db74\">${</span><span style=\"color:#a6e22e\">query_execution_id</span><span style=\"color:#e6db74\">}</span><span style=\"color:#e6db74\">`</span>, {\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">method</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#34;GET&#34;</span>,\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">headers</span><span style=\"color:#f92672\">:</span> {\n</span></span><span style=\"display:flex;\"><span>            <span style=\"color:#e6db74\">&#34;Content-Type&#34;</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#34;application/json&#34;</span>,\n</span></span><span style=\"display:flex;\"><span>            <span style=\"color:#e6db74\">&#34;Authorization&#34;</span><span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">`Bearer </span><span style=\"color:#e6db74\">${</span><span style=\"color:#a6e22e\">access_token</span><span style=\"color:#e6db74\">}</span><span style=\"color:#e6db74\">`</span>\n</span></span><span style=\"display:flex;\"><span>        }\n</span></span><span style=\"display:flex;\"><span>    })\n</span></span><span style=\"display:flex;\"><span>    .<span style=\"color:#a6e22e\">then</span>(<span style=\"color:#a6e22e\">res</span> =&gt; {\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#e6db74\">&#34;Res: &#34;</span>, <span style=\"color:#a6e22e\">JSON</span>.<span style=\"color:#a6e22e\">stringify</span>(<span style=\"color:#a6e22e\">res</span>))\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#66d9ef\">return</span> <span style=\"color:#a6e22e\">res</span>\n</span></span><span style=\"display:flex;\"><span>    })\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#75715e\">// .then(response =&gt; response.json())\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#75715e\">// .then(response =&gt; console.log(&#34;Response: &#34;, JSON.stringify(response)))\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    .<span style=\"color:#66d9ef\">catch</span>(<span style=\"color:#a6e22e\">err</span> =&gt; <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">error</span>(<span style=\"color:#a6e22e\">err</span>));\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">const</span> <span style=\"color:#a6e22e\">user_data</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#66d9ef\">await</span> <span style=\"color:#a6e22e\">payload</span>.<span style=\"color:#a6e22e\">json</span>();\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#e6db74\">&#34;user_data: &#34;</span>, <span style=\"color:#a6e22e\">JSON</span>.<span style=\"color:#a6e22e\">stringify</span>(<span style=\"color:#a6e22e\">user_data</span>))\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">data_object</span> <span style=\"color:#f92672\">=</span> {};\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">for</span> (<span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">i</span><span style=\"color:#f92672\">=</span><span style=\"color:#ae81ff\">0</span>; <span style=\"color:#a6e22e\">i</span> <span style=\"color:#f92672\">&lt;</span> <span style=\"color:#a6e22e\">user_data</span>.<span style=\"color:#a6e22e\">column_info</span>.<span style=\"color:#a6e22e\">length</span>; <span style=\"color:#a6e22e\">i</span><span style=\"color:#f92672\">++</span>) {\n</span></span><span style=\"display:flex;\"><span>        <span style=\"color:#a6e22e\">data_object</span>[<span style=\"color:#a6e22e\">user_data</span>.<span style=\"color:#a6e22e\">column_info</span>[<span style=\"color:#a6e22e\">i</span>].<span style=\"color:#a6e22e\">name</span>] <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">user_data</span>.<span style=\"color:#a6e22e\">data</span>[<span style=\"color:#ae81ff\">0</span>][<span style=\"color:#a6e22e\">i</span>]\n</span></span><span style=\"display:flex;\"><span>    }\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#75715e\">// data_object = JSON.stringify(data_object)\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#66d9ef\">let</span> <span style=\"color:#a6e22e\">newEvent</span> <span style=\"color:#f92672\">=</span> {};\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">newEvent</span> <span style=\"color:#f92672\">=</span> { ...<span style=\"color:#a6e22e\">data_object</span> }\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">newEvent</span>.<span style=\"color:#a6e22e\">tealium_event</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#e6db74\">&#34;acxiom_function_event&#34;</span>;\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">newEvent</span>.<span style=\"color:#a6e22e\">visitor_id</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">visitor_id</span>;\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">newEvent</span>.<span style=\"color:#a6e22e\">tealium_trace_id</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">data</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">tealium_trace_id</span>;\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">newEvent</span>.<span style=\"color:#a6e22e\">customer_email</span> <span style=\"color:#f92672\">=</span> <span style=\"color:#a6e22e\">data_object</span><span style=\"color:#f92672\">?</span>.<span style=\"color:#a6e22e\">email</span>;\n</span></span><span style=\"display:flex;\"><span>    \n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#e6db74\">&#34;newEvent: &#34;</span> <span style=\"color:#f92672\">+</span> <span style=\"color:#a6e22e\">JSON</span>.<span style=\"color:#a6e22e\">stringify</span>(<span style=\"color:#a6e22e\">newEvent</span>, <span style=\"color:#66d9ef\">null</span>, <span style=\"color:#ae81ff\">2</span>));\n</span></span><span style=\"display:flex;\"><span>\n</span></span><span style=\"display:flex;\"><span>    <span style=\"color:#75715e\">// Acxiomから受け取ったデータをTealiumに送信します\n</span></span></span><span style=\"display:flex;\"><span><span style=\"color:#75715e\"></span>    <span style=\"color:#a6e22e\">tealium</span>\n</span></span><span style=\"display:flex;\"><span>        .<span style=\"color:#a6e22e\">sendCollectEvent</span>(<span style=\"color:#a6e22e\">newEvent</span>, <span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">tealium_account</span>, <span style=\"color:#a6e22e\">data</span>.<span style=\"color:#a6e22e\">tealium_profile</span>)\n</span></span><span style=\"display:flex;\"><span>        .<span style=\"color:#a6e22e\">then</span>(<span style=\"color:#a6e22e\">response</span> =&gt; {\n</span></span><span style=\"display:flex;\"><span>            <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#e6db74\">&#39;Status code: &#39;</span>, <span style=\"color:#a6e22e\">response</span>.<span style=\"color:#a6e22e\">status</span>);\n</span></span><span style=\"display:flex;\"><span>            <span style=\"color:#66d9ef\">return</span> <span style=\"color:#a6e22e\">response</span>;\n</span></span><span style=\"display:flex;\"><span>        })\n</span></span><span style=\"display:flex;\"><span>        .<span style=\"color:#a6e22e\">then</span>(<span style=\"color:#a6e22e\">data</span> =&gt; <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">log</span>(<span style=\"color:#e6db74\">&#39;Result: &#39;</span>, <span style=\"color:#a6e22e\">JSON</span>.<span style=\"color:#a6e22e\">stringify</span>(<span style=\"color:#a6e22e\">data</span>, <span style=\"color:#66d9ef\">null</span>, <span style=\"color:#ae81ff\">2</span>)))\n</span></span><span style=\"display:flex;\"><span>        .<span style=\"color:#66d9ef\">catch</span>(<span style=\"color:#a6e22e\">error</span> =&gt; <span style=\"color:#a6e22e\">console</span>.<span style=\"color:#a6e22e\">error</span>(<span style=\"color:#e6db74\">&#39;Error: &#39;</span>, <span style=\"color:#a6e22e\">error</span>.<span style=\"color:#a6e22e\">message</span>));\n</span></span><span style=\"display:flex;\"><span>})();\n</span></span></code></pre></div>"
        }  

    , 
        {
            "weight": "0",
            "url": "https://docs.tealium.com/ja/server-side-connectors/criteo-audiences-connector/",
            "title": "Criteo Audiences コネクタ構成ガイド",
            "body": "<p class=\"note\"><i class=\"fa fa-exclamation-triangle\"></i>訪問データをCriteoに送信するために、<a href=\"/ja/server-side-connectors/criteo-audiences-oauth-connector/\">Criteo Audiences (OAuth) コネクタ</a>の使用をお勧めします。OAuthコネクタは、Criteoアカウントの認証情報とAuthorization Codeフローを使用して、セキュリティ、プライバシーの向上とアカウント管理を容易にします。</p>\n<h2 id=\"コネクタのアクション\">コネクタのアクション</h2>\n<table>\n<thead>\n<tr>\n<th>アクション名</th>\n<th style=\"text-align:center\">AudienceStream</th>\n<th style=\"text-align:center\">EventStream</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>ユーザーをオーディエンスに追加</td>\n<td style=\"text-align:center\">✓</td>\n<td style=\"text-align:center\">✓</td>\n</tr>\n<tr>\n<td>ユーザーをオーディエンスから削除</td>\n<td style=\"text-align:center\">✓</td>\n<td style=\"text-align:center\">✓</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"api情報\">API情報</h3>\n<p>このコネクタは以下のベンダーAPIを使用します：</p>\n<ul>\n<li>API名: Criteo API</li>\n<li>APIバージョン: 2025-07</li>\n<li>APIエンドポイント: <code>https://api.criteo.com/2025-07/audiences</code></li>\n<li>ドキュメント: <a href=\"https://developers.criteo.com/marketing-solutions/docs/audiences\">Criteo: Audiences API</a></li>\n</ul>\n<h3 id=\"バッチ制限\">バッチ制限</h3>\n<p>このコネクタは、ベンダーへの大量データ転送をサポートするためにバッチリクエストを使用します。詳細については、<a href=\"/ja/server-side/connectors/batched-actions/\">Batched Actions</a>を参照してください。リクエストは、次のいずれかの閾値に達するか、プロファイルが公開されるまでキューに入れられます：</p>\n<ul>\n<li>最大リクエスト数: 50000</li>\n<li>最古のリクエストからの最大時間: 15分</li>\n<li>リクエストの最大サイズ: 10 MB</li>\n</ul>\n<h2 id=\"構成の構成\">構成の構成</h2>\n<h3 id=\"criteoから同意リンクをリクエスト\">Criteoから同意リンクをリクエスト</h3>\n<p>このコネクタを使用する場合は、<a href=\"mailto:asintegrations@tealium.com\">asintegrations@tealium.com</a>にメールを送り、広告主に代わってTealium Customer Data Hubがオーディエンスを管理するための同意リンクを受け取ってください。詳細については、<a href=\"https://developers.criteo.com/marketing-solutions/docs/authorization-requests\">Criteo Developers: Send an Authorization Request to Your Users</a>を参照してください。</p>\n<p class=\"note\"><i class=\"fa fa-exclamation-triangle\"></i>この手続きには最大3営業日かかる場合があります。</p>\n<p>Criteoのアクティベーションリンクを受け取った後、次の手順を完了します：</p>\n<ol>\n<li>提供されたアクティベーションリンクをクリックします。<br>\n<strong>Criteo同意ポータル</strong>が表示されます。</li>\n<li>アカウントの要求された認証レベルを付与します。</li>\n</ol>\n<h3 id=\"コネクタを追加して構成を構成\">コネクタを追加して構成を構成</h3>\n<p>コネクタマーケットプレースにアクセスして、プロファイルにCriteo Audience Matchコネクタを追加します。コネクタを追加する一般的な手順については、<a href=\"/ja/server-side/connectors/about/\">Connector Overview</a>を参照してください。</p>\n<p>コネクタを追加した後、次の構成を構成します：</p>\n<ul>\n<li><strong>広告主ID（必須）</strong><br>\nCriteoアカウント内の統合に関連付けられた<strong>広告主ID</strong>を構成します。</li>\n</ul>\n<h2 id=\"アクション構成---パラメータとオプション\">アクション構成 - パラメータとオプション</h2>\n<p><strong>次へ</strong>をクリックするか、<strong>アクション</strong>タブに進みます。ここでコネクタアクションを構成します。</p>\n<p>このセクションでは、各アクションのパラメータとオプションの構成方法について説明します。</p>\n<h3 id=\"アクション---ユーザーをオーディエンスに追加\">アクション - ユーザーをオーディエンスに追加</h3>\n<h4 id=\"パラメータ\">パラメータ</h4>\n<table>\n<thead>\n<tr>\n<th><strong>パラメータ</strong></th>\n<th><strong>説明</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>オーディエンス</td>\n<td>オーディエンスを選択するか、ユーザーを追加するオーディエンスIDを入力します。</td>\n</tr>\n<tr>\n<td>識別子</td>\n<td>ユーザー識別値をマッピングします。 <ul><li><strong>Email</strong>: ハッシュ化せずにそのままのメール値を送信します。値がハッシュ化されていない場合やすでにハッシュ化されている場合は、このオプションを選択します。</li><li><strong>Email (MD5ハッシュを適用)</strong>: 送信前にMD5でメール値をハッシュ化します。</li><li><strong>Email (MD5およびSHA256ハッシュを適用)</strong>: MD5でメール値をハッシュ化した後、SHA256で再ハッシュ化します。</li><li><strong>モバイルID</strong>: AppleのIDFAモバイルID、AndroidのADIDモバイルID。</li><li><strong>Identity Link</strong>: Identity Link</li><li><strong>Gum ID</strong>: クッキーマッチングから取得した識別子。対応するGum Caller IDが自動的にリクエストに追加されます。</li></ul></td>\n</tr>\n<tr>\n<td>Gum Caller ID</td>\n<td>Gum Caller <code>ID</code> - Criteoが<code>GUM</code>（Generative Unified Media）のソルティングに使用する値です。Tealium iQ Criteo Cookie Matching Serviceタグを使用している場合は、この項目をマッピングしないでください。</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"アクション---ユーザーをオーディエンスから削除\">アクション - ユーザーをオーディエンスから削除</h3>\n<h4 id=\"パラメータ-1\">パラメータ</h4>\n<table>\n<thead>\n<tr>\n<th><strong>パラメータ</strong></th>\n<th><strong>説明</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>オーディエンス</td>\n<td>オーディエンスを選択するか、ユーザーを削除するオーディエンスIDを入力します。</td>\n</tr>\n<tr>\n<td>識別子</td>\n<td>ユーザー識別値をマッピングします。 <ul><li><strong>Email</strong>: ハッシュ化せずにそのままのメール値を送信します。値がハッシュ化されていない場合やすでにハッシュ化されている場合は、このオプションを選択します。</li><li><strong>Email (MD5ハッシュを適用)</strong>: 送信前にMD5でメール値をハッシュ化します。</li><li><strong>Email (MD5およびSHA256ハッシュを適用)</strong>: MD5でメール値をハッシュ化した後、SHA256で再ハッシュ化します。</li><li><strong>モバイルID</strong>: AppleのIDFAモバイルID、AndroidのADIDモバイルID。</li><li><strong>Identity Link</strong>: Identity Link</li><li><strong>Gum ID</strong>: クッキーマッチングから取得した識別子。対応するGum Caller IDが自動的にリクエストに追加されます。</li></ul></td>\n</tr>\n<tr>\n<td>Gum Caller ID</td>\n<td>Gum Caller <code>ID</code> - Criteoが<code>GUM</code>（Generative Unified Media）のソルティングに使用する値です。Tealium iQ Criteo Cookie Matching Serviceタグを使用している場合は、この項目をマッピングしないでください。</td>\n</tr>\n</tbody>\n</table>\n"
        }  

    , 
        {
            "weight": "0",
            "url": "https://docs.tealium.com/ja/client-side-tags/criteo-cookie-matching-service-tag/",
            "title": "Criteo Cookie Matching Serviceタグ構成ガイド",
            "body": "<p class=\"note\"><i class=\"fa fa-exclamation-triangle\"></i>このタグを <code>utag</code> バージョン4.50以降で使用する場合、<code>utag.js</code> の <a href=\"/ja/platforms/javascript/settings/#always_set_v_id\"><code>always_set_v_id</code> 構成</a>を <code>true</code>に構成する必要があります。この構成により、訪問IDがクッキー同期に利用可能になります。詳細については、<a href=\"/ja/platforms/javascript/version-4-50/#updating-to-version-450-or-later\">utag 4.50リリースノート</a>と<a href=\"https://support.tealiumiq.com/en/support/solutions/articles/36000535887-considerations-for-tealium-visitor-id-when-upgrading-to-utag-4-50-\">utag 4.50+へのアップグレード時のtealium_visitor_idの考慮事項</a>を参照してください。</p>\n<p>Criteo Cookie Matching Serviceは、Tealiumの訪問を識別するクッキーと、Criteoのユーザーを識別するクッキーを関連付けることを可能にします。</p>\n<h2 id=\"タグのヒント\">タグのヒント</h2>\n<ul>\n<li>空白の場合、Tealiumアカウントとプロファイルは自動的に入力されます。</li>\n<li>以下のサーバーサイド属性をTealiumに戻します：\n<ul>\n<li><code>criteo_user_id</code></li>\n</ul>\n</li>\n</ul>\n<p>EventStreamでのクッキーマッチングについての詳細は、<a href=\"/ja/iq-tag-management/tags/cookie-matching/\">EventStreamでのPersistent Cookie Matchingの理解</a>を参照してください。</p>\n<h2 id=\"タグの構成\">タグの構成</h2>\n<p>新しいタグを追加するためにタグマーケットプレイスに移動します。タグの追加方法についての一般的な指示については、<a href=\"/ja/iq-tag-management/tags/about/\">タグの概要</a>の記事を読んでください。</p>\n<p>タグを追加する際には、以下の構成を行います：</p>\n<ul>\n<li><strong>Tealiumアカウント</strong>：（オプション）あなたのTealiumアカウント。</li>\n<li><strong>Tealiumプロファイル</strong>：（オプション）あなたのTealiumプロファイル。</li>\n<li><strong>同期間隔</strong>：（オプション）IDを再確認する頻度。この値はデフォルトで7日間に構成されています。</li>\n<li><strong>データソースキー</strong>：（オプション）サーバーサイド構成からのデータソースキー。</li>\n<li><strong><code>/event</code>エンドポイントを使用</strong>：<code>/event</code>エンドポイントにデータを送信します。</li>\n</ul>\n<h2 id=\"ロードルール\">ロードルール</h2>\n<p>すべてのページでタグをロードするか、タグがロードされる条件を構成します。ロードルールについての詳細は、<a href=\"/ja/iq-tag-management/load-rules/about/\">ロードルール</a>のドキュメンテーションを参照してください。</p>\n<h2 id=\"データマッピング\">データマッピング</h2>\n<p>マッピングは、データレイヤー変数からベンダータグの対応する宛先変数にデータを送信するプロセスです。変数をタグ宛先にマッピングする方法については、<a href=\"/ja/iq-tag-management/data-mappings/manage/\">データマッピング</a>を参照してください。</p>\n<p>利用可能なカテゴリは以下の通りです：</p>\n<h3 id=\"スタンダード\">スタンダード</h3>\n<table>\n<thead>\n<tr>\n<th>変数</th>\n<th>説明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Tealiumアカウント (<code>tealium_account</code>)</td>\n<td>[文字列]</td>\n</tr>\n<tr>\n<td>Tealiumプロファイル (<code>tealium_profile</code>)</td>\n<td>[文字列]</td>\n</tr>\n<tr>\n<td>同期間隔 (<code>days_between_syncs</code>)</td>\n<td>[数値]</td>\n</tr>\n<tr>\n<td>データソースキー (<code>tealium_datasource</code>)</td>\n<td>[文字列]</td>\n</tr>\n<tr>\n<td><code>/event</code>エンドポイントを使用 (<code>use_event_endpoint</code>)</td>\n<td>[ブール値]</td>\n</tr>\n</tbody>\n</table>\n"
        }  

    , 
        {
            "weight": "0",
            "url": "https://docs.tealium.com/ja/client-side-tags/merkle-merkury-tag/",
            "title": "Merkle Merkuryタグ構成ガイド",
            "body": "<h2 id=\"タグのヒント\">タグのヒント</h2>\n<ul>\n<li>Adobe MediaSDKは、Adobe Experience Cloud ID ServiceとAppMeasurement for JSを最初にロードすることを必要とします。できればバンドルされていることが望ましいです。</li>\n<li>このタグは<code>utag.track('video', data);</code>を通じて発火されます。これはあなたのビデオイベントハンドラに実装されるべきです。</li>\n</ul>\n<h2 id=\"タグの構成\">タグの構成</h2>\n<p>新しいタグを追加するためにタグマーケットプレイスに行きます。タグを追加する一般的な手順については、<a href=\"/ja/iq-tag-management/tags/about/\">タグの概要</a>の記事を読んでください。</p>\n<p>タグを追加する際には、以下の構成を行います：</p>\n<ul>\n<li><strong>CID</strong><br>\nMerkuryチームから生成されたクライアント固有の数値アカウント番号。</li>\n<li><strong>ドメイン</strong><br>\nクライアントのウェブサイトのドメイン。例：<code>merkleinc.com</code>。</li>\n<li><strong>Merkury Identityイベントの送信</strong><br>\n<code>merkury_identity</code>イベントを生成するかどうか。このイベントには以下の情報が含まれます：\n<ul>\n<li><code>event</code></li>\n<li><code>merkury_email_sha256</code></li>\n<li><code>merkury_hmid</code></li>\n<li><code>merkury_confidence_score</code></li>\n</ul>\n</li>\n</ul>\n<h2 id=\"ロードルール\">ロードルール</h2>\n<p>すべてのページでタグをロードするか、タグがロードされる条件を構成します。ロードルールについての詳細は、<a href=\"/ja/iq-tag-management/load-rules/about/\">ロードルール</a>のドキュメンテーションを参照してください。</p>\n<h2 id=\"データマッピング\">データマッピング</h2>\n<p>マッピングは、データレイヤー変数からベンダータグの対応する宛先変数にデータを送信するプロセスです。変数をタグの宛先にマッピングする方法については、<a href=\"/ja/iq-tag-management/data-mappings/manage/\">データマッピング</a>を参照してください。</p>\n<p>利用可能なカテゴリは以下の通りです：</p>\n<h3 id=\"スタンダード\">スタンダード</h3>\n<table>\n<thead>\n<tr>\n<th>説明</th>\n<th>変数</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>sv_cid</code></td>\n<td>CID</td>\n</tr>\n<tr>\n<td><code>sv_origin</code></td>\n<td>ドメイン</td>\n</tr>\n<tr>\n<td><code>uID</code></td>\n<td>クライアントID</td>\n</tr>\n<tr>\n<td><code>em</code></td>\n<td>メールアドレス</td>\n</tr>\n<tr>\n<td><code>eme</code></td>\n<td>MD5メールハッシュ</td>\n</tr>\n<tr>\n<td><code>emID</code></td>\n<td>クライアントメールID</td>\n</tr>\n<tr>\n<td><code>base_url</code></td>\n<td>ベースURL</td>\n</tr>\n</tbody>\n</table>\n"
        }  

    , 
        {
            "weight": "0",
            "url": "https://docs.tealium.com/ja/industries/tealium-identity-partners/netid-identity-resolution/",
            "title": "netID 実装ガイド",
            "body": "<p>ファーストパーティデータ、例えばnetIDは、正確なリターゲティングとパーソナライゼーションに不可欠です。Tealiumのリアルタイムファーストパーティデータプラットフォームは、これらの識別子をチャネル間で活用し、広告キャンペーンの効果を高めるのに役立ちます。</p>\n<h2 id=\"前提条件\">前提条件</h2>\n<ul>\n<li>netIDブラウザベースのJavaScript APIへのリクエスト</li>\n<li>Tealium EventStreamまたはAudienceStream</li>\n</ul>\n<h2 id=\"動作原理\">動作原理</h2>\n<p>netIDのシングルサインオン（SSO）および同意管理ソリューションを統合する際、netIDパートナーはnetIDブラウザベースのJavaScript APIへのリクエストを実装する必要があります。APIから返されるプロパティは、ブラウザセッション内でファーストパーティクッキー、<code>localStorage</code>、または<code>sessionStorage</code>として保持される必要があります。</p>\n<p><code>tpid</code>のようなNetIDプロパティは、Tealium iQのクライアントサイドタグと組み合わせて、ウェブページ上の広告技術と統合するために使用できます。</p>\n<p>さらに、同じnetIDプロパティはTealium Collectタグによって収集され、EventStreamおよびAudienceStreamの属性として利用可能になります。netIDが訪問属性として保存されると、訪問プロファイルはリアルタイムコネクタを通じて広告ベンダーにアクティブ化することができます。</p>\n<p>netIDブラウザベースのJavaScript APIについての詳細は、以下を参照してください：</p>\n<ul>\n<li><a href=\"https://developerzone.netid.dev/1.6/cmp/browser-based/#response\">netID: APIから返されるデータポイント</a></li>\n<li><a href=\"https://developerzone.netid.dev/1.6/cmp/browser-based/#response-properties\">netID: レスポンスプロパティの説明</a></li>\n</ul>\n<h2 id=\"tealium-iq\">Tealium iQ</h2>\n<p>ブラウザに保存されたnetIDプロパティは、データレイヤー（UDOオブジェクト）の一部として取得できます。このデータは、関連する場合にTealium iQのロードルールおよびタグデータマッピングで使用できます。</p>\n<p>例えば、netIDの<code>tpid</code>パラメータをファーストパーティクッキーとして保持した場合、データレイヤーに新しい変数タイプ<strong>First-Party Cookie</strong>を追加し、<strong>Source</strong>の値をクッキーの名前（例：<code>netid_tpid</code>）に構成します。</p>\n<figure><a class=\"slb\" href=\"/images/industries/netid-add-variable.png\"><img src=\"https://docs.tealium.com/images/industries/netid-add-variable.png\"\n         alt=\"netID add variable\"\n         title=\"netID add variable\"/>\n    </a>\n</figure>\n<p>netIDパートナーとして、以下の方法のいずれかを使用して、TealiumデータレイヤーにnetIDのプロパティをキーバリューペアとして含めます：</p>\n<ul>\n<li>\n<p><strong>First-Party-Cookie</strong>: ブラウザに<code>netid_tpid</code>を<a href=\"/ja/platforms/javascript/data-layer/#cookies\">ファーストパーティクッキー</a>として名前<code>netid_tpid</code>で保持し、Tealium標準クッキーと並んでデータレイヤーに<code>cp.</code>プレフィックスで表示されます：</p>\n<pre tabindex=\"0\"><code>{\n  ...,\n  &#34;cp.netid_tpid&#34;: &#34;Bst040QDNr1nB9JM6sWH0I9__70JEvRyIiKvvd7G0MQLQ&#34;,\n  ...\n}\n</code></pre></li>\n<li>\n<p><strong>Universal Data Object (UDO)</strong>: <a href=\"/ja/iq-tag-management/data-layer/data-layer-variables/#udo-variable\">UDO変数</a>を使用して、<code>utag_data</code>にnetIDプロパティを明示的に保持します。例えば、ページのUDOに<code>netid_tpid</code>としてnetID識別プロパティを追加します：</p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-js\" data-lang=\"js\"><span style=\"display:flex;\"><span><span style=\"color:#f92672\">&lt;</span><span style=\"color:#a6e22e\">script</span> <span style=\"color:#a6e22e\">type</span><span style=\"color:#f92672\">=</span><span style=\"color:#e6db74\">&#34;text/javascript&#34;</span><span style=\"color:#f92672\">&gt;</span>\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#66d9ef\">var</span> <span style=\"color:#a6e22e\">utag_data</span><span style=\"color:#f92672\">=</span>{\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#e6db74\">&#34;tealium_event&#34;</span> <span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#34;page_view&#34;</span>,\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#e6db74\">&#34;page_name&#34;</span>     <span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#34;product_page&#34;</span>,\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#e6db74\">&#34;product_id&#34;</span>    <span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#34;423543&#34;</span>,\n</span></span><span style=\"display:flex;\"><span>      <span style=\"color:#e6db74\">&#34;netid_tpid&#34;</span>    <span style=\"color:#f92672\">:</span> <span style=\"color:#e6db74\">&#34;12345&#34;</span>\n</span></span><span style=\"display:flex;\"><span>    };\n</span></span><span style=\"display:flex;\"><span><span style=\"color:#f92672\">&lt;</span><span style=\"color:#960050;background-color:#1e0010\">/script&gt;</span>\n</span></span></code></pre></div></li>\n<li>\n<p><strong>イベントの追跡</strong>: <a href=\"/ja/platforms/javascript/track/#track-events\"><code>utag.link()</code></a>を使用して、ブラウザベースのJavaScript APIからの成功したnetID認証とレスポンスを追跡し、ペイロードに<code>netid_tpid</code>として<code>netid_tpid</code>を含めます：</p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-json\" data-lang=\"json\"><span style=\"display:flex;\"><span><span style=\"color:#960050;background-color:#1e0010\">utag.link(</span>{\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#f92672\">&#34;tealium_event&#34;</span>     : <span style=\"color:#e6db74\">&#34;netid_login&#34;</span>,\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#f92672\">&#34;netid_tpid&#34;</span>        : <span style=\"color:#e6db74\">&#34;12345&#34;</span>,\n</span></span><span style=\"display:flex;\"><span>  <span style=\"color:#960050;background-color:#1e0010\">...</span>\n</span></span><span style=\"display:flex;\"><span>}<span style=\"color:#960050;background-color:#1e0010\">);</span>\n</span></span></code></pre></div></li>\n</ul>\n<h2 id=\"eventstream-api\">EventStream API</h2>\n<p>Tealium CollectタグがブラウザのデータレイヤーからnetIDプロパティをキャプチャした後、このデータはイベント属性として処理されます。</p>\n<p>これを行うには、<code>netid_tpid</code>値をキャプチャするイベント属性を作成します。次の例では、属性はファーストパーティクッキーの値に構成されています：</p>\n<figure><a class=\"slb\" href=\"/images//industries/netid-es-add-attribute.png\"><img src=\"https://docs.tealium.com/images//industries/netid-es-add-attribute.png\"\n         alt=\"netID add attribute\"\n         title=\"netID add attribute\"/>\n    </a>\n</figure>\n<p>netIDの識別子（<code>tpid</code>）は、広告プラットフォームへのファーストパーティ（広告主）IDとしてアクティブ化できます。そのためのコネクタには、以下があります：</p>\n<ul>\n<li><a href=\"/ja/server-side-connectors/adform-segments-connector/\">Adform</a></li>\n<li><a href=\"/ja/server-side-connectors/the-trade-desk-first-party-data-connector/\">The Trade Desk</a></li>\n</ul>\n<h3 id=\"例\">例</h3>\n<p>Adformを使用する場合、<code>netid_tpid</code>イベント属性をAdformのFirst-Party ID属性にマッピングします：</p>\n<figure><a class=\"slb\" href=\"/images//industries/netid-es-attribute-mapping.png\"><img src=\"https://docs.tealium.com/images//industries/netid-es-attribute-mapping.png\"\n         alt=\"netID attribute mapping\"\n         title=\"netID attribute mapping\"/>\n    </a>\n</figure>\n<h2 id=\"audiencestream-cdp\">AudienceStream CDP</h2>\n<p>このデータはイベント属性として処理され、リアルタイム訪問プロファイル上の訪問属性として保存されます。</p>\n<p>これを行うには、訪問プロファイルの訪問文字列属性を<code>netid_tpid</code>イベント属性値に構成します。次の例では、属性はファーストパーティクッキーの値に構成されています：</p>\n<figure><a class=\"slb\" href=\"/images//industries/netid-as-add-attribute.png\"><img src=\"https://docs.tealium.com/images//industries/netid-as-add-attribute.png\"\n         alt=\"netID add attribute\"\n         title=\"netID add attribute\"/>\n    </a>\n</figure>\n<p>訪問IDは、netIDを認証方法として使用する訪問のオーディエンスを作成するために使用できます。</p>\n<figure><a class=\"slb\" href=\"/images//industries/netid-as-new-audience.png\"><img src=\"https://docs.tealium.com/images//industries/netid-as-new-audience.png\"\n         alt=\"netID new audience\"\n         title=\"netID new audience\"/>\n    </a>\n</figure>\n<p>AdformやThe Trade Deskなどの広告プラットフォームへのリアルタイムアクティブ化には、それらのTealiumコネクタを使用します：</p>\n<ul>\n<li><a href=\"/ja/server-side-connectors/adform-segments-connector/\">Adform</a></li>\n<li><a href=\"/ja/server-side-connectors/the-trade-desk-first-party-data-connector/\">The Trade Desk</a></li>\n</ul>\n<h2 id=\"参考文献\">参考文献</h2>\n<ul>\n<li><a href=\"https://developerzone.netid.dev/1.6/cmp/browser-based/\">netID: ブラウザベースのJavaScript API</a></li>\n<li><a href=\"/ja/server-side-connectors/adform-segments-connector/\">Adform: セグメントコネクタ</a></li>\n<li><a href=\"https://www.adformhelp.com/hc/en-us/articles/9740579323153-Use-First-Party-IDs-for-Site-Tracking\">Adform: ファーストパーティIDの使用</a></li>\n<li><a href=\"/ja/server-side-connectors/the-trade-desk-first-party-data-connector/\">The Trade Deskファーストパーティデータコネクタ</a></li>\n<li><a href=\"/ja/iq-tag-management/data-layer/about/\">Tealiumデータレイヤー</a></li>\n</ul>\n"
        }  

    , 
        {
            "weight": "0",
            "url": "https://docs.tealium.com/ja/client-side-tags/neustar-fabrick-id-tag/",
            "title": "Neustar Fabrick IDタグ構成ガイド",
            "body": "<p class=\"note\"><i class=\"fa fa-exclamation-triangle\"></i>このタグを<code>utag</code>バージョン4.50以降で使用する場合、<code>utag.js</code>の<a href=\"/ja/platforms/javascript/settings/#always_set_v_id\"><code>always_set_v_id</code>構成</a>を<code>true</code>に構成する必要があります。この構成により、訪問IDがクッキー同期に利用可能になります。詳細については、<a href=\"/ja/platforms/javascript/version-4-50/#updating-to-version-450-or-later\">utag 4.50リリースノート</a>と<a href=\"https://support.tealiumiq.com/en/support/solutions/articles/36000535887-considerations-for-tealium-visitor-id-when-upgrading-to-utag-4-50-\">utag 4.50+へのアップグレード時のtealium_visitor_idに関する考慮事項</a>を参照してください。</p>\n<h2 id=\"タグのヒント\">タグのヒント</h2>\n<ul>\n<li>空白の場合、Tealiumアカウントとプロファイルは自動的に入力されます</li>\n<li>次の属性は<code>neustar_fabrickId_sync</code>を通じてTealiumサーバーサイドに送信されます：\n<ul>\n<li><code>fabrickId</code></li>\n<li><code>visitor_id</code></li>\n<li><code>element_one</code> (オプション)</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"タグ構成\">タグ構成</h2>\n<p>タグマーケットプレイスに移動して新しいタグを追加します。詳細については、<a href=\"/ja/iq-tag-management/tags/about/\">タグについて</a>を参照してください。</p>\n<p>タグを追加する際には、以下の構成を行います：</p>\n<ul>\n<li><strong>APIキー</strong>：必須。Neustarが提供するAPIキー。</li>\n<li><strong>FabrickId Timespan Days</strong>：<code>fabrickId</code>が変更される頻度。デフォルトは7日です。</li>\n<li><strong>Tealiumアカウント</strong>：あなたのTealiumアカウント。</li>\n<li><strong>Tealiumプロファイル</strong>：あなたのTealiumプロファイル。</li>\n<li><strong>データソースキー</strong>：必須。Tealiumサーバーサイドからのデータソースキー。</li>\n</ul>\n<h2 id=\"ロードルール\">ロードルール</h2>\n<p>すべてのページでタグをロードするか、タグがロードされる条件を構成します。詳細については、<a href=\"/ja/iq-tag-management/load-rules/about/\">ロードルールについて</a>を参照してください。</p>\n<h2 id=\"データマッピング\">データマッピング</h2>\n<p>マッピングは、データレイヤー変数からベンダータグの対応する宛先変数にデータを送信するプロセスです。詳細については、<a href=\"/ja/iq-tag-management/data-mappings/about/\">データマッピングについて</a>を参照してください。</p>\n<p>利用可能なカテゴリーは以下の通りです：</p>\n<h3 id=\"スタンダード\">スタンダード</h3>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:left\">変数</th>\n<th style=\"text-align:left\">説明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style=\"text-align:left\">Base Url (<code>base_url</code>)</td>\n<td style=\"text-align:left\">文字列</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">Event Url (<code>event_url</code>)</td>\n<td style=\"text-align:left\">文字列</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">Api Key (<code>apiKey</code>)</td>\n<td style=\"text-align:left\">文字列</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">FabrickId Timespan Days (<code>daysSyncPeriod</code>)</td>\n<td style=\"text-align:left\">数値</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">Tealium Account (<code>tealium_account</code>)</td>\n<td style=\"text-align:left\">文字列</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">Tealium Profile (<code>tealium_profile</code>)</td>\n<td style=\"text-align:left\">文字列</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">Data Source Key (<code>tealium_datasource</code>)</td>\n<td style=\"text-align:left\">文字列</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">ハッシュ化されたメールアドレス (<code>e</code>)</td>\n<td style=\"text-align:left\">文字列</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">E.164標準のハッシュ化された電話番号 (<code>p</code>)</td>\n<td style=\"text-align:left\">文字列</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">IPv4アドレス (<code>raw</code> i4)</td>\n<td style=\"text-align:left\">文字列</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">IPv6アドレス (<code>raw</code> i6)</td>\n<td style=\"text-align:left\">文字列</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">モバイル広告ID (<code>m</code>)</td>\n<td style=\"text-align:left\">文字列</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">広告用識別子 (<code>ia</code>)</td>\n<td style=\"text-align:left\">文字列</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">IFAのソースを示す (<code>ifa_type</code>)</td>\n<td style=\"text-align:left\">文字列</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">ユーザーが追跡可能かどうかを示す (<code>lmt</code>)</td>\n<td style=\"text-align:left\">文字列</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">パートナーまたは広告主の第一者ユーザーID (<code>1pd</code>)</td>\n<td style=\"text-align:left\">文字列</td>\n</tr>\n</tbody>\n</table>\n"
        }  

    , 
        {
            "weight": "0",
            "url": "https://docs.tealium.com/ja/client-side-tags/tapad-cookie-matching-service-tag/",
            "title": "TAPAD Cookie Matching Serviceタグ構成ガイド",
            "body": "<p class=\"note\"><i class=\"fa fa-exclamation-triangle\"></i>このタグを<code>utag</code>バージョン4.50以降で使用する場合、<code>utag.js</code>の<a href=\"/ja/platforms/javascript/settings/#always_set_v_id\"><code>always_set_v_id</code>構成</a>を<code>true</code>に構成する必要があります。この構成により、訪問IDがクッキー同期に利用可能になります。詳細については、<a href=\"/ja/platforms/javascript/version-4-50/#updating-to-version-450-or-later\">utag 4.50リリースノート</a>と<a href=\"https://support.tealiumiq.com/en/support/solutions/articles/36000535887-considerations-for-tealium-visitor-id-when-upgrading-to-utag-4-50-\">utag 4.50+へのアップグレード時のtealium_visitor_idの考慮事項</a>を参照してください。</p>\n<h2 id=\"タグのヒント\">タグのヒント</h2>\n<ul>\n<li>このタグは、Tealium訪問セッションごとに一度だけ発火します。</li>\n<li>以下のサーバーサイド属性をTealiumに戻します：\n<ul>\n<li><code>tapad_id</code></li>\n</ul>\n</li>\n</ul>\n<h2 id=\"タグ構成\">タグ構成</h2>\n<p>まず、Tealiumのタグマーケットプレイスに移動し、TAPAD Cookie Matching Serviceタグを追加します（<a href=\"/ja/iq-tag-management/tags/manage/\">タグの追加方法</a>について詳しくはこちら）。</p>\n<p>タグを追加した後、以下の構成を行います：</p>\n<ul>\n<li><strong>Tealiumアカウント</strong>\n<ul>\n<li>あなたのTealium AudienceStreamアカウント。</li>\n<li>空白の場合、現在のTealium iQアカウント名が使用されます。</li>\n</ul>\n</li>\n<li><strong>Tealiumプロファイル</strong>\n<ul>\n<li>あなたのTealium AudienceStreamプロファイル。</li>\n<li>空白の場合、現在のTealium iQプロファイル名が使用されます。</li>\n</ul>\n</li>\n<li><strong>パートナーID</strong></li>\n</ul>\n<h2 id=\"データマッピング\">データマッピング</h2>\n<p>マッピングは、<a href=\"/ja/iq-tag-management/data-layer/data-layer-variables/\">データレイヤー変数</a>からベンダータグの対応する宛先変数にデータを送信するプロセスです。変数をタグの宛先にマップする方法については、<a href=\"/ja/iq-tag-management/data-mappings/manage/\">Data Mappings</a>を参照してください。</p>\n<p>利用可能なカテゴリは以下の通りです：</p>\n<h3 id=\"スタンダード\">スタンダード</h3>\n<table>\n<thead>\n<tr>\n<th>変数</th>\n<th>説明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>tealium_account</code></td>\n<td>Tealiumアカウント</td>\n</tr>\n<tr>\n<td><code>tealium_profile</code></td>\n<td>Tealiumプロファイル</td>\n</tr>\n<tr>\n<td><code>partner_id</code></td>\n<td>パートナーID</td>\n</tr>\n</tbody>\n</table>\n"
        }  

    , 
        {
            "weight": "0",
            "url": "https://docs.tealium.com/ja/client-side-tags/the-trade-desk-cookie-matching-service-tag/",
            "title": "The Trade Desk Cookie Matching Serviceタグ構成ガイド",
            "body": "<p class=\"note\"><i class=\"fa fa-exclamation-triangle\"></i>このタグを<code>utag</code>バージョン4.50以降で使用する場合、<code>utag.js</code>の<a href=\"/ja/platforms/javascript/settings/#always_set_v_id\"><code>always_set_v_id</code>構成</a>を<code>true</code>に構成する必要があります。この構成により、訪問IDがクッキー同期に利用可能になります。詳細は、<a href=\"/ja/platforms/javascript/version-4-50/#updating-to-version-450-or-later\">utag 4.50リリースノート</a>と<a href=\"https://support.tealiumiq.com/en/support/solutions/articles/36000535887-considerations-for-tealium-visitor-id-when-upgrading-to-utag-4-50-\">utag 4.50+へのアップグレード時のtealium_visitor_idに関する考慮事項</a>を参照してください。</p>\n<h2 id=\"必要条件\">必要条件</h2>\n<ul>\n<li>iQタグ管理</li>\n<li>AudienceStream</li>\n</ul>\n<h2 id=\"動作方法\">動作方法</h2>\n<p>The Trade Desk Cookie Matching Serviceタグは、新しい変数<code>ttd_uuid</code>を構成します。これはセッションクッキーとして、また標準的なデータレイヤー変数として保存されます。このタグはデフォルトでセッションごとに一度だけトリガーされます。</p>\n<p>The Trade Desk Cookie Matching Serviceタグは、Trade Deskのサーバーと通信して現在のユーザーの識別子をリクエストします。この値がタグに返されると、その値はAudienceStreamに渡され、同期されたユーザーIDを含む訪問属性を生成するために使用されます。この属性は、&ldquo;Trade Desk ID (TDID)&ldquo;へのマッピングとしてThe Trade Deskコネクタアクションで使用できます。</p>\n<h2 id=\"データレイヤー変数\">データレイヤー変数</h2>\n<p>タグを追加する前に、以下のデータレイヤー変数を作成します：</p>\n<ul>\n<li><code>ttd_uuid</code>: UDO変数</li>\n<li><code>utag_main_ttd_uuid</code>: ファーストパーティクッキー</li>\n</ul>\n<p>これらの変数は、クッキーマッチングタグによって自動的に生成されます。</p>\n<figure><a class=\"slb\" href=\"/images/client-side-tags/the-trade-desk-cookie.png\"><img src=\"https://docs.tealium.com/images/client-side-tags/the-trade-desk-cookie.png\"\n         alt=\"The Trade Desk Cookie\"\n         title=\"The Trade Desk Cookie\"/>\n    </a>\n</figure>\n<h2 id=\"タグ構成\">タグ構成</h2>\n<p>タグマーケットプレイスに移動し、Trade Desk Cookie Matching Serviceタグを追加します（<a href=\"/ja/iq-tag-management/tags/manage/\">タグの追加方法</a>について詳しくはこちらをご覧ください）。</p>\n<p>タグを追加した後、以下の構成を行います：</p>\n<ul>\n<li><strong>Tealiumアカウント</strong>: The Trade DeskユーザーIDを別のアカウントに送信する場合を除き、空白のままにします。</li>\n<li><strong>Tealiumプロファイル</strong>: The Trade DeskユーザーIDを別のプロファイルに送信する場合を除き、空白のままにします。</li>\n</ul>\n<h3 id=\"ロードルール\">ロードルール</h3>\n<p><a href=\"/ja/iq-tag-management/load-rules/about/\">ロードルール</a>は、サイト上のどこで、いつこのタグのインスタンスをロードするかを決定します。</p>\n<p>このタグは、クッキーマッチがまだ行われていない場合にのみ実行する必要があります。これは、ロードルール条件としてクッキー変数<code>utag_main_ttd_uuid</code>を使用して判断できます：</p>\n<p><code>utag_main_ttd_uuid</code>が定義されていない</p>\n<p>タグには、クッキーが定義されていない場合にのみ発火する組み込みのロジックがありますが、ロードルールを使用することで、現在のセッションで既に実行されている場合にはページ上でタグがロードされないことを保証します。</p>\n<h2 id=\"データマッピング\">データマッピング</h2>\n<p>マッピングは、<a href=\"/ja/iq-tag-management/data-mappings/about/\">データレイヤー変数</a>からベンダータグの対応する宛先変数にデータを送信するプロセスです。変数をタグの宛先にマップする方法については、<a href=\"/ja/iq-tag-management/data-mappings/manage/\">データマッピング</a>を参照してください。</p>\n<table>\n<thead>\n<tr>\n<th><strong>宛先名</strong></th>\n<th><strong>タイプ</strong></th>\n<th><strong>説明</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>tealium_account</code></td>\n<td>文字列</td>\n<td>ユーザーIDを同期するTealiumアカウント。デフォルトは現在のアカウントです。</td>\n</tr>\n<tr>\n<td><code>tealium_profile</code></td>\n<td>文字列</td>\n<td>ユーザーIDを同期するTealiumプロファイル。デフォルトは現在のプロファイルです。</td>\n</tr>\n<tr>\n<td><code>gdpr</code></td>\n<td>ブール値</td>\n<td>現在のユーザーが欧州連合（EU）に居住しており、したがってGDPRの対象であることを示す値を渡します。<ul><li>ユーザーがGDPRの対象でない場合は<code>0</code>（デフォルト）、GDPRの対象である場合は<code>1</code>に構成します。<br> この値を<code>0</code>に構成し、訪問がEUに位置している場合、Cookie Sync Serviceは空の配列を返します。</li></ul></td>\n</tr>\n<tr>\n<td><code>gdpr_consent_string</code></td>\n<td>文字列</td>\n<td>Base64 URLエンコードされたGDPR同意文字列。</td>\n</tr>\n<tr>\n<td><code>domain</code></td>\n<td>文字列</td>\n<td>クッキー同期が開始するドメイン。<br> 注意: このドメインをThe Trade Deskの構成で<strong>許可リスト</strong>に追加する必要があります。</td>\n</tr>\n<tr>\n<td><code>order_id</code></td>\n<td>文字列</td>\n<td><code>_corder</code> e-commerce拡張値を上書きします。</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"audiencestream構成\">AudienceStream構成</h2>\n<p>変更を保存し、Prodに公開した後、新しい変数はAudienceStreamで利用可能になります。<code>ttd_uuid</code>変数はイベント属性として表示されますが、The Trade Deskコネクタアクションで使用できるように、訪問属性として作成する必要があります。</p>\n<p><code>ttd_uuid</code>値を保存する訪問属性を追加するには：</p>\n<ol>\n<li><strong>Transform &gt; Visitor / Visit Attributes</strong>に移動します。</li>\n<li><strong>属性を追加</strong>をクリックし、<strong>訪問</strong>スコープ、次に<strong>文字列</strong>データタイプを選択します。</li>\n<li>名前に<code>Trade Desk User ID</code>を入力します。</li>\n<li><strong>エンリッチメントを追加</strong>をクリックし、<strong>文字列を構成</strong>を選択します。</li>\n<li><strong>Set String to</strong>ドロップダウンメニューから<code>ttd_uuid</code>を選択します。</li>\n<li><strong>完了</strong>をクリックします。</li>\n</ol>\n<p>これで、Trade Desk User IDが入力された訪問のオーディエンスを作成できます。これらのオーディエンスは、The Trade Deskとのコネクタアクションで使用されます。この属性をThe Trade Deskコネクタアクションの&quot;Trade Desk ID (TDID)&ldquo;パラメータにマップします。</p>\n"
        }  

    , 
        {
            "weight": "0",
            "url": "https://docs.tealium.com/ja/server-side-connectors/the-trade-desk-third-party-data-connector/",
            "title": "The Trade Desk サードパーティデータコネクタ構成ガイド",
            "body": "<p class=\"note\"><i class=\"fa fa-exclamation-triangle\"></i>このコネクタは現在コネクタマーケットプレイスで利用できません。The Trade Desk サードパーティデータコネクタを使用するには、TealiumとThe Trade Deskのアカウントマネージャーのサポートが必要です。このコネクタを使用するには、Tealiumのアカウントマネージャーに連絡してください。</p>\n<h2 id=\"api情報\">API情報</h2>\n<p>このコネクタは以下のベンダーAPIを使用します：</p>\n<ul>\n<li>API名：The Trade Desk API</li>\n<li>APIバージョン：v3.0</li>\n<li>APIエンドポイント：<code>https://bulk-data.adsrvr.org</code>\n<ul>\n<li>データレートエンドポイント：<code>POST /datarate/batch</code></li>\n<li>サードパーティエンドポイント：<code>POST /data/thirdparty</code></li>\n</ul>\n</li>\n<li>ドキュメント：<a href=\"https://partner.thetradedesk.com/v3/portal/data/doc/post-data-thirdparty\">The Trade Desk API</a></li>\n</ul>\n<h2 id=\"バッチ制限\">バッチ制限</h2>\n<p>このコネクタは、ベンダーへの大量データ転送をサポートするためにバッチリクエストを使用します。並列処理により、イベントがベンダーに順不同で到達する可能性があります。順序が重要な場合は、イベントにシーケンス値を追加してください。詳細については、<a href=\"/ja/server-side/connectors/batched-actions/\">バッチアクション</a>を参照してください。リクエストは、次のいずれかの閾値に達するか、プロファイルが公開されるまでキューに入れられます：</p>\n<ul>\n<li>最大リクエスト数：10000</li>\n<li>最古のリクエストからの最大時間：30分</li>\n<li>リクエストの最大サイズ：2 MB</li>\n</ul>\n<h2 id=\"構成\">構成</h2>\n<p>コネクタマーケットプレイスにアクセスし、新しいコネクタを追加します。コネクタの追加方法についての一般的な説明は、<a href=\"/ja/server-side/connectors/about/\">コネクタについて</a>を参照してください。</p>\n<p>コネクタを追加した後、次の構成を構成します：</p>\n<ul>\n<li><strong>シークレットキー</strong>：（必須）シークレットキー。</li>\n<li><strong>APIベースURL</strong>：（必須）APIベースURLを選択します。</li>\n</ul>\n<h2 id=\"管理者構成\">管理者構成</h2>\n<h3 id=\"認証トークンの生成\">認証トークンの生成</h3>\n<p>管理タスクを実行する前に、有効なユーザー名とパスワードで認証トークンを生成する必要があります。認証は管理タスクにのみ適用され、コネクタの動作には必要ありません。</p>\n<ul>\n<li><strong>ログイン</strong>：（必須）ログインを入力します。</li>\n<li><strong>パスワード</strong>：（必須）パスワードを入力します。</li>\n</ul>\n<h3 id=\"タクソノミーセグメントの作成\">タクソノミーセグメントの作成</h3>\n<p>詳細については、<a href=\"https://partner.thetradedesk.com/v3/portal/data/doc/DataTaxonomyDesign#top\">The Trade Deskパートナーポータル：サードパーティデータタクソノミーデザイン</a>を参照してください。</p>\n<table>\n<thead>\n<tr>\n<th>パラメーター</th>\n<th>説明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>プロバイダーID</td>\n<td>(必須) アカウントマネージャーが提供したプロバイダーアカウントの一意のIDです。</td>\n</tr>\n<tr>\n<td>プロバイダーエレメントID</td>\n<td>(必須) タクソノミー設計時にセグメントに割り当てられた一意のIDです。このIDは512文字以下でなければなりません。これは作成後に変更することはできません。</td>\n</tr>\n<tr>\n<td>親エレメントID</td>\n<td>(必須) タクソノミー内の親セグメントからのプロバイダーエレメントID値です。このパラメーターはタクソノミーの階層構造を確立します。これは作成後に変更することはできません。すべてのデータプロバイダーはタクソノミーの<code>ROOT</code>基本エレメントを使用します。</td>\n</tr>\n<tr>\n<td>表示名</td>\n<td>(必須) DMPユーザーインターフェースでバイヤーが見るセグメントの名前です。表示名は256文字以下である必要がありますが、特に下位の子エレメントのフルパスが長い場合は、読みやすさのために50文字以下を推奨します。タブや特殊文字（<code>'</code>, <code>&quot;</code>, <code>^</code>など）は含めないでください。</td>\n</tr>\n<tr>\n<td>購入可能</td>\n<td>(必須) セグメントをDMPで見えるようにし、バイヤーが利用できるように構成します。コンテナエレメントの場合、このプロパティ値は<code>false</code>に構成します。これは、子エレメントを整理し、料金を割り当てるためにのみ使用されます。購入可能なセグメントのプロパティ値を<code>false</code>に変更した場合、そのセグメントをオーディエンスに持っている顧客はキャンペーンが終了するまでそれを使用できます。</td>\n</tr>\n<tr>\n<td>説明</td>\n<td>(オプション) DMPで顧客に表示されるデータセグメントの説明です。説明は4,000文字以下である必要がありますが、読みやすさのために256文字以下を推奨します。</td>\n</tr>\n<tr>\n<td>直接IPターゲティング</td>\n<td>(オプション) <code>true</code>の場合、使用または作成される<code>TargetingData</code>はデフォルトの<code>7</code>（<code>ThirdPartyData</code>）ではなく、タイプ<code>16</code>（<code>DirectIpTargeting</code>）です。</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"セグメントに料金を割り当てる\">セグメントに料金を割り当てる</h3>\n<table>\n<thead>\n<tr>\n<th>パラメーター</th>\n<th>説明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>プロバイダーID</td>\n<td>(必須) アカウントマネージャーが提供したプロバイダーアカウントの一意のIDです。</td>\n</tr>\n<tr>\n<td>プロバイダーエレメントID</td>\n<td>(必須) このデータエレメントをシステムで識別する一意のIDです。</td>\n</tr>\n<tr>\n<td>ブランドID</td>\n<td>(必須) プロバイダーが管理するブランドの一意のIDです。</td>\n</tr>\n<tr>\n<td>料金レベル</td>\n<td>(必須) サードパーティデータの料金レベルです。アクセスをリクエストするには、技術アカウントマネージャーに連絡してください。<br><code>Partner</code>: 特定のパートナーとその広告主のためのものです。<br><code>Advertiser</code>: 特定の広告主のためのものです。この料金レベルには追加の許可が必要です。</td>\n</tr>\n<tr>\n<td>パートナーID</td>\n<td>(必須) この料金でデータセグメントにアクセスできるパートナーのプラットフォームIDです。</td>\n</tr>\n<tr>\n<td>広告主ID</td>\n<td>(必須) この料金でデータセグメントにアクセスできる広告主のプラットフォームIDです。</td>\n</tr>\n<tr>\n<td>料金タイプ</td>\n<td>(必須) セグメントのデータ料金タイプです。シンジケートされたタクソノミーのすべてのシステムレベルのデータ料金は、メディアコストの割合と最大CPM（千インプレッションあたりのコスト）キャップを使用するハイブリッド料金として割り当てられる必要があります。これは、このプロパティを<code>Hybrid</code>に構成し、<code>CPMRate</code>および<code>PercentOfMediaCostRate</code>の両方の値を提供する必要があることを意味します。カスタムタクソノミーは任意のデータ料金タイプを使用できますが、ハイブリッド料金が強く推奨されます。</td>\n</tr>\n<tr>\n<td>CPM料金額</td>\n<td>(必須) CPM料金額です。</td>\n</tr>\n<tr>\n<td>CPM料金通貨コード</td>\n<td>(必須) CPM料金の通貨コードです。</td>\n</tr>\n<tr>\n<td>メディアコストの割合率</td>\n<td>(オプション) <code>CPMRate</code>キャップと併用するメディアコストの割合です（<strong>料金タイプ</strong>で選択されたハイブリッドデータ料金）。割合を小数で入力してください。</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"アクション\">アクション</h2>\n<table>\n<thead>\n<tr>\n<th>アクション名</th>\n<th style=\"text-align:center\">AudienceStream</th>\n<th style=\"text-align:center\">EventStream</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>サードパーティデータのアップロード</td>\n<td style=\"text-align:center\">✓</td>\n<td style=\"text-align:center\">✗</td>\n</tr>\n<tr>\n<td>サードパーティデータの削除</td>\n<td style=\"text-align:center\">✓</td>\n<td style=\"text-align:center\">✗</td>\n</tr>\n</tbody>\n</table>\n<p>アクションの名前を入力し、ドロップダウンメニューからアクションタイプを選択します。</p>\n<p>次のセクションでは、各アクションのパラメーターとオプションの構成方法について説明します。</p>\n<h3 id=\"サードパーティデータのアップロード\">サードパーティデータのアップロード</h3>\n<h4 id=\"パラメーター\">パラメーター</h4>\n<table>\n<thead>\n<tr>\n<th>パラメーター</th>\n<th>説明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>データプロバイダーID</td>\n<td>(必須) 技術アカウントマネージャーが提供したプロバイダーIDです。</td>\n</tr>\n</tbody>\n</table>\n<h4 id=\"id\">ID</h4>\n<p>少なくとも1つのIDパラメータが必要です。複数のIDを同じリクエストに含めることができます。The Trade Deskは以下のIDをサポートしています：</p>\n<table>\n<thead>\n<tr>\n<th>パラメータ</th>\n<th>説明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>TDID</td>\n<td>このユーザーのThe Trade Desk 36文字のGUID（ダッシュを含む）。</td>\n</tr>\n<tr>\n<td>DAID</td>\n<td>このユーザーの生デバイスIDを36文字のGUID形式（ダッシュを含む）で送信。iOSのIDFAまたはAndroidのAAIDを使用。</td>\n</tr>\n<tr>\n<td>UID2Token (既にSHA256ハッシュ済み)</td>\n<td>ユーザーのUnified ID 2.0、既にSHA256ハッシュ済み。</td>\n</tr>\n<tr>\n<td>UID2Token (SHA256ハッシュを適用)</td>\n<td>ユーザーのUnified ID 2.0にSHA256ハッシュを適用。</td>\n</tr>\n<tr>\n<td>UID2</td>\n<td>ユーザーのUnified ID 2.0を44文字のbase64エンコードされたSHA-256文字列として。詳細は<a href=\"https://partner.thetradedesk.com/v3/portal/data/doc/DataPiiNormalization\">The Trade Desk Partner Portal: PII Normalization and Hash Encoding</a>および<a href=\"https://partner.thetradedesk.com/v3/portal/data/doc/UnifiedIDs\">Unified IDs</a>を参照。</td>\n</tr>\n<tr>\n<td>EUIDToken (既にSHA256ハッシュ済み)</td>\n<td>ユーザーのEuropean Unified ID、既にSHA256ハッシュ済み。</td>\n</tr>\n<tr>\n<td>EUIDToken (SHA256ハッシュを適用)</td>\n<td>ユーザーのEuropean Unified IDにSHA256ハッシュを適用。</td>\n</tr>\n<tr>\n<td>EUID</td>\n<td>ユーザーのEuropean Unified IDを44文字のbase64エンコードされたSHA-256文字列として。詳細は<a href=\"https://partner.thetradedesk.com/v3/portal/data/doc/DataPiiNormalization\">The Trade Desk Partner Portal: PII Normalization and Hash Encoding</a>を参照。EUIDはヨーロッパおよび英国の市場要件に合わせたユーザーの透明性とプライバシー制御を提供し、UID2と同じメールアドレスの正規化とエンコーディングが必要です。詳細は<a href=\"https://partner.thetradedesk.com/v3/portal/data/doc/UnifiedIDs\">The Trade Desk Partner Portal: Unified IDs</a>を参照。</td>\n</tr>\n<tr>\n<td>IDL</td>\n<td>49文字または70文字のRampID（以前はIdentityLinkとして知られていた）。この値はThe Trade Deskのために特別にマッピングされたLiveRampのRampIDでなければなりません。RampIDのマッピングについての詳細は<a href=\"https://sidecar.readme.io/docs/getting-started\">LiveRamp: LiveRamp&rsquo;s Sidecar</a>を参照。</td>\n</tr>\n</tbody>\n</table>\n<h4 id=\"データ\">データ</h4>\n<table>\n<thead>\n<tr>\n<th>パラメータ</th>\n<th>説明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>名前</td>\n<td>（必須）セグメント名。最大128文字。</td>\n</tr>\n<tr>\n<td>TTL in Minutes</td>\n<td>（必須）Time to live (TTL) は、このユーザーが<code>TimeStampUtc</code>値に対してアクティブである時間（分）です。TTLが期限切れになると、そのユーザーはターゲティングには使用されなくなります。最大TTLは259200分（180日）。</td>\n</tr>\n<tr>\n<td>Timestamp</td>\n<td>ユーザーがセグメントに適格であるタイミングのタイムスタンプ。指定されていない場合、タイムスタンプはデータが処理された時点で割り当てられます。このタイムスタンプは、ターゲティングおよび入札調整のためのユーザーの最新性を決定するために使用されます。</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"第三者データの削除\">第三者データの削除</h3>\n<h4 id=\"パラメータ\">パラメータ</h4>\n<table>\n<thead>\n<tr>\n<th>パラメータ</th>\n<th>説明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Data Provider ID</td>\n<td>必須。技術アカウントマネージャーから提供されたプロバイダーID。</td>\n</tr>\n<tr>\n<td>Request Type</td>\n<td><ul><li><strong>オプトアウト</strong>: The Trade Deskは、IDのTTL値を<code>0</code>に構成することにより、データセグメントからIDをオプトアウトし、キャンペーンでのターゲティングを制限します。</li><li><strong>削除</strong>: The Trade Deskは、データセグメントおよび<code>REDS</code>フィードを含むデータセットからIDを削除します。</td>\n</tr>\n</tbody>\n</table>\n"
        }  

    , 
        {
            "weight": "0",
            "url": "https://docs.tealium.com/ja/client-side-tags/the-trade-desk-universal-pixel-tag/",
            "title": "The Trade Desk ユニバーサルピクセルタグ構成ガイド",
            "body": "<h2 id=\"タグの構成\">タグの構成</h2>\n<p>まず、タグマーケットプレイスにアクセスし、プロファイルに The Trade Desk ユニバーサルピクセルタグを追加します（<a href=\"/ja/iq-tag-management/tags/manage/#add-a-tag\">タグの追加</a>を参照）。</p>\n<p>タグを追加した後、以下の構成を構成します：</p>\n<ol>\n<li><strong>広告主 ID</strong>: Trade Desk から提供された広告主 ID を入力します。これはユニバーサルピクセルタグに含まれています。</li>\n<li><strong>ピクセル ID</strong>: Trade Desk から提供されたピクセル ID を入力します。これはユニバーサルピクセルタグに含まれています。</li>\n</ol>\n<p class=\"tip\"><i class=\"fa fa-info-circle\"></i>タグ構成を動的に構成する場合は、データマッピングを使用してください。</p>\n<h2 id=\"ロードルール\">ロードルール</h2>\n<p>すべてのページでタグをロードするか、タグがロードされる条件を構成します。詳細については、<a href=\"/ja/iq-tag-management/load-rules/about/\">ロードルールについて</a>を参照してください。</p>\n<p>推奨されるロードルール：<strong>すべてのページでロード</strong>。</p>\n<h2 id=\"データマッピング\">データマッピング</h2>\n<p>マッピングは、データレイヤー変数からベンダータグの対応する宛先変数へデータを送信するプロセスです。詳細については、<a href=\"/ja/iq-tag-management/data-mappings/about/\">データマッピングについて</a>を参照してください。</p>\n<p>The Trade Desk ユニバーサルピクセルタグの宛先変数は、そのデータマッピングタブに組み込まれています。</p>\n<p>利用可能なカテゴリーは以下の通りです：</p>\n<h3 id=\"標準\">標準</h3>\n<table>\n<thead>\n<tr>\n<th><strong>宛先名</strong></th>\n<th><strong>説明</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>広告主 ID</td>\n<td>Trade Desk から提供された一意の広告主識別子</td>\n</tr>\n<tr>\n<td>ピクセル ID</td>\n<td>Trade Desk から提供された一意のピクセル識別子</td>\n</tr>\n<tr>\n<td><code>td1</code></td>\n<td>カスタマーパラメーター #1</td>\n</tr>\n<tr>\n<td><code>td2</code></td>\n<td>カスタマーパラメーター #2</td>\n</tr>\n<tr>\n<td><code>td3</code></td>\n<td>カスタマーパラメーター #3</td>\n</tr>\n<tr>\n<td><code>td4</code></td>\n<td>カスタマーパラメーター #4</td>\n</tr>\n<tr>\n<td><code>td5</code></td>\n<td>カスタマーパラメーター #5</td>\n</tr>\n<tr>\n<td><code>td6</code></td>\n<td>カスタマーパラメーター #6</td>\n</tr>\n<tr>\n<td><code>td7</code></td>\n<td>カスタマーパラメーター #7</td>\n</tr>\n<tr>\n<td><code>td8</code></td>\n<td>カスタマーパラメーター #8</td>\n</tr>\n<tr>\n<td><code>td9</code></td>\n<td>カスタマーパラメーター #9</td>\n</tr>\n<tr>\n<td><code>td10</code></td>\n<td>カスタマーパラメーター #10</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"同意gdpr\">同意（GDPR）</h3>\n<p>同意パラメーターは、URLベースのサービスに対するIAB仕様に従います。</p>\n<p>参照：<a href=\"https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/URL-based%20Consent%20Passing_%20Framework%20Guidance.md\">IAB GDPR Consent Passing for URL-Based Services</a></p>\n<p class=\"tip\"><i class=\"fa fa-info-circle\"></i>URLの作成者は、これらのパラメーターが一度だけ追加され、それを期待して適切に処理できるサービスに渡されることを確認する必要があります。</p>\n<table>\n<thead>\n<tr>\n<th>宛先名</th>\n<th><strong>値</strong></th>\n<th><strong>説明</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>gdpr</code></td>\n<td><code>0</code> / <code>1</code></td>\n<td>GDPRがユーザーに適用されるかどうかを決定します。<code>1</code>の値は<code>はい</code>を意味し、デフォルト値の<code>0</code>は<code>いいえ</code>を意味します。</td>\n</tr>\n<tr>\n<td><code>gdpr_consent</code></td>\n<td>URLセーフなbase64エンコードされたGDPR同意文字列</td>\n<td><code>gdpr</code>が<code>1</code>の値を持ち、<code>gdpr_consent</code>が空の文字列でない場合にのみ、このパラメーターを渡すべきです。</td>\n</tr>\n<tr>\n<td><code>gdpr_pd</code></td>\n<td><code>0</code> / <code>1</code></td>\n<td>このパラメーターはオプションで、個人データが含まれているかどうかを決定します。<code>1</code>の値は<code>はい</code>を意味し、デフォルト値の<code>0</code>は<code>いいえ</code>を意味します。</td>\n</tr>\n</tbody>\n</table>\n<p class=\"note\"><i class=\"fa fa-exclamation-triangle\"></i>IPアドレスやトラッキングピクセルクッキーなどの他の個人データがリクエストの一部として渡される場合があります。<code>gdpr</code>および<code>gdpr_consent</code>パラメーターは、識別クッキーまたは他の個人データが構成および/または使用されるかどうかを判断するために呼び出し先によって使用されるべきです。</p>\n"
        }  

    , 
        {
            "weight": "0",
            "url": "https://docs.tealium.com/ja/server-side-connectors/the-trade-desk-first-party-data-connector/",
            "title": "The Trade Desk 第一者データコネクタ構成ガイド",
            "body": "<h2 id=\"構成\">構成</h2>\n<p>コネクタマーケットプレイスにアクセスし、新しいコネクタを追加します。コネクタを追加する一般的な手順については、<a href=\"/ja/server-side/connectors/about/\">コネクタについて</a>を参照してください。</p>\n<p>コネクタを追加した後、以下の構成を構成します：</p>\n<ul>\n<li><strong>エージェンシー シークレット キー</strong>：The Trade Deskから提供されたシークレットキー。</li>\n</ul>\n<h2 id=\"アクション\">アクション</h2>\n<table>\n<thead>\n<tr>\n<th>アクション名</th>\n<th style=\"text-align:center\">AudienceStream</th>\n<th style=\"text-align:center\">EventStream</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>第一者広告主データを送信</td>\n<td style=\"text-align:center\">✓</td>\n<td style=\"text-align:center\">✓</td>\n</tr>\n</tbody>\n</table>\n<p>アクションの名前を入力し、ドロップダウンメニューからアクションタイプを選択します。</p>\n<p>次のセクションでは、各アクションのパラメータとオプションの構成方法について説明します。</p>\n<h3 id=\"第一者広告主データを送信\">第一者広告主データを送信</h3>\n<p class=\"note\"><i class=\"fa fa-exclamation-triangle\"></i><code>TDID</code>パラメータまたは<code>UID2</code>パラメータのいずれかを使用してください。両方に値を構成するとコネクタエラーが発生する可能性があります。</p>\n<h4 id=\"パラメータ\">パラメータ</h4>\n<table>\n<thead>\n<tr>\n<th><strong>パラメータ</strong></th>\n<th><strong>説明</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>データセンターリージョン</td>\n<td>(必須) ユーザーデータの出所に最も近い地理的なデータセンターを選択します。</td>\n</tr>\n</tbody>\n</table>\n<h4 id=\"広告主カラム\">広告主カラム</h4>\n<table>\n<thead>\n<tr>\n<th><strong>パラメータ</strong></th>\n<th><strong>説明</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>広告主ID</td>\n<td>(必須) 広告主ID。利用可能なタイプは<code>DAID</code>、<code>TDID</code>、<code>UID2</code>、<code>EUID</code>、<code>IDL</code> (<code>RampID</code>)、<code>ID5</code>、<code>netID</code>です。IDは一つだけ必要です。</td>\n</tr>\n<tr>\n<td>デバイス広告ID (DAID)</td>\n<td>デバイス広告ID (<code>DAID</code>)</td>\n</tr>\n<tr>\n<td>Trade Desk ID (TDID)</td>\n<td>Trade Desk ID (<code>TDID</code>)</td>\n</tr>\n<tr>\n<td>統合ID (UID2 既にハッシュ化されている場合)</td>\n<td>統合ID (<code>UID2</code>)。既にハッシュ化されている場合は、<strong>既にSHA256ハッシュ化されている</strong>オプションを使用し、空白をトリムし、小文字に変換し、SHA256を使用してハッシュ化された値を提供します。詳細については、<a href=\"/ja/server-side/functions/event-visitor-functions/uid2/\">UID2を生成する関数の使用</a>を参照してください。</td>\n</tr>\n<tr>\n<td>UID2トークン (暗号化された広告トークン)</td>\n<td>暗号化されたUID2広告トークン。このトークンは大文字と小文字を区別します。</td>\n</tr>\n<tr>\n<td>アイデンティティリンク (IDL)</td>\n<td>アイデンティティリンク (<code>IDL</code>)</td>\n</tr>\n</tbody>\n</table>\n<h4 id=\"データカラム\">データカラム</h4>\n<table>\n<thead>\n<tr>\n<th><strong>パラメータ</strong></th>\n<th><strong>説明</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>TTLを分単位で上書き</td>\n<td>生存時間 (<code>ttl</code>) を分単位で上書きします。最大 <code>ttl</code> は259200分 (180日) です。</td>\n</tr>\n<tr>\n<td>タイムスタンプを上書き</td>\n<td>タイムスタンプを上書き</td>\n</tr>\n<tr>\n<td>データ名</td>\n<td>(必須) データ名</td>\n</tr>\n</tbody>\n</table>\n"
        }  

    ]
}
