From cfaca7c0eeba63f6f7632f99d54a4ec7203a40fb Mon Sep 17 00:00:00 2001 From: Yoshihiko Miyaichi Date: Wed, 28 Aug 2024 10:32:14 +0900 Subject: [PATCH 01/25] updates to client-side integration page + associated mods. --- .../current/getting-started/gs-account-setup.md | 2 +- .../guides/integration-options-publisher-web.md | 2 +- .../current/portal/client-side-integration.md | 16 ++++++++-------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-account-setup.md b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-account-setup.md index 12704aa09..6ef7aeab4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-account-setup.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-account-setup.md @@ -41,7 +41,7 @@ UID2 に興味を示していただいたら、詳細を詰めるために担当 パブリッシャーが [mobile](../overviews/overview-publishers.md#mobile-integrations) ではなく [web](../overviews/overview-publishers.md#web-integrations) にパブリッシングする場合で、UID2 を実装してトークンが Client-Side で生成されるようにしたい場合は、サイトの **ドメイン名** のリストも提供する必要があります。これはセキュリティ対策であり、Client-Side 実装のためだけです。 :::tip -アカウント設定に必要なのは、トップレベルのドメインだけです。たとえば、example.com、shop.example.com、example.org の Client-Side でトークンを生成するために UID2 を実装する場合、ドメイン名 example.com と example.org だけを提供します。 +アカウント設定に必要なのは、ルートレベルのドメインだけです。たとえば、example.com、shop.example.com、example.org の Client-Side でトークンを生成するために UID2 を実装する場合、ドメイン名 example.com と example.org だけを提供します。 ::: ### Client-Side Mobile Integrations diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-options-publisher-web.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-options-publisher-web.md index ac2e46bf4..15e9ff0d0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-options-publisher-web.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-options-publisher-web.md @@ -81,7 +81,7 @@ Client-Side で UID2 Token を生成することには、次のような利点 - コードは消費者のウェブページ上の Client-Side で実行され、Server-Side のコーディングは必要ありません。 - トークンの生成、トークンのリフレッシュ、トークンのビッドストリームへの受け渡しなど、すべての機能を処理する Prebid インテグレーションがあります。Prebid 8.21.0 以降を使用している場合、これが最もシンプルで高速な実装オプションです。 -Client-Side のインテグレーションを選択した場合、アカウント設定の一環として、セキュリティのためにトップレベルドメインのリストを提供する必要があります。詳細については、アカウント設定ページの [Client-Side Web Integrations](../getting-started/gs-account-setup.md#client-side-web-integrations) を参照してください。 +Client-Side のインテグレーションを選択した場合、アカウント設定の一環として、セキュリティのためにルートレベルドメインのリストを提供する必要があります。詳細については、アカウント設定ページの [Client-Side Web Integrations](../getting-started/gs-account-setup.md#client-side-web-integrations) を参照してください。 次の表は、Client-Side で UID2 Token を生成したいパブリッシャーが、ウェブページから UID2 Token を生成するためのオプションと、それに対応するドキュメントリソースをまとめたものです。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/portal/client-side-integration.md b/i18n/ja/docusaurus-plugin-content-docs/current/portal/client-side-integration.md index e8907ae4d..b4c7236d3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/portal/client-side-integration.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/portal/client-side-integration.md @@ -7,16 +7,16 @@ sidebar_position: 09 # Client-Side Integration -UID2 Portal では、Client-Side でトークンを生成する実装オプションを使用する場合、次の表に示す各値の 1 つ以上を定義する必要があります。 +UID2 Portal では、Client-Side でトークンを生成する実装オプションを使用する場合、実装タイプに該当する以下の値を定義する必要があります: -| Value | Details | Documentation Link | -| :--- | :--- | :--- | -| Key pair | 少なくとも一つ。実装では、公開鍵を共有します。 | [Subscription ID and Public Key](getting-started/gs-credentials.md#subscription-id-and-public-key) | -| Domain | 少なくとも1つ。ルートレベルドメインの完全なリストを提供します。 | [Client-Side Web Integrations](../getting-started/gs-account-setup.md#client-side-web-integrations) | +| Value | Implementation Type | Details | Documentation Link | +| :--- | :--- | :---| :---| +| Key pair | すべて (Web または Mobile) | 少なくとも1つ。実装では、公開鍵を共有します。 | [Subscription ID and Public Key](../getting-started/gs-credentials.md#subscription-id-and-public-key) | +| Domain | Web | 少なくとも1つ。提供する必要があるのは、ルートレベルドメインの完全なリストです。 | [Client-Side Implementation for Publishers](../getting-started/gs-account-setup.md#client-side-implementation-for-publishers) | | Mobile App ID | Mobile | Android App ID、iOS/tvOS Bundle ID、iOS App Store IDなど、モバイルアプリに適用されるID。 | [Client-Side Mobile Integrations](../getting-started/gs-account-setup.md#client-side-mobile-integrations) | :::important -サイトのルートレベルドメインの完全なリストを提供することが重要です。これは、クライアントサイドの実装にのみ関連するセキュリティ対策です。UID2 Portal で定義されていないドメインの場合、そのドメインからの UID2 Token リクエストは失敗します。 +サイトのルートレベルドメインの完全なリストを提供することが重要です。これは、Client-Side の実装にのみ関連するセキュリティ対策です。UID2 Portal で定義されていないドメインの場合、そのドメインからの UID2 Token リクエストは失敗します。 ::: Client-Side インテグレーションページでは、これらの値を設定および管理するためのすべてのアクティビティを実行できます。次の内容が含まれます: @@ -25,7 +25,7 @@ Client-Side インテグレーションページでは、これらの値を設 - [Adding and Managing Mobile App IDs](#adding-and-managing-mobile-app-ids) :::note -Client-Side インテグレーションページに移動すると、少なくとも 1 つのキーペアと、少なくとも 1 つのトップレベル(ルートレベル)ドメインを作成していない場合、不足している構成項目を提供するよう促されます。 +Client-Side インテグレーションページに移動すると、少なくとも 1 つのキーペアと、少なくとも 1 つのルートレベルドメインまたはモバイルアプリ ID を作成していない場合、不足している構成項目を提供するよう促されます。 ::: ## Client-Side Implementation Options @@ -116,7 +116,7 @@ Client-Side インテグレーションページでは、次のアクティビ 1. **Client-Side Integration** ページに移動し、**Add Domains** をクリックします。 1. **Add Domains** オーバーレイで、ドメインのリストを入力または貼り付けます。注: - - ドメインのリストの区切り文字として、次のものが有効です: カンマ、セミコロン、スペース、タブ、または改行。 + - リストの区切り文字として、次のものが有効です: カンマ、セミコロン、スペース、タブ、または改行。 - 追加するドメインはデフォルトでリストに追加されます。既存のリストを置き換える場合は、**Replace all existing domains with the new ones** をチェックします。 1. **Add Domains** をクリックします。 From 8a84d6b22548517ffcf8c8a44fb5460cf526d753 Mon Sep 17 00:00:00 2001 From: Yoshihiko Miyaichi Date: Wed, 28 Aug 2024 10:47:34 +0900 Subject: [PATCH 02/25] Add instructions on scraping metrics for Azure --- .../current/guides/operator-guide-azure-enclave.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/operator-guide-azure-enclave.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/operator-guide-azure-enclave.md index 1cbfecb47..23e62135d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/operator-guide-azure-enclave.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/operator-guide-azure-enclave.md @@ -112,7 +112,13 @@ az group create --name {RESOURCE_GROUP_NAME} --location {LOCATION} ロケーションには、いくつかの制限があります: - UID2 Private Operator for Azure は、次の地域ではサポートされていません: Europe、China。 -- Azure 仮想ネットワークのデプロイメント可用性については、Azure ドキュメントの [Linux container groups](https://learn.microsoft.com/en-us/azure/container-instances/container-instances-region-availability#linux-container-groups) を参照してください。表の **Confidential SKU** 列が **Y** に設定されているリージョンのみにデプロイできます。 +- Azure 仮想ネットワーク展開の可用性については、Azure ドキュメントの「Linux container groups(https://learn.microsoft.com/en-us/azure/container-instances/container-instances-resource-and-quota-limits#confidential-container-resources-preview) を確認し、Confidential Container の地域サポートの可用性を確認してください。 + +- 場所のエイリアスを取得するには、次のコマンドを実行します。 + +``` +az account list-locations -o table +``` ### Complete Key Vault and Managed Identity Setup @@ -286,6 +292,11 @@ import AttestFailure from '/docs/snippets/_private-operator-attest-failure.mdx'; +### Scraping Metrics +Azure の Private Operator は、ポート 9080 で `/metrics` エンドポイントを介して [Prometheus-formatted metric](https://prometheus.io/docs/concepts/data_model/) を公開します。これらのメトリクスを収集して集計するために、Prometheus 互換のスクレイパーを使用できます。 + +スクレイパーは、Private Operator が実行されている VNet にアクセスできる必要があります。ロードバランサーに `/metrics` エンドポイントへのアクセスを許可することは勧めません。 + ## Upgrading UID2 Azure Confidential Container の新しいバージョンがリリースされると、Private Operator は新しいリリースリンクを含む更新通知のメールを受信します。アップグレードのためのウィンドウがあり、その後、古いバージョンは非アクティブ化され、サポートされなくなります。 From b0b828734a378fa58769bee0e507cf4b6bbb9074 Mon Sep 17 00:00:00 2001 From: Yoshihiko Miyaichi Date: Wed, 28 Aug 2024 10:58:00 +0900 Subject: [PATCH 03/25] Optout handling updates in JS/prebid.js CSTG guides --- .../integration-javascript-client-side.md | 24 ++++++++++++------- .../guides/integration-prebid-client-side.md | 2 ++ 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-javascript-client-side.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-javascript-client-side.md index 2d999be19..a4aec9cfc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-javascript-client-side.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-javascript-client-side.md @@ -281,7 +281,9 @@ await __uid2.setIdentityFromPhoneHash( 既存のトークンをチェックし、使用またはリフレッシュすることで、このコストを回避できる可能性があります。これを行うには [__uid2.isLoginRequired](../sdks/sdk-ref-javascript#isloginrequired-boolean) を呼び出し、ブール値を受け取ります。これが `true` の場合、UID2 SDK は既存のリソースで新しい Advertising Token を作成できず、DII はまったく新しい UID2 Token を生成する必要があることを意味します。 -以下のコードスニペットは、SDK for JavaScript とインテグレーションして、上記の 2 つのシナリオを実現する方法を示しています。—トークンがない状態から開始し、既存の UID2 Token が見つかった場合はそれを再利用/リフレッシュします。 +DII を提供すると、[__uid2.isLoginRequired](../sdks/sdk-ref-javascript#isloginrequired-boolean) が `false` の値を返す可能性があります。これは、ユーザーが UID2 からオプトアウトしている場合に発生します。UID2 SDK for JavaScript は、ユーザーのオプトアウトを受け入れ、UID2 Token を生成しないため、同じ DII を使用していても、`setIdentity` メソッドのいずれかを呼び出しても UID2 Token を生成しません。オプションとして、このような呼び出し実行しないようにすることもできます。 + +以下のコードスニペットは、UID2 SDK for JavaScript とインテグレーションして、上記の 2 つのシナリオを実現する方法を示しています。—トークンがない状態から開始し、既存の UID2 Token が見つかった場合はそれを再利用/リフレッシュします。 ```js @@ -311,7 +313,7 @@ window.__uid2.callbacks.push(async (eventType, payload) => { // The InitCompleted event occurs just once. // // If there is a valid UID2 token, it is in payload.identity. - if (payload.identity) { + if (payload?.identity) { // // payload looks like this: // { @@ -326,25 +328,29 @@ window.__uid2.callbacks.push(async (eventType, payload) => { // } var advertising_token_to_use = payload.identity.advertising_token; } else { - if (__uid2.isLoginRequired()) { + if (__uid2.isLoginRequired()) { // Call one of the setIdentityFrom functions to generate a new UID2 token. // Add any retry logic around this call as required. await __uid2.setIdentityFromEmailHash( emailHash, - clientSideConfig - ); + clientSideConfig); + } else { - // there is a token generation API call in flight which triggers - // a IdentityUpdated event + // there is a token generation API call in flight which triggers a IdentityUpdated event + // or no token would be generated because one of previous `setIdentity` calls determines the DII has opted out. } - } } break; case "IdentityUpdated": // The IdentityUpdated event happens when a UID2 token is generated or refreshed. // See previous comment for an example of how the payload looks. - var advertising_token_to_use = payload.identity.advertising_token; + // It's possible that payload/identity objects could be null for reasons such as the token + // expired and cannot be refreshed, or the user opted out of UID2. + // Check that the advertising token exists before using it. + if (payload?.identity?.advertising_token) { + var advertising_token_to_use = payload.identity.advertising_token; + } break; } }); diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-prebid-client-side.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-prebid-client-side.md index aa4e4410c..3b72f7f33 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-prebid-client-side.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-prebid-client-side.md @@ -144,6 +144,8 @@ pbjs.setConfig({ }); ``` +ユーザーが以前に UID2 をオプトアウトしている可能性があります。この場合、UID2 module はユーザーのオプトアウトを受け入れ、Prebid.js によって UID2 Token が生成されずに収集されません。 + ## Checking the Integration UID2 module が正常に UID2 Token を生成したかどうかを確認するには `pbjs.getUserIds().uid2` を呼び出します。値が返された場合、UID2 module に有効な UID2 Token が存在していることになります。 From 4beb4f68601705fb68e558d8173e1867ff0d4161 Mon Sep 17 00:00:00 2001 From: Yoshihiko Miyaichi Date: Wed, 28 Aug 2024 11:21:21 +0900 Subject: [PATCH 04/25] Add new glossary term, client keypair, plus adjust credentials text and add lead-in links. --- .../current/getting-started/gs-credentials.md | 8 +++++--- .../current/getting-started/gs-faqs.md | 4 ++-- .../current/getting-started/gs-opt-out.md | 2 +- .../current/getting-started/gs-permissions.md | 2 +- .../guides/advertiser-dataprovider-guide.md | 2 +- .../guides/integration-javascript-client-server.md | 4 ++-- .../guides/integration-javascript-client-side.md | 8 ++++---- .../guides/integration-mobile-client-server.md | 2 +- .../guides/integration-mobile-client-side.md | 14 +++++++------- .../guides/integration-prebid-client-side.md | 5 +++-- .../guides/integration-publisher-server-side.md | 2 +- .../guides/operator-guide-aws-marketplace.md | 2 +- .../current/guides/operator-guide-azure-enclave.md | 2 +- .../current/guides/snowflake_integration.md | 8 ++++---- .../current/guides/summary-guides.md | 2 +- .../overviews/overview-operators-private.md | 2 +- .../current/overviews/overview-publishers.md | 4 ++-- .../current/portal/api-keys.md | 8 ++++---- .../current/portal/sharing-permissions.md | 2 +- .../current/ref-info/glossary-uid.md | 9 +++++++-- .../current/ref-info/updates-doc.md | 4 ++-- .../current/sdks/sdk-ref-cplusplus.md | 2 +- .../current/sdks/sdk-ref-csharp-dotnet.md | 2 +- .../current/sdks/sdk-ref-java.md | 4 ++-- .../current/sdks/sdk-ref-javascript-v2.md | 4 ++-- .../current/sdks/sdk-ref-javascript.md | 2 +- .../current/sdks/sdk-ref-python.md | 2 +- .../current/sharing/sharing-best-practices.md | 2 +- .../current/sharing/sharing-overview.md | 2 +- .../sharing-tokenized-from-data-bid-stream.md | 2 +- .../sharing/sharing-tokenized-from-data-pixel.md | 2 +- .../current/sharing/sharing-tokenized-from-raw.md | 2 +- .../current/sharing/sharing-tokenized-overview.md | 4 ++-- 33 files changed, 67 insertions(+), 59 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-credentials.md b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-credentials.md index 2865b005c..6df006c8d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-credentials.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-credentials.md @@ -14,7 +14,7 @@ UID2 参加者はそれぞれ、固有の | Audience | Credentials | Integration | | :--- | :--- | :--- | | Server-Sideのエンドポイントを使用する参加者 | 以下の両方:
  • API Key、クライアントキーとも呼ばれます。
  • Client secret、参加者と UID2 Service だけが知る値。
| これらのエンドポイントのいずれかを使用するインテグレーション:
  • [POST /identity/map](../endpoints/post-identity-map.md)
  • [POST /identity/buckets](../endpoints/post-identity-buckets.md)
  • [POST /token/generate](../endpoints/post-token-generate.md)
| -| Client-Side の実装を使用する参加者 | 以下の両方:
  • Subscription ID
  • Public key
| これらのいずれかを使用したインテグレーション:
  • [UID2 Client-Side Integration Guide for Prebid.js](../guides/integration-prebid-client-side.md)
  • [Client-Side Integration Guide for JavaScript](../guides/integration-javascript-client-side.md)
| +| Client-Side の実装を使用する参加者 | 以下のいずれか:
  • Subscription ID
  • Public key
これら2つを一緒に、client keypairと呼ぶこともあります。 | これらのいずれかを使用するインテグレーション:
  • [UID2 Client-Side Integration Guide for Prebid.js](../guides/integration-prebid-client-side.md)
  • [Client-Side Integration Guide for JavaScript](../guides/integration-javascript-client-side.md)
| 本番環境だけでなくインテグレーション環境も使用している場合は、それぞれの環境用に別々の認証情報を取得します。 @@ -30,7 +30,7 @@ Client-Side または Server-Side の実装を使用している場合([UID2 Cli - 本番環境だけでなくインテグレーション環境も利用する場合は、それぞれの環境で別々の API Key が必要になります。 - クライアントシークレットは特定の [Environment](gs-environments.md) で有効です。インテグレーション環境と本番環境の両方を使っている場合、それぞれの環境用のクライアントシークレットを取得します。 -UID2 アカウントのセットアップの一環として、1つ以上の API Key が発行され、それぞれに対応するクライアントシークレットが割り当てられます。相談相手の詳細については、[Contact Info](gs-account-setup.md#contact-info) を参照してください。 +UID2 アカウントのセットアップの一環として、1つ以上の API Key が発行され、それぞれに対応するクライアントシークレットが割り当てられます。相談相手の詳細は [Contact Info](gs-account-setup.md#contact-info) を参照してください。 ### Security of API Key and Client Secret @@ -48,7 +48,9 @@ Client-Side の実装([UID2 Client-Side Integration Guide for Prebid.js](../guid - **Subscription ID**: UID2 Service に対してサイトを識別する値です。 - **Public key**: この値は暗号化に使用されます。 -UID2 JavaScript SDK または Prebid を使用して、Client-Side で UID2 を実装する場合、設定の一部として SDK または Prebid に値を提供します。 +**Client keypair** は、これら2つの値を使用してアカウントを一意に定義するために使用されます。これらの値は、Client-Side でトークンを生成する実装を使用しているアカウントを識別するために使用されます。 + +UID2 を Client-Side で実装する場合、UID2 JavaScript SDK、Client-Side Integration for Mobile、または Prebid.js を使用している場合は、設定の一部として SDK または Prebid.js に値を提供してください。 Notes: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md index 1bf75f575..37f2f4150 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md @@ -215,7 +215,7 @@ Private Operator を使用している場合を除き、メールアドレス、 一般的にその通りです。DII から raw UID2 を生成するプロセスは同じであり、誰がリクエストを送信したかに関係なく、結果は同じ値になります。 2 人の UID2 参加者が同じメールアドレスを [POST /identity/map](../endpoints/post-identity-map.md) エンドポイントに同時に送信した場合、応答として両方とも同じ raw UID2 を取得します。 -ただし、raw UID2 の生成に使用される [ソルト](../ref-info/glossary-uid.md#gl-salt) 値という可変要素があります。ソルト値は定期的にローテーションされます(詳細については、[How often should UID2s be refreshed for incremental updates?](#how-often-should-uid2s-be-refreshed-for-incremental-updates)) を参照してください)。あるリクエストと別のリクエストの間でソルト値が変化する場合、DII が同じであっても、これら 2 つのリクエストは 2 つの異なる raw UID2 になります。 +ただし、raw UID2 の生成に使用される [ソルト](../ref-info/glossary-uid.md#gl-salt) 値という可変要素があります。ソルト値は定期的にローテーションされます(詳細は [How often should UID2s be refreshed for incremental updates?](#how-often-should-uid2s-be-refreshed-for-incremental-updates)) を参照してください)。あるリクエストと別のリクエストの間でソルト値が変化する場合、DII が同じであっても、これら 2 つのリクエストは 2 つの異なる raw UID2 になります。 詳細については、*Advertiser/Data Provider Integration Guide*の [Monitor for salt bucket rotations related to your stored raw UID2s](../guides/advertiser-dataprovider-guide.md#3-monitor-for-salt-bucket-rotations-related-to-your-stored-raw-uid2s) を参照してください。 @@ -294,7 +294,7 @@ DSP はオプトアウトリストをどれくらいの期間保管すべきで ユーザーがオプトアウトした場合、UID2 Operator は raw UID2 を URL エンコードされたクエリパラメータとして返します。 -DSP のオプトアウトプロセスの詳細については、[Honor User Opt-Outs](../guides/dsp-guide.md#honor-user-opt-outs) を参照してください。 +DSP のオプトアウトプロセスの詳細は [Honor User Opt-Outs](../guides/dsp-guide.md#honor-user-opt-outs) を参照してください。 #### What request type do opt-outs use? オプトアウトはどのリクエストタイプを使いますか? diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-opt-out.md b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-opt-out.md index 80f912c86..409c8fe83 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-opt-out.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-opt-out.md @@ -48,7 +48,7 @@ UID2 エコシステムには、2 種類のオプトアウトがあります: | Participant | Distribution Method | | :--- | :--- | | Publishers | [POST /token/generate](../endpoints/post-token-generate.md) を必須パラメータ `optout_check` を `1` に設定して呼び出したパブリッシャー、または [POST /token/refresh](../endpoints/post-token-refresh.md) を呼び出したパブリッシャーは、UID2 Token の代わりにオプトアウトレスポンスを受け取ります。| - | DSPs | UID2 Operator Service は、DSP に対して、その目的のために提供された Webhook を介して、オプトアウトしたすべてのユーザーの情報を配布します。詳細については、[Honor User Opt-Outs](../guides/dsp-guide#honor-user-opt-outs) を参照してください。
DSP は、[POST /optout/status](../endpoints/post-optout-status.md) エンドポイントを使用して、生の UID2 のオプトアウトステータスを確認することもできます。 | + | DSPs | UID2 Operator Service は、DSP に対して、その目的のために提供された Webhook を介して、オプトアウトしたすべてのユーザーの情報を配布します。詳細は [Honor User Opt-Outs](../guides/dsp-guide#honor-user-opt-outs) を参照してください。
DSP は、[POST /optout/status](../endpoints/post-optout-status.md) エンドポイントを使用して、生の UID2 のオプトアウトステータスを確認することもできます。 | | 広告主とデータプロバイダー | UID2 Operator Service は、[POST /identity/map](../endpoints/post-identity-map.md) エンドポイントを介して、広告主とデータプロバイダーにオプトアウト情報を配布します。別のオプションとして、[POST /optout/status](../endpoints/post-optout-status.md) エンドポイントを使用して、raw UID2 のオプトアウトステータスを確認することもできます。 | | Sharers | UID2 Sharer は、[POST /optout/status](../endpoints/post-optout-status.md) エンドポイントを使用して、raw UID2 のオプトアウトステータスを確認することができます。 | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-permissions.md b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-permissions.md index 15d40e1ae..256475808 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-permissions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-permissions.md @@ -14,7 +14,7 @@ UID2 エコシステムには、特定のアクティビティを完了するた 各 UID2 参加者は、パーミッションが参加者の API クレデンシャルにリンクされています([Account Setup](gs-account-setup.md) と [UID2 Credentials](gs-credentials.md) を参照してください)。 :::note -パブリッシャーで、Client-Side に UID2 を実装している場合、API パーミッションは適用されません。代わりに、Client-Side のトークンリクエストを生成するための別の認証情報を受け取ることになります。詳細については、[Subscription ID and Public Key](gs-credentials.md#subscription-id-and-public-key) を参照してください。 +パブリッシャーで、Client-Side に UID2 を実装している場合、API パーミッションは適用されません。代わりに、Client-Side のトークンリクエストを生成するための別の認証情報を受け取ることになります。詳細は [Subscription ID and Public Key](gs-credentials.md#subscription-id-and-public-key) を参照してください。 ::: 参加者は、関連するパーミッションを持つ API クレデンシャルのセットを 1 つ以上持つことができます。複数の API パーミッションを持つ場合、それぞれのパーミッションに対して個別のクレデンシャルセットを持つか、すべてのパーミッションに対して単一のクレデンシャルセットを持つかのオプションがあります。各パーミッションに対して別々のクレデンシャルセットを持つことを推奨します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/advertiser-dataprovider-guide.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/advertiser-dataprovider-guide.md index 2e8b84e35..bfb627f14 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/advertiser-dataprovider-guide.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/advertiser-dataprovider-guide.md @@ -35,7 +35,7 @@ DII とは、正規化されたメールアドレスや電話番号、あるい | Step | Endpoint | Description | | --- | --- | --- | | 1-a | [POST /identity/map](../endpoints/post-identity-map.md)リクエスト | DII を含むリクエストを ID マッピングエンドポイントに送信します。 | -| 1-b | [POST /identity/map](../endpoints/post-identity-map.md) レスポンス | レスポンスで返される `advertising_id` (raw UID2) は、関連する DSP でオーディエンスをターゲティングするために使用できます。
このレスポンスは、ユーザーの raw UID2 と、ソルトバケットに対応する `bucket_id` を返します。バケットに割り当てられたソルトは毎年ローテーションされ、生成される raw UID2 に影響を与えます。ソルトバケットのローテーションをチェックする方法の詳細については、[3: Monitor for salt bucket rotations](#3-monitor-for-salt-bucket-rotations-related-to-your-stored-raw-uid2s) を参照してください。
メンテナンスを簡単にするために、ユーザの raw UID2 と `bucket_id` をマッピングテーブルに格納することを推奨します。インクリメンタルな更新に関するガイダンスについては、[Use an incremental process to continuous-update raw UID2s](#use-an-incremental-process-to-continuously-update-raw-uid2s) を参照してください。| +| 1-b | [POST /identity/map](../endpoints/post-identity-map.md) レスポンス | レスポンスで返される `advertising_id` (raw UID2) は、関連する DSP でオーディエンスをターゲティングするために使用できます。
このレスポンスは、ユーザーの raw UID2 と、ソルトバケットに対応する `bucket_id` を返します。バケットに割り当てられたソルトは毎年ローテーションされ、生成される raw UID2 に影響を与えます。ソルトバケットのローテーションをチェックする方法の詳細は [3: Monitor for salt bucket rotations](#3-monitor-for-salt-bucket-rotations-related-to-your-stored-raw-uid2s) を参照してください。
メンテナンスを簡単にするために、ユーザの raw UID2 と `bucket_id` をマッピングテーブルに格納することを推奨します。インクリメンタルな更新に関するガイダンスについては、[Use an incremental process to continuous-update raw UID2s](#use-an-incremental-process-to-continuously-update-raw-uid2s) を参照してください。| ### 2: Send stored raw UID2s to DSPs to create audiences diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-javascript-client-server.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-javascript-client-server.md index 2bc16c3e9..8891bcefc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-javascript-client-server.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-javascript-client-server.md @@ -19,7 +19,7 @@ import Link from '@docusaurus/Link'; Client-Side の JavaScript の変更 **だけ** で UID2 とインテグレーションする場合は、[Client-Side Integration Guide for JavaScript](integration-javascript-client-side.md) を参照してください。 -SDK の技術的な詳細については、[SDK for JavaScript Reference Guide](../sdks/sdk-ref-javascript.md) を参照してください。 +SDK の技術的な詳細は [SDK for JavaScript Reference Guide](../sdks/sdk-ref-javascript.md) を参照してください。 ## Sample Implementation Website @@ -78,7 +78,7 @@ Step 1-c でパブリッシャーがユーザーのメールアドレスまた `Identity` レスポンスを SDK に渡す必要があります。[Sending the UID2 Token to the SDK](#sending-the-uid2-token-to-the-sdk) を参照してください。 :::warning -セキュリティ上の理由から、トークン生成に使用される API キーとシークレットはサーバーサイドで呼び出す必要があります。これらの値をクライアントサイドに保存しないでください。詳細については、[Security of API Key and Client Secret](../getting-started/gs-credentials.md#security-of-api-key-and-client-secret) を参照してください。 +セキュリティ上の理由から、トークン生成に使用される API キーとシークレットはサーバーサイドで呼び出す必要があります。これらの値をクライアントサイドに保存しないでください。詳細は [Security of API Key and Client Secret](../getting-started/gs-credentials.md#security-of-api-key-and-client-secret) を参照してください。 ::: #### Sending the UID2 Token to the SDK diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-javascript-client-side.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-javascript-client-side.md index a4aec9cfc..72b6ec285 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-javascript-client-side.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-javascript-client-side.md @@ -68,7 +68,7 @@ SDK のデバッグビルドを使用したい場合は、代わりに以下の アカウント設定ページに記載されている手順に従って、UID2 アカウントの設定を完了してください。アカウント設定プロセスの一環として、この SDK for JavaScript で使用するサイトの**ドメイン名**のリストを提供する必要があります。 -アカウントのセットアップが完了すると、Publicc Key(公開鍵) と Subesciption ID(サブスクリプション ID) が発行されます。これらの値はアカウント固有のもので、UID2 モジュールの設定に使用します。 +アカウントのセットアップが完了すると、UID2 サーバーがユーザーを識別するために使用する 2 つの値であるクライアントキーペアが発行されます: Subscription ID と Public key。これらの値はあなたに固有で、UID2 モジュールの設定に使用します。詳細は [Subscription ID and Public Key](../getting-started/gs-credentials.md#subscription-id-and-public-key) を参照してください。 :::tip アカウント設定に必要なのは、ルートレベルのドメインだけです。例えば、JavaScript 用の UID2 SDK を example.com、shop.example.com、example.org で使用する場合、ドメイン名 example.com と example.org を指定するだけです。 @@ -113,7 +113,7 @@ window.__uid2.callbacks.push((eventType, payload) => { ``` -SDK の詳細については、[SDK for JavaScript Reference Guide](../sdks/sdk-ref-javascript.md) を参照してください。 +SDK の詳細は [SDK for JavaScript Reference Guide](../sdks/sdk-ref-javascript.md) を参照してください。 ### Using the UID2 Integration Environment @@ -165,7 +165,7 @@ SDK を設定するには、アカウントセットアップ時に受け取っ - トークンをユーザーのブラウザに保存します。 - ユーザーのブラウザでサイトを開いている間、必要に応じてトークンを自動的にリフレッシュします。 -UID2 SDK には、ユーザーの DII をハッシュ化して渡すことも、ハッシュ化せずに渡すこともできます。ハッシュ化せずに DII を渡すと、UID2 SDK が代わりにハッシュ化します。すでにハッシュ化された DII を SDK に渡したい場合は、ハッシュ化する前に正規化する必要があります。詳細については、[Normalization and Encoding](../getting-started/gs-normalization-encoding.md) を参照してください。 +UID2 SDK には、ユーザーの DII をハッシュ化して渡すことも、ハッシュ化せずに渡すこともできます。ハッシュ化せずに DII を渡すと、UID2 SDK が代わりにハッシュ化します。すでにハッシュ化された DII を SDK に渡したい場合は、ハッシュ化する前に正規化する必要があります。詳細は [Normalization and Encoding](../getting-started/gs-normalization-encoding.md) を参照してください。 ## Format Examples for DII @@ -220,7 +220,7 @@ await __uid2.setIdentityFromEmailHash( ``` このシナリオでは: -- **メールアドレスの正規化とハッシュ化はパブリッシャーの責任です。** 詳細については、[Normalization and Encoding](../getting-started/gs-normalization-encoding.md) を参照してください。 +- **メールアドレスの正規化とハッシュ化はパブリッシャーの責任です。** 詳細は [Normalization and Encoding](../getting-started/gs-normalization-encoding.md) を参照してください。 - UID2 SDK は、UID2 Service に送信する前にハッシュを暗号化します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-mobile-client-server.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-mobile-client-server.md index cb653f835..2740d1b9d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-mobile-client-server.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-mobile-client-server.md @@ -55,7 +55,7 @@ UID2 は、[Android](../sdks/sdk-ref-android.md) および [iOS](../sdks/sdk-ref アカウントの設定を完了するには、[Account Setup](../getting-started/gs-account-setup.md) に記載されている手順に従ってください。 -アカウントの設定が完了すると、ユニークな API Key とクライアントシークレットが送信されます。これらの値はあなたに固有であり、安全に保管することが重要です。詳細については、[API Key and Client Secret](../getting-started/gs-credentials.md#api-key-and-client-secret) を参照してください。 +アカウントの設定が完了すると、ユニークな API Key とクライアントシークレットが送信されます。これらの値はあなたに固有であり、安全に保管することが重要です。詳細は [API Key and Client Secret](../getting-started/gs-credentials.md#api-key-and-client-secret) を参照してください。 ## Client-Server Mobile Integration Data Flow Overview diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-mobile-client-side.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-mobile-client-side.md index 3d4fb234e..252b32b40 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-mobile-client-side.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-mobile-client-side.md @@ -176,7 +176,7 @@ see UID2SDKDevelopmentApp/UID2SDKDevelopmentApp/Info.plist -必要に応じて、デフォルトの Subscription ID と public key を割り当てられた値に変更し、UID2 本番環境に接続することもできます。詳細については、[Optional: Specifying the API Base URL to Reduce Latency](#optional-specifying-the-api-base-url-to-reduce-latency) を参照してください。 +必要に応じて、デフォルトの Subscription ID と public key を割り当てられた値に変更し、UID2 本番環境に接続することもできます。詳細は [Optional: Specifying the API Base URL to Reduce Latency](#optional-specifying-the-api-base-url-to-reduce-latency) を参照してください。 ## Complete the UID2 Account Setup @@ -186,7 +186,7 @@ see UID2SDKDevelopmentApp/UID2SDKDevelopmentApp/Info.plist - iOS Bundle Identifier - iOS App Store ID -When account setup is complete, you'll receive a [Subscription ID and public key](../getting-started/gs-credentials.md#subscription-id-and-public-key). These values are unique to you, and you'll use them when you [configure the UID2 mobile SDK](#configure-the-uid2-mobile-sdk). +アカウントのセットアップが完了すると、UID2 サーバーがユーザーを識別するために使用する 2 つの値であるクライアントキーペアが発行されます: Subscription ID と Public key。これらの値はあなたに固有で、UID2 モジュールの設定に使用します。詳細は [Subscription ID and Public Key](../getting-started/gs-credentials.md#subscription-id-and-public-key) を参照してください。 ## Add the UID2 Mobile SDK to Your Mobile App @@ -308,7 +308,7 @@ UID2Manager.shared.generateIdentity( - アプリが開いている間、必要に応じてトークンを自動的にリフレッシュします。 :::tip -ユーザーの DII を UID2 mobile SDK に渡す際、ハッシュ化またはハッシュ化されていない DII を渡すことができます。DII をハッシュ化されていない状態で渡す場合、SDK がハッシュ化します。ハッシュ化された DII を SDK に渡す場合、ハッシュ化する前に正規化する必要があります。詳細については、[Normalization and Encoding](../getting-started/gs-normalization-encoding.md) を参照してください。 +ユーザーの DII を UID2 mobile SDK に渡す際、ハッシュ化またはハッシュ化されていない DII を渡すことができます。DII をハッシュ化されていない状態で渡す場合、SDK がハッシュ化します。ハッシュ化された DII を SDK に渡す場合、ハッシュ化する前に正規化する必要があります。詳細は [Normalization and Encoding](../getting-started/gs-normalization-encoding.md) を参照してください。 ::: ### Format Examples for DII @@ -423,7 +423,7 @@ Task { このシナリオでは: -- パブリッシャーはメールアドレスを正規化およびハッシュ化する責任があります。詳細については、[Email Address Normalization](../getting-started/gs-normalization-encoding.md#email-address-normalization) を参照してください。 +- パブリッシャーはメールアドレスを正規化およびハッシュ化する責任があります。詳細は [Email Address Normalization](../getting-started/gs-normalization-encoding.md#email-address-normalization) を参照してください。 - UID2 mobile SDK は、ハッシュ化された DII を UID2 Service に送信する前に暗号化します。 @@ -475,7 +475,7 @@ Task { このシナリオでは: -- パブリッシャーは電話番号を正規化する責任があります。詳細については、[Phone Number Normalization](../getting-started/gs-normalization-encoding.md#phone-number-normalization) を参照してください。 +- パブリッシャーは電話番号を正規化する責任があります。詳細は [Phone Number Normalization](../getting-started/gs-normalization-encoding.md#phone-number-normalization) を参照してください。 - UID2 mobile SDK は、ハッシュ化された電話番号を UID2 Service に送信する前に暗号化します。 @@ -523,7 +523,7 @@ Task { このシナリオでは: -- パブリッシャーは電話番号を正規化およびハッシュ化する責任があります。詳細については、[Phone Number Normalization](../getting-started/gs-normalization-encoding.md#phone-number-normalization) を参照してください。 +- パブリッシャーは電話番号を正規化およびハッシュ化する責任があります。詳細は [Phone Number Normalization](../getting-started/gs-normalization-encoding.md#phone-number-normalization) を参照してください。 - UID2 mobile SDK は、ハッシュ化された DII を UID2 Service に送信する前に暗号化します。 @@ -666,7 +666,7 @@ UID2Manager.shared.getAdvertisingToken() -`getAdvertisingToken()` が null を返し、identity ステータスが `OPT_OUT`/`optOut` でない場合、新しいトークンを生成する必要があります。これを行うには、`generateIdentity` メソッドに DII を再度渡します。詳細については、[Configure the UID2 Mobile SDK](#configure-the-uid2-mobile-sdk) を参照してください。 +`getAdvertisingToken()` が null を返し、identity ステータスが `OPT_OUT`/`optOut` でない場合、新しいトークンを生成する必要があります。これを行うには、`generateIdentity` メソッドに DII を再度渡します。詳細は [Configure the UID2 Mobile SDK](#configure-the-uid2-mobile-sdk) を参照してください。 + ### New: CTV Integration Guide -21 June 2024 +June 21, 2024 UID2 とのインテグレーションを希望する CTV パブリッシャー向けに、新しいガイドを追加しました。 @@ -48,7 +54,7 @@ UID2 とのインテグレーションを希望する CTV パブリッシャー ### New: Opt-Out API -24 May 2024 +May 24, 2024 新しい API コールのドキュメントを追加しました。この API コールは、raw UID2 のオプトアウトステータスをチェックします。 @@ -60,7 +66,7 @@ raw UID2 のリストが与えられた場合、このエンドポイントは ### New: Client-Side and Server-Side Guides for Mobile -17 May 2024 +May 17, 2024 Android または iOS モバイルアプリのパブリッシャーが UID2 を実装するためのサポートを提供するため、以下のインテグレーションガイドを追加しました: @@ -72,7 +78,7 @@ Android または iOS モバイルアプリのパブリッシャーが UID2 を ### New: UID2 Portal Client-Side Integration Page -6 May 2024 +May 6, 2024 UID2 Portal のドキュメントに新しいページ、[Client-Side Integration](../portal/client-side-integration.md) を追加しました。 @@ -82,7 +88,7 @@ UID2 Portal の Client-Side Integration ページでは、ドメインなど、 ### New: UID2 Portal API Keys Page -25 April 2024 +April 25, 2024 UID2 Portal ドキュメントに新しいページ、[API Keys](../portal/api-keys.md) を追加しました。 @@ -92,7 +98,7 @@ UID2 Portal の API Keys ページでは、UID2 アカウントの API Key、関 ### Documentation for Sharing Including Raw UID2 Sharing -22 April 2024 +April 22, 2024 すべての共有シナリオに対応できるよう、共有ドキュメントを全面的に見直し、大幅に拡充しました。 @@ -104,7 +110,7 @@ UID2 Portal の API Keys ページでは、UID2 アカウントの API Key、関 ### New: UID2 Hashing Tool -4 March 2024 +March 4, 2024 新しい UID2 ハッシュツールを追加しました。正規化とエンコーディングが正しく行われているかどうかをチェックすることができます。 @@ -114,7 +120,7 @@ UID2 Portal の API Keys ページでは、UID2 アカウントの API Key、関 ### New: Java SDK Support for Advertiser/Data Provider -28 February 2024 +February 28, 2024 Java SDKは、[POST /identity/map](../endpoints/post-identity-map.md) エンドポイントの使用を希望する広告主およびデータプロバイダーをサポートするようになりました。 @@ -122,7 +128,7 @@ Java SDKは、[POST /identity/map](../endpoints/post-identity-map.md) エ ### New: Audience-Specific Documentation Sidebars -9 February 2024 +February 9, 2024 [UID2 home page](https://unifiedid.com/) の上部にあるリンクをクリックした特定のユーザー(パブリッシャー、広告主、DSP、データプロバイダー)に、カスタマイズした左サイドバーが表示されるようにウェブサイトを改善しました。サイドバーには、その対象者に適用される特定のドキュメントが含まれています。 @@ -136,7 +142,7 @@ UID2 home page の "ドキュメント" リンクをクリックするだけで ### New: UID2 Integration Overview for JavaScript -26 January 2024 +January 26, 2024 パブリッシャーが SDK for JavaScript を Client-Side または Server-Side のインテグレーションに使用する際のオプションをまとめた、新しい概要ガイドを追加しました。さらに、既存のガイドの名称を変更して一貫性を持たせ、マイナーアップデートを行いました。 @@ -160,7 +166,7 @@ SDK for Java のドキュメントに、SDK を実装するパブリッシャー ### New: Normalization and Encoding Documentation, Examples Section -19 January 2024 +January 19, 2024 既存の正規化とエンコードに関するドキュメントを拡張して明確にし、新しい例のセクションを追加しました。 @@ -170,7 +176,7 @@ SDK for Java のドキュメントに、SDK を実装するパブリッシャー ### New: Web Integration Overview for Publishers -16 January 2024 +January 16, 2024 UID2 とインテグレーションするパブリッシャーが利用できる Web インテグレーションオプションをまとめた新しいページを追加しました。 @@ -180,7 +186,7 @@ UID2 とインテグレーションするパブリッシャーが利用できる ### New: UID2 Operator Page -3 January 2024 +January 3, 2024 UID2 Operator が何をするのか、Public Operator と Private Operator の違いについて説明したリファレンスコンテンツを追加しました。 @@ -192,7 +198,7 @@ UID2 Operator が何をするのか、Public Operator と Private Operator の ### New: UID2 Integration Overview for Prebid.js -20 December 2023 +December 20, 2023 新しい概要ガイドには、Prebid と UID2 をインテグレーションするためのパブリッシャーオプションがまとめられています。 @@ -206,7 +212,7 @@ UID2 Operator が何をするのか、Public Operator と Private Operator の ### New: Encryption/Decryption Examples in Java and C# -14 December 2023 +December 14, 2023 UID2 リクエストの暗号化とレスポンスの復号化について、追加のプログラミング言語での説明とコード例を追加しました。既存の Pythonの 例に、Java と C# を追加しました。 @@ -214,7 +220,7 @@ UID2 リクエストの暗号化とレスポンスの復号化について、追 ### New: UID2 Private Operator for Azure Integration Guide -30 November 2023 +November 30, 2023 [Private Operator](../ref-info/glossary-uid.md#gl-private-operator) の運用を希望する UID2 参加者は、Microsoft Azure のコンフィデンシャルコンピューティングオプションである Confidential Container で UID2 Operator Service をセットアップできるようになりました。 @@ -222,7 +228,7 @@ UID2 リクエストの暗号化とレスポンスの復号化について、追 ### New: API Permissions -22 November 2023 +November 22, 2023 UID2 ウェブサイトの Getting Started セクションに新しい記事が掲載され、主要な UID2 権限、よく使う参加者のタイプ、関連する主なアクティビティについての情報が提供されています。 @@ -230,7 +236,7 @@ UID2 ウェブサイトの Getting Started セクションに新しい記事が ### New: UID2 Credentials Page -21 November 2023 +November 21, 2023 以前の **API Keys** ページを新しいページに置き換えました。このページには、Server-Sideの実装戦略に従った場合の認証情報についての情報が含まれています。 @@ -238,7 +244,7 @@ UID2 ウェブサイトの Getting Started セクションに新しい記事が ### New: Client-Side Integration Guide for JavaScript -21 November 2023 +November 21, 2023 Client-Side Integration Guide for JavaScript は、既存の URL の全く新しいドキュメントで、Client-Sideパブリッシャー実装のために SDK for JavaScript を使用する、よりシンプルな新しい方法を網羅しています。 @@ -252,7 +258,7 @@ Client-Side Integration Guide for JavaScript は、既存の URL の全く新し ### New: UID2 Client-Side Integration Guide for Prebid.js -2 November 2023 +November 2, 2023 UID2 Client-Side Integration Guide for Prebid.js は、既存の URL にまったく新しいドキュメントを追加したもので、UID2 と Prebid をインテグレーションする、Server-Side の作業を必要としない、よりシンプルな新しい方法について説明しています。 @@ -267,7 +273,7 @@ UID2 Client-Side Integration Guide for Prebid.js は、既存の URL にまっ ### New: Opt-Out -31 October 2023 +October 31, 2023 新しい "getting started" トピックでは、ユーザーのオプトアウトの概要を説明します。 @@ -275,7 +281,7 @@ UID2 Client-Side Integration Guide for Prebid.js は、既存の URL にまっ ### New: AWS Entity Resolution Integration Guide -19 October 2023 +October 19, 2023 この新しいガイドは、Amazon Web Services の ID ソリューションプロダクトである [AWS Entity Resolution](https://aws.amazon.com/entity-resolution/) を使用するための情報を提供し、AWS の顧客が UID2 フレームワークとインテグレーションできるようにします。 @@ -285,7 +291,7 @@ UID2 Client-Side Integration Guide for Prebid.js は、既存の URL にまっ ### New: SDK for JavaScript Version 3 -10 October 2023 +October 10, 2023 SDK for JavaScript Version 3 の機能強化に伴い、ドキュメントが大幅に更新されました。新しいドキュメントには、以前のバージョンの SDK からのアップグレードのための [Migration Guide](../sdks/sdk-ref-javascript#migration-guide) が含まれています。 @@ -295,7 +301,7 @@ SDK for JavaScript Version 3 の機能強化に伴い、ドキュメントが大 ### New: Private Operator Guide for Google Confidential Space -30 September 2023 +September 30, 2023 この新しいガイドでは、Google Cloud Platformの Confidential Computing オプションである [Confidential Space](https://cloud.google.com/confidential-computing#confidential-space) でUID2 Operator Service を設定するための情報を提供します。 @@ -305,7 +311,7 @@ SDK for JavaScript Version 3 の機能強化に伴い、ドキュメントが大 ### Update: Normalization and Encoding Rules -7 September 2023 +September 7, 2023 [directly identifying information (DII)](../ref-info/glossary-uid.md#gl-dii) を正規化してエンコードし、raw UID2 または UID2 Token を作成する手順を明確にした。 @@ -316,16 +322,15 @@ SDK for JavaScript Version 3 の機能強化に伴い、ドキュメントが大 ### New: IMA Mobile Plugin for Android -8 August 2023 +August 8, 2023 Android 向け UID2 Interactive Media Ads(IMA)Plugin に関する情報を提供する、パブリッシャー向けの新しいガイドです。このプラグインを使用すると、Google IMA SDK for Android を使用するパブリッシャーが、Android アプリからの広告リクエストで UID2 token を secure signals として送信できるようになります。 詳細は [UID2 IMA Plugin for Android Integration Guide](../guides/mobile-plugin-ima-android.md) を参照してください。 - ### New: IMA Mobile Plugin for iOS -8 August 2023 +August 8, 2023 iOS 向け UID2 Interactive Media Ads(IMA)Plugin に関する情報を提供する、パブリッシャー向けの新しいガイドです。このプラグインを使用すると、Google IMA SDK for Android を使用するパブリッシャーが、iOS アプリからの広告リクエストで UID2 token を secure signals として送信できるようになります。 @@ -333,16 +338,15 @@ iOS 向け UID2 Interactive Media Ads(IMA)Plugin に関する情報を提供す ### New: GMA Mobile Plugin for Android -4 August 2023 +August 4, 2023 Android 向け UID2 Google Mobile Ads(GMA)Plugin に関する情報を提供する、パブリッシャー向けの新しいガイドです。このプラグインを使用すると、Google GMA SDK を使用するパブリッシャーが、Android アプリからの広告リクエストで UID2 token を secure signals として送信できるようになります。 詳細は [UID2 GMA Plugin for Android Integration Guide](../guides/mobile-plugin-gma-android.md) を参照してください。 - ### New: GMA Mobile Plugin for iOS -4 August 2023 +August 4, 2023 iOS 向け UID2 Google Mobile Ads(GMA)Plugin に関する情報を提供する、パブリッシャー向けの新しいガイドです。このプラグインを使用すると、Google GMA SDK を使用するパブリッシャーが、iOS アプリからの広告リクエストで UID2 token を secure signals として送信できるようになります。 @@ -350,7 +354,7 @@ iOS 向け UID2 Google Mobile Ads(GMA)Plugin に関する情報を提供する ### New: UID2 Website in Japanese -3 August 2023 +August 3, 2023 UID2 のウェブサイト全体が、英語だけでなく日本語でも利用できるようになりました。 @@ -366,7 +370,7 @@ UID2 アカウントを管理できる新しい UID2 Portal ユーザーイン ### New: Documentation for UID2 Sharing -3 August 2023 +August 3, 2023 新しい UID2 Sharing 機能の使用をサポートするため、以下の新規および更新ドキュメントを公開しました: @@ -382,7 +386,7 @@ UID2 アカウントを管理できる新しい UID2 Portal ユーザーイン ### New: Android SDK Guide -3 August 2023 +August 3, 2023 パブリッシャー向けの新しいガイドでは、Android アプリをサポートする必要があるパブリッシャー向けに、UID2 を使用したクライアント ID の確立と UID2 Token の取得プロセスを容易にする SDK、SDK for Android に関する情報を提供しています。 @@ -390,16 +394,8 @@ UID2 アカウントを管理できる新しい UID2 Portal ユーザーイン ### New: iOS SDK Guide -3 August 2023 +August 3, 2023 パブリッシャー向けの新しいガイドでは、iOS アプリをサポートする必要があるパブリッシャー向けに、UID2 を使用したクライアント ID の確立と UID2 Token の取得プロセスを容易にする SDK、SDK for iOS に関する情報を提供しています。 -詳細は [SDK for iOS Reference Guide](../sdks/sdk-ref-ios.md) を参照してください。 - - +詳細は [SDK for iOS Reference Guide](../sdks/sdk-ref-ios.md) を参照してください。 \ No newline at end of file From cb3c690a41aacd658194c3b42644b19af0c233d1 Mon Sep 17 00:00:00 2001 From: Yoshihiko Miyaichi Date: Wed, 28 Aug 2024 12:35:55 +0900 Subject: [PATCH 06/25] UID2 Portal doc updates --- .../current/portal/api-keys.md | 15 +++++++- .../current/portal/client-side-integration.md | 8 ++++- .../current/portal/email-contacts.md | 28 +++++++++++---- .../current/portal/participant-info.md | 10 ++++-- .../current/portal/portal-overview.md | 6 ++-- .../current/portal/sharing-permissions.md | 28 +++++++++++---- .../current/portal/team-members.md | 34 ++++++++++++++----- 7 files changed, 102 insertions(+), 27 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/portal/api-keys.md b/i18n/ja/docusaurus-plugin-content-docs/current/portal/api-keys.md index f5d0c7d6b..473299f71 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/portal/api-keys.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/portal/api-keys.md @@ -93,7 +93,7 @@ API Key を削除するには、次の手順を実行します: キーは表示から削除され、無効になります。 -## Rotating an API key +## Rotating an API Key API Key をローテーションすることをお勧めします。API Key をローテーションするには、次の手順を実行します: @@ -103,3 +103,16 @@ API Key をローテーションすることをお勧めします。API Key を 1. UID2 の実装を更新して、ローテーションする Key の代わりに新しい Key を使用するようにします。 1. 新しい Key が問題なく使用されていることを確認します。たとえば、サービスに対する劣化や API Key の使用に関連するエラーログがないことを確認します。 1. 古い Key を削除します。詳細は [Deleting an API Key](#deleting-an-api-key) を参照してください。 + +## Security Recommendations for API Keys + +セキュリティのベストプラクティスとして、異なる役割に対して異なるキーを持つことが推奨されます。 + +追加のセキュリティに関する推奨事項については、[API Key and Client Secret のセキュリティ](../getting-started/gs-credentials.md#security-of-api-key-and-client-secret) を参照してください。 + + \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/portal/client-side-integration.md b/i18n/ja/docusaurus-plugin-content-docs/current/portal/client-side-integration.md index b4c7236d3..c81eb153c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/portal/client-side-integration.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/portal/client-side-integration.md @@ -178,7 +178,13 @@ Client-Side インテグレーションページでは、モバイルアプリ I ### Adding Mobile App IDs -Android App ID、iOS/tvOS Bundle ID、iOS App Store ID など、モバイルアプリに適用されるすべてのモバイルアプリ ID の完全なリストを提供することが重要です。UID2 Token リクエストは、UID2 Portal で設定されたモバイルアプリ ID からのみ受け付けられます。 +すべてのモバイルアプリIDの完全なリストを提供することが重要です。これには、以下が含まれます。 +- Android App ID: 該当するもの。 +- iOS/tvOS Bundle ID and corresponding iOS App Store ID: 該当するもの。 + +:::important +UID2 Token リクエストは、UID2 Portal に該当する ID が追加されているソースからのみ受け付けられます。 +::: 1 つ以上のモバイルアプリ ID を追加するには、次の手順を実行します: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/portal/email-contacts.md b/i18n/ja/docusaurus-plugin-content-docs/current/portal/email-contacts.md index 5afde4715..2214bba06 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/portal/email-contacts.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/portal/email-contacts.md @@ -15,10 +15,16 @@ UID2 Portal では、UID2 の最新アップデートやリリースに関する - 多くの個別エントリーを作成することなく、複数の人に通知する効率的な方法です。 - UID2 Portal の外部で、内部メール設定の管理の一環としてリストを管理できます。 -:::note -メール連絡先は、UID2 Portal にログインしたりアカウントを変更したりできません。受信できるのは情報通知のみです。メール連絡先を削除したい場合は、チームメンバーがその操作を行う必要があります。 +:::tip +メール連絡先は UID2 Portal にログインしたり、アカウントを変更したりすることはできません。メール連絡先は情報通知のみを受け取ります。メール連絡先を削除するには、チームメンバーがその操作を行う必要があります。 ::: +## Accessing the Email Contacts Page + +メール連絡先ページにアクセスするには、UID2 Portal ユーザーインターフェースの右上にあるログイン ID が表示されている場所に移動します。下矢印をクリックし、**Email Contacts** を選択します。 + +例については [UID2 Portal Structure](portal-overview.md#uid2-portal-structure) を参照してください。 + ## Configuring Email Contacts Email Contacts ページでは、UID2 の更新について通知を受ける個人を設定するための、以下のような操作を実行できます: @@ -29,10 +35,11 @@ Email Contacts ページでは、UID2 の更新について通知を受ける個 ## Add an Email Contact -以下のステップを完了させます: +メール連絡先を追加するには、以下のステップを完了させます: 1. UID2 Portal アカウントにログインします。 -1. Email Contacts ページで、**Add Email Contact** をクリックします。 +1. 右上の下矢印をクリックし、**Email Contacts** を選択します。 +1. **Add Email Contact** をクリックします。 2. Add Email Contact ウィンドウで、メールアドレス連絡先の以下の情報を入力します: - Email Group Name: 以下のいずれかを入力します: @@ -51,13 +58,20 @@ Email Contacts では、確認のメールは送信されません。 ## Edit Information for an Email Contact -メールアドレス連絡先の情報を編集するには、リストで連絡先を見つけ、Actions 列で Edit (pencil) アイコンをクリックします。 +値を変更できます: Email Group Name、Email Alias、Contact Type -情報を更新し、変更を保存します。 +メール連絡先の情報を編集するには、以下の手順を完了します: + +1. UID2 Portal アカウントにログインします。 +1. 右上の下矢印をクリックし、**Email Contacts** を選択します。 +1. リストで連絡先を見つけ、Actions 列で ![the Edit icon](images/icon-pencil-solid.png) (編集アイコン) をクリックします。 +1. 情報を更新し、変更を保存します。 ## Remove an Email Contact メールコンタクトを削除するには、以下の手順に従ってください: +1. UID2 Portal アカウントにログインします。 +1. 右上の下矢印をクリックし、**Email Contacts** を選択します。 1. リストで連絡先を見つけ、Actions 列で Delete (trashcan) アイコンをクリックします。 -1. 確認メッセージが表示されたら、削除を確定します。 +1. 確認メッセージが表示されたら、削除を確定します。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/portal/participant-info.md b/i18n/ja/docusaurus-plugin-content-docs/current/portal/participant-info.md index c6fe41373..5d4ac604a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/portal/participant-info.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/portal/participant-info.md @@ -11,8 +11,14 @@ import Link from '@docusaurus/Link'; UID2 Portal アカウントを申請するには、氏名や業種など、あなた自身とあなたの会社に関する情報を提供する必要があります。 -ポータルにアクセスできるようになったら、**Participant Info** をクリックして、参加者 の名前や種類など、アカウントの一般情報を確認します。アカウント作成時に提供した情報が表示されます。 +UID2 Portal では、この情報の一部が表示されます。アクセス権がある場合は、情報が正しいか確認してください。 -変更が必要な場合は、UID2 Support までご連絡ください。 +ページにアクセスするには、UID2 Portal ユーザーインターフェースの右上にあるログイン ID が表示されている場所に移動します。下矢印をクリックし、**Participant Information** を選択します。 + +例については [UID2 Portal Structure](portal-overview.md#uid2-portal-structure) を参照してください。 + +アカウントに関する一般情報を確認できます。たとえば、参加者 名やタイプなどです。アカウント作成時に提供した情報が表示されます。 + +変更が必要な場合は、UID2 Support まで連絡してください。 アカウント情報を確認したら、次はチームを設定します。[Team Members](team-members.md) を参照してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/portal/portal-overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/portal/portal-overview.md index 5b504ae64..9ecc75870 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/portal/portal-overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/portal/portal-overview.md @@ -32,7 +32,7 @@ Portal にアクセスするには、UID2 の担当者にアカウントを作 UID2 Portal は、ナビゲーションが簡単になるように構造化されています。 -ページへのアクセス方法は、次の画像に示すように、2つの主要な方法があります。 +ページへのアクセス方法は、次の画像に示すように、2つの主要な方法があります: ![UID2 Portal Structure](images/portal-uid2-overview.png) @@ -43,7 +43,9 @@ UID2 Portal は、ナビゲーションが簡単になるように構造化さ - [API Keys](api-keys.md) - [Client-Side Integration](client-side-integration.md) -右上のリンクから、個人のアカウント設定や日常のアクティビティに関連する以下のページにアクセスできます: +右上のリンクから、個人のアカウント設定と日々のアクティビティにアクセスできます。Gravatar 画像を設定している場合 ([https://gravatar.com/](https://gravatar.com/) を参照してください)、画像が表示されます。Gravatar 画像が設定されていない場合、デフォルト画像が表示されます。 + +ここから個人のアカウント設定と日々のアクティビティに関する以下のページにアクセスできます: - [Participant Information](participant-info.md) - [Manage Team Members](team-members.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/portal/sharing-permissions.md b/i18n/ja/docusaurus-plugin-content-docs/current/portal/sharing-permissions.md index e1330ef57..225c3bce4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/portal/sharing-permissions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/portal/sharing-permissions.md @@ -53,7 +53,7 @@ UID2 Portal は、あなたの役割に基づいて推奨を行います。例 - DSP であれば、すべての広告主とすべてのデータプロバイダー (現在および将来) と共有できます。 - データプロバイダーであれば、すべての広告主、すべてのパブリッシャー、すべてのDSP (現在および将来) と共有できます。 -以下の図は、広告主向けの推奨を示しています。 +以下の図は、広告主向けの推奨事項を示しています。 ![UID2 Portal, Sharing Permissions page, Recommendations (Advertiser)](images/portal-sharing-permissions.png) @@ -65,7 +65,7 @@ UID2 Portal は、あなたの役割に基づいて推奨を行います。例 ## Using Search to Add Sharing Relationships -特定の共有関係を作成したい場合は、**Add Permissions** をクリックして、共有参加者を見つけて追加します。 +特定の共有関係を作成する場合は、**Add Permissions—Individual** をクリックして、共有参加者を検索して追加します。 利用可能な共有参加者のリストでは、次のフィルタが利用可能です: - パブリッシャー @@ -79,25 +79,41 @@ UID2 Portal は、あなたの役割に基づいて推奨を行います。例 ## Steps for Granting Sharing Permission -共有許可を有効にするには、以下の手順を実行します。 - :::note UID2 Portal で共有許可を与えるだけでなく、SDK または Snowflake の機能をコードにインテグレーションする必要があります。[Tokenized Sharing Overview](../sharing/sharing-tokenized-overview.md) を参照してください。 ::: +共有権限を有効にするには、以下の手順が必要です。 + 1. UID2 Portal アカウントにログインします。 1. **Sharing Permissions** をクリックします。 1. 以下のいずれかを実行します: - - **Bulk Add Permission to Sharing Categories**: 設定した1つ以上の特定のカテゴリ (パブリッシャー、広告主、DSP、またはデータプロバイダー) の現在および将来の参加者全員と共有できます。 + - **Add Permissions—Bulk**: 1つ以上の特定のカテゴリを構成して、現在および将来の参加者全員と共有することができます (パブリッシャー、広告主、DSP、データプロバイダー)。 - **Review and Accept Recommendations**: 推奨を確認し、必要に応じて推奨カテゴリを追加またはクリアし、**Add Permissions** をクリックします。 広告主や DSP などの参加者カテゴリーを承認すると、そのタイプの現在の参加者だけでなく、将来 UID2 エコシステムに参加する同じタイプの参加者にも共有が有効になります。 - - **Add Permissions**: 必要に応じて、共有する個々の参加者を検索することができます。詳しくは [Using Search to Add Sharing Relationships](#using-search-to-add-sharing-relationships) を参照してください。 + - **Add Permissions—Individual**: 必要に応じて、共有する個々の参加者を検索することができます。詳しくは [Using Search to Add Sharing Relationships](#using-search-to-add-sharing-relationships) を参照してください。 1. 変更を保存します。 :::note 共有権限を有効にすると、選択した共有参加者が復号鍵にアクセスできるようになります。共有許可を有効にした各参加者は、UID2 SDK または Snowflake インテグレーションを介して、UID2 Token を raw UID2 に復号化するためにあなたのキーを使用できます。ただし、許可を与えることは最初のステップに過ぎません。共有するためには、トークンを参加者に送信する必要があります。UID2 Portal は許可を有効にしますが、データを送信することはありません。 ::: + +## Deleting Sharing Permission + +共有権限を削除する方法は 2 つあります: + +- **Bulk sharing permissions**: 以前に DSP やデータプロバイダーなどの特定の参加者グループと共有することを選択した場合、そのグループとの共有許可を削除できます。 + + ページの **Add Permissions—Bulk** セクションで、共有を解除したい参加者グループのチェックボックスをクリアし、**Save Permissions** をクリックします。 + +- **Individual sharing permissions**: ページの **Your Sharing Permissions** セクションで、共有を解除したい参加者を見つけ、Actions 列で ![the Delete icon](images/icon-trash-can-solid.png) (削除アイコン) をクリックします。 + + この操作は、以前に作成した個別の共有許可にのみ適用されます。一括共有を介して共有許可を追加した場合、個別の共有許可を削除することはできません。共有許可を削除するには、追加した方法と同じ方法で削除する必要があります。 + +:::note +共有許可を削除すると、次回参加者が復号鍵を更新すると、その参加者との共有が解除されます。即時ではありませんが、迅速に行われます。詳細については、[Decryption Key Refresh Cadence for Sharing](../sharing/sharing-best-practices.md#decryption-key-refresh-cadence-for-sharing) を参照してください。 +::: \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/portal/team-members.md b/i18n/ja/docusaurus-plugin-content-docs/current/portal/team-members.md index cd88258ef..d59f294af 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/portal/team-members.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/portal/team-members.md @@ -16,6 +16,12 @@ UID2 Portal の **Team Members** ページでは、以下のようなアカウ - [Edit Information for a Team Member](#edit-information-for-a-team-member) - [Remove a Team Member](#remove-a-team-member) +## Accessing the Team Members Page + +Team Members ページにアクセスするには、UID2 Portal ユーザーインターフェースの右上にあるログイン ID が表示されている場所に移動します。下矢印をクリックし、**Manage Team Members** を選択します。 + +例については [UID2 Portal Structure](portal-overview.md#uid2-portal-structure) を参照してください。 + ## Team Member Rights and Responsibilities 各 **Team Member** はアカウントの管理者となり、以下のようなチームやアカウントの管理に関する設定を行うことができます: @@ -23,14 +29,16 @@ UID2 Portal の **Team Members** ページでは、以下のようなアカウ - チームメンバーの追加、変更、削除: [Add a Team Member](#add-a-team-member) を参照してください。 - メール連絡先の追加、変更、削除: [Email Contacts](email-contacts.md) を参照してください。 - 共有関係と共有設定の追加と削除: [Sharing Permissions](sharing-permissions.md) を参照してください。 + ## Add a Team Member -以下のステップを完了させます: +チームメンバーを追加するには、以下のステップを完了させます: 1. UID2 Portal アカウントにログインします。 -1. Team Members ページで、Add Team Member をクリックします。 +1. 右上の下矢印をクリックし、**Manage Team Members** を選択します。 +1. **Add Team Member** をクリックします。 1. 姓、名、メールアドレス、職能を入力します。 -1. Save Team Member をクリックします。 +1. **Save Team Member** をクリックします。 チームメンバーがリストに追加され、ステータスが保留になり、招待メールが招待者に送信されます。 @@ -38,21 +46,31 @@ UID2 Portal の **Team Members** ページでは、以下のようなアカウ チームメンバーを追加した場合、招待状を再送する必要がある場合があります。例えば、チームメンバーが招待状を受け取っていなかったり、誤って削除してしまったり、招待状の有効期限が切れてしまった場合などです。 -チームメンバーに招待状を再送信するには、リストでチームメンバーを見つけ、Actions 列で **Resend Invitation** をクリックします。ステータスが **Invitation Sent** に更新され、新しい招待メールが送信されます。 +チームメンバーに招待状を再送信するには、以下の手順を実行します: + +1. UID2 Portal アカウントにログインします。 +1. 右上の下矢印をクリックし、**Manage Team Members** を選択します。 +1. リストでチームメンバーを見つけ、Actions 列で **Resend Invitation** をクリックします。 + + ステータスが **Invitation Sent** に更新され、新しい招待メールが送信されます。 ## Edit Information for a Team Member +値を更新することができます: 名、姓、メール、または職能。 + チームメンバーの情報を編集するには、以下の手順を実行します: -1. UID2 Portal で、**Team Members** ページに移動します。 -1. リストでチームメンバーを見つけます。 -1. Actions 列で Edit (鉛筆) アイコンをクリックします。 +1. UID2 Portal アカウントにログインします。 +1. 右上の下矢印をクリックし、**Manage Team Members** を選択します。 +1. リストでチームメンバーを見つけ、Actions 列で ![the Edit icon](images/icon-pencil-solid.png) (編集アイコン) をクリックします。 1. 情報を更新し、変更を保存します。 ## Remove a Team Member チームから誰かを外すには、以下の手順に従ってください: +1. UID2 Portal アカウントにログインします。 +1. 右上の下矢印をクリックし、**Manage Team Members** を選択します。 1. リストでチームメンバーを見つけ、Actions 列で Delete (ゴミ箱) アイコンをクリックします。 1. 確認メッセージで **Delete Team Member** をクリックします。 @@ -60,7 +78,7 @@ UID2 Portal の **Team Members** ページでは、以下のようなアカウ ## Log In for the First Time as a Team Member -新規チームメンバーとして追加された場合、メールアドレスを確認するための確認メールが送信されます。以下の手順に従ってください: +誰かがあなたを新しいチームメンバーとして追加した場合、確認メールが送信されます。メールアドレスを確認するための確認メールを送信します。以下の手順に従ってください: 1. メールに記載されている accept the invitation をクリックします。 1. パスワードを初期設定から更新するには、クリックしてください。 From 64063a4836c75f91484a0fd604de7d377b2b0d4e Mon Sep 17 00:00:00 2001 From: Yoshihiko Miyaichi Date: Thu, 29 Aug 2024 12:07:20 +0900 Subject: [PATCH 07/25] clarify DII > raw UID2 always same value at same time --- .../current/getting-started/gs-faqs.md | 21 ++++++++++++------- .../ref-info/ref-operators-public-private.md | 2 +- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md index 37f2f4150..2f4d21575 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md @@ -11,13 +11,6 @@ import Link from '@docusaurus/Link'; UID2 に関するよくある質問は、以下のカテゴリーに分かれています: - - ## FAQs—General UID2 フレームワークに関するよくある質問を紹介します。 @@ -161,6 +154,7 @@ UID2 フレームワークを使用する広告主やデータプロバイダー - [大量のメールアドレスや電話番号やそれらのハッシュマッピングを保存すべきか?](#should-i-store-large-volumes-of-email-address-phone-number-or-their-hash-mappings) - [ユーザーのオプトアウトはどのように処理すればよいですか?](#how-should-i-handle-user-opt-outs) - [同じ DII は常に同じ生UID2になりますか?](#does-the-same-dii-always-result-in-the-same-raw-uid2) + - [2 つの Operator が同じ DII を処理した場合、結果は同じになりますか?](#if-two-operators-process-the-same-dii-are-the-results-the-same) #### How do I know when to refresh the UID2 due to salt bucket rotation? ソルトバケットのローテーションによって UID2 をリフレッシュするタイミングを知るには? @@ -211,7 +205,7 @@ Private Operator を使用している場合を除き、メールアドレス、 ウェブサイトを通じてユーザーがオプトアウトした場合、オプトアウトを処理するための内部手順に従ってください。たとえば、そのユーザーの UID2 を生成しないことを選択することもできます。 #### Does the same DII always result in the same raw UID2? -同じ DII は常に同じ生UID2になりますか? +同じ DII は常に同じ raw UID2 になりますか? 一般的にその通りです。DII から raw UID2 を生成するプロセスは同じであり、誰がリクエストを送信したかに関係なく、結果は同じ値になります。 2 人の UID2 参加者が同じメールアドレスを [POST /identity/map](../endpoints/post-identity-map.md) エンドポイントに同時に送信した場合、応答として両方とも同じ raw UID2 を取得します。 @@ -219,6 +213,17 @@ Private Operator を使用している場合を除き、メールアドレス、 詳細については、*Advertiser/Data Provider Integration Guide*の [Monitor for salt bucket rotations related to your stored raw UID2s](../guides/advertiser-dataprovider-guide.md#3-monitor-for-salt-bucket-rotations-related-to-your-stored-raw-uid2s) を参照してください。 +#### If two operators process the same DII, are the results the same? +2 つの Operator が同じ DII を処理した場合、結果は同じになりますか? + +はい、リクエストが raw UID2 に対するものである場合は、同じです。前の FAQ で説明したように、[同じ DII は常に同じ raw UID2 になりますか?](#does-the-same-dii-always-result-in-the-same-raw-uid2)、広告主やデータプロバイダーが同時に同じ DII を UID2 Operator に送信する場合、SDK または [POST /identity/map](../endpoints/post-identity-map.md) エンドポイントを使用して、同じ raw UID2 が生成されます。 + +Operator に関係なく、また、Private Operator と Public Operator のどちらであっても、結果は同じです。 + +タイミングが重要なのは、ソルトバケットのローテーションのためです。リクエスト間でソルト値が変化すると、結果は異なる raw UID2 になります。 + +However, if a publisher sends DII in a request for a UID2 token, via the [POST /token/generate](../endpoints/post-token-generate.md) or [POST /token/refresh](../endpoints/post-token-refresh.md) endpoint or via an SDK, the resulting UID2 token contains the same encrypted raw UID2, but the token itself is always unique. + ## FAQs for DSPs demand-side platform (DSP) に関するよくある質問を紹介します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/ref-operators-public-private.md b/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/ref-operators-public-private.md index db1732975..903a63b90 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/ref-operators-public-private.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/ref-operators-public-private.md @@ -57,7 +57,7 @@ rivate Operator は、UID2 Operator のプライベートインスタンスで 参加者は、Private Operator インスタンスをホストする契約 ([Account setup](../getting-started/gs-account-setup.md) を参照してください) を締結する必要があります。 :::note -Private Operator は、Public Operator または別の Private Operator からの raw UID2 または UID2 Token を処理することはできません。各 Private Operator は、完全に閉じたインフラストラクチャです。 +Private Operator は、Public Operator または他の Private Operator によって処理された raw UID2 または UID2 Token を見ることはできません。各 Private Operator は完全に閉じたインフラストラクチャです。 ::: ## Private Operator: Benefits From f8ee3fbaee036700a62c77f0c4f8a008744807c6 Mon Sep 17 00:00:00 2001 From: Yoshihiko Miyaichi Date: Thu, 29 Aug 2024 12:12:37 +0900 Subject: [PATCH 08/25] clarify DII > raw UID2 always same value at same time --- .../current/getting-started/gs-faqs.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md index 2f4d21575..904efdab2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md @@ -222,7 +222,8 @@ Operator に関係なく、また、Private Operator と Public Operator のど タイミングが重要なのは、ソルトバケットのローテーションのためです。リクエスト間でソルト値が変化すると、結果は異なる raw UID2 になります。 -However, if a publisher sends DII in a request for a UID2 token, via the [POST /token/generate](../endpoints/post-token-generate.md) or [POST /token/refresh](../endpoints/post-token-refresh.md) endpoint or via an SDK, the resulting UID2 token contains the same encrypted raw UID2, but the token itself is always unique. + +しかし、パブリッシャーが [POST /token/generate](../endpoints/post-token-generate.md) または [POST /token/refresh](../endpoints/post-token-refresh.md) エンドポイント経由、または SDK 経由で UID2 Token のリクエストに DII を送信した場合、生成される UID2 Token には同じ暗号化された raw UID が含まれます。ただし、トークン自体は常に一意です。 ## FAQs for DSPs From e53e5364d5147ee3325ccca2df9fb463d454acd2 Mon Sep 17 00:00:00 2001 From: Yoshihiko Miyaichi Date: Thu, 29 Aug 2024 12:36:36 +0900 Subject: [PATCH 09/25] To UID2 Credentials doc, add client-server. Plus update doc links. --- .../current/getting-started/gs-credentials.md | 53 ++++++++++--------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-credentials.md b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-credentials.md index 6df006c8d..183120075 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-credentials.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-credentials.md @@ -9,15 +9,38 @@ import Link from '@docusaurus/Link'; # UID2 Credentials -UID2 参加者はそれぞれ、固有の認証情報のセットを取得します。取得する認証情報のセットは、次の表に示すように、UID2にどのように参加しているかによって決まります。 +UID2 参加者はそれぞれ、固有の認証情報のセットを取得します。取得する認証情報のセットは、次の表に示すように、UID2 にどのように参加しているかによって決まります。 | Audience | Credentials | Integration | | :--- | :--- | :--- | -| Server-Sideのエンドポイントを使用する参加者 | 以下の両方:
  • API Key、クライアントキーとも呼ばれます。
  • Client secret、参加者と UID2 Service だけが知る値。
| これらのエンドポイントのいずれかを使用するインテグレーション:
  • [POST /identity/map](../endpoints/post-identity-map.md)
  • [POST /identity/buckets](../endpoints/post-identity-buckets.md)
  • [POST /token/generate](../endpoints/post-token-generate.md)
| -| Client-Side の実装を使用する参加者 | 以下のいずれか:
  • Subscription ID
  • Public key
これら2つを一緒に、client keypairと呼ぶこともあります。 | これらのいずれかを使用するインテグレーション:
  • [UID2 Client-Side Integration Guide for Prebid.js](../guides/integration-prebid-client-side.md)
  • [Client-Side Integration Guide for JavaScript](../guides/integration-javascript-client-side.md)
| +| Client-Side 実装を使用する参加者 | 次の両方:
  • Subscription ID
  • Public key
これら 2 つをあわせて client keypair と呼ぶこともあります。 | 次のいずれかを使用したインテグレーション:
  • [UID2 Client-Side Integration Guide for Prebid.js](../guides/integration-prebid-client-side.md)
  • [Client-Side Integration Guide for JavaScript](../guides/integration-javascript-client-side.md)
| +| Client-Server 実装を使用する参加者 | 次の両方:
  • API key、client key とも呼ばれます。
  • Client secret は、参加者と UID2 Service のみが知る値です。
| 次のいずれかを使用したインテグレーション:
  • [Client-Server Integration Guide for JavaScript](../guides/integration-javascript-client-server.md)
  • [UID2 Client-Server Integration Guide for Prebid.js](../guides/integration-prebid-server-side.md)
  • [UID2 Client-Server Integration Guide for Mobile](../guides/integration-mobile-client-server.md)
| +| Server-Side のエンドポイントを使用する参加者 | 次の両方:
  • API key、client key とも呼ばれます。
  • Client secret は、参加者と UID2 Service のみが知る値です。
| 次のいずれかを使用したインテグレーション:
  • [Publisher Integration Guide, Server-Side](../guides/integration-publisher-server-side.md)
  • [Advertiser/Data Provider Integration Guide](../guides/advertiser-dataprovider-guide.md)
| 本番環境だけでなくインテグレーション環境も使用している場合は、それぞれの環境用に別々の認証情報を取得します。 +## Subscription ID and Public Key + +Client-Side の実装([UID2 Client-Side Integration Guide for Prebid.js](../guides/integration-prebid-client-side.md) または [Client-Side Integration Guide for JavaScript](../guides/integration-javascript-client-side.md) を参照) を使用している場合は、以下の認証情報を受け取ります: +- **Subscription ID**: UID2 Service に対してサイトを識別する値です。 +- **Public key**: この値は暗号化に使用されます。 + +**Client keypair** は、これら2つの値を使用してアカウントを一意に定義するために使用されます。これらの値は、Client-Side でトークンを生成する実装を使用しているアカウントを識別するために使用されます。 + +UID2 を Client-Side で実装する場合、UID2 JavaScript SDK、Client-Side Integration for Mobile、または Prebid.js を使用している場合は、設定の一部として SDK または Prebid.js に値を提供してください。 + +Notes: + +- API Key とクライアントシークレットとは異なり、Subscription ID と Public key は安全に保管する必要はありません。 + +- これらの値は特定の [Environment](gs-environments.md) に対して有効です。インテグレーション環境と本番環境の両方を使用している場合、それぞれの環境用の認証情報のセットを取得します。 + +- Subscription ID と Public Key の認証情報は、Client-Side トークンの生成にのみ使用できます。追加のロールが必要な場合は ([API Permissions](gs-permissions.md) を参照してください)、そのロールの API Key と Client Secret をリクエストしてください。 + +## Refreshing Credentials + +新しいクレデンシャルをリクエストするには、いつでも UID2 の連絡先に連絡してください。 + ## API Key and Client Secret Client-Side または Server-Side の実装を使用している場合([UID2 Client-Server Integration Guide for Prebid.js](../guides/integration-prebid-client-server.md) または [Client-Server Integration Guide for JavaScript](../guides/integration-javascript-client-server.md) を参照してください)、API Key とクライアントシークレットを使用して、Operator Service に接続し、API エンドポイントを呼び出すことができます。これらの値は、サービスの参加者を識別します。 @@ -40,26 +63,4 @@ UID2 アカウントのセットアップの一環として、1つ以上の API - これらの値が保存され使用されているすべての場所を追跡しておき、キーをローテーションする必要がある場合にすぐに実行できるようにしておいてください。 - 既存のキーとシークレットが漏洩した場合、新しいキーとシークレットに置き換えるプロセスを確立してください。 -API Key とクライアントシークレットは、認証情報が漏洩するリスクを減らすために、定期的に(例えば1年ごとに)更新するのがベストです。 - -## Subscription ID and Public Key - -Client-Side の実装([UID2 Client-Side Integration Guide for Prebid.js](../guides/integration-prebid-client-side.md) または [Client-Side Integration Guide for JavaScript](../guides/integration-javascript-client-side.md) を参照) を使用している場合は、以下の認証情報を受け取ります: -- **Subscription ID**: UID2 Service に対してサイトを識別する値です。 -- **Public key**: この値は暗号化に使用されます。 - -**Client keypair** は、これら2つの値を使用してアカウントを一意に定義するために使用されます。これらの値は、Client-Side でトークンを生成する実装を使用しているアカウントを識別するために使用されます。 - -UID2 を Client-Side で実装する場合、UID2 JavaScript SDK、Client-Side Integration for Mobile、または Prebid.js を使用している場合は、設定の一部として SDK または Prebid.js に値を提供してください。 - -Notes: - -- API Key とクライアントシークレットとは異なり、Subscription ID と Public key は安全に保管する必要はありません。 - -- これらの値は特定の [Environment](gs-environments.md) に対して有効です。インテグレーション環境と本番環境の両方を使用している場合、それぞれの環境用の認証情報のセットを取得します。 - -- Subscription ID と Public Key の認証情報は、Client-Side トークンの生成にのみ使用できます。追加のロールが必要な場合は ([API Permissions](gs-permissions.md) を参照してください)、そのロールの API Key と Client Secret をリクエストしてください。 - -## Refreshing Credentials - -新しいクレデンシャルをリクエストするには、いつでも UID2 の連絡先に連絡してください。 +API Key とクライアントシークレットは、認証情報が漏洩するリスクを減らすために、定期的に(例えば1年ごとに)更新するのがベストです。 \ No newline at end of file From eaba3cab8d3292e3216b66e6207aa153196ef794 Mon Sep 17 00:00:00 2001 From: Yoshihiko Miyaichi Date: Thu, 29 Aug 2024 12:39:31 +0900 Subject: [PATCH 10/25] To UID2 Credentials doc, add client-server. Plus update doc links. --- .../current/getting-started/gs-credentials.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-credentials.md b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-credentials.md index 183120075..e87f26c05 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-credentials.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-credentials.md @@ -13,7 +13,7 @@ UID2 参加者はそれぞれ、固有の | Audience | Credentials | Integration | | :--- | :--- | :--- | -| Client-Side 実装を使用する参加者 | 次の両方:
  • Subscription ID
  • Public key
これら 2 つをあわせて client keypair と呼ぶこともあります。 | 次のいずれかを使用したインテグレーション:
  • [UID2 Client-Side Integration Guide for Prebid.js](../guides/integration-prebid-client-side.md)
  • [Client-Side Integration Guide for JavaScript](../guides/integration-javascript-client-side.md)
| +| Client-Side 実装を使用する参加者 | 次の両方:
  • Subscription ID
  • Public key
これら 2 つをあわせて client keypair と呼ぶこともあります。 | 次のいずれかを使用したインテグレーション:
  • [UID2 Client-Side Integration Guide for Prebid.js](../guides/integration-prebid-client-side.md)
  • [Client-Side Integration Guide for JavaScript](../guides/integration-javascript-client-side.md)
  • [UID2 Client-Side Integration Guide for Mobile](../guides/integration-mobile-client-side.md)
| | Client-Server 実装を使用する参加者 | 次の両方:
  • API key、client key とも呼ばれます。
  • Client secret は、参加者と UID2 Service のみが知る値です。
| 次のいずれかを使用したインテグレーション:
  • [Client-Server Integration Guide for JavaScript](../guides/integration-javascript-client-server.md)
  • [UID2 Client-Server Integration Guide for Prebid.js](../guides/integration-prebid-server-side.md)
  • [UID2 Client-Server Integration Guide for Mobile](../guides/integration-mobile-client-server.md)
| | Server-Side のエンドポイントを使用する参加者 | 次の両方:
  • API key、client key とも呼ばれます。
  • Client secret は、参加者と UID2 Service のみが知る値です。
| 次のいずれかを使用したインテグレーション:
  • [Publisher Integration Guide, Server-Side](../guides/integration-publisher-server-side.md)
  • [Advertiser/Data Provider Integration Guide](../guides/advertiser-dataprovider-guide.md)
| From 52a81cf969d415b9dcc0bdfa13c18ff7583d6406 Mon Sep 17 00:00:00 2001 From: Yoshihiko Miyaichi Date: Thu, 29 Aug 2024 12:53:20 +0900 Subject: [PATCH 11/25] Link fix remaining from 2401 (PR 673) in EN+JA. Minor copy mods to Credentials doc. --- .../current/getting-started/gs-credentials.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-credentials.md b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-credentials.md index e87f26c05..6fa9ae55f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-credentials.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-credentials.md @@ -14,8 +14,8 @@ UID2 参加者はそれぞれ、固有の | Audience | Credentials | Integration | | :--- | :--- | :--- | | Client-Side 実装を使用する参加者 | 次の両方:
  • Subscription ID
  • Public key
これら 2 つをあわせて client keypair と呼ぶこともあります。 | 次のいずれかを使用したインテグレーション:
  • [UID2 Client-Side Integration Guide for Prebid.js](../guides/integration-prebid-client-side.md)
  • [Client-Side Integration Guide for JavaScript](../guides/integration-javascript-client-side.md)
  • [UID2 Client-Side Integration Guide for Mobile](../guides/integration-mobile-client-side.md)
| -| Client-Server 実装を使用する参加者 | 次の両方:
  • API key、client key とも呼ばれます。
  • Client secret は、参加者と UID2 Service のみが知る値です。
| 次のいずれかを使用したインテグレーション:
  • [Client-Server Integration Guide for JavaScript](../guides/integration-javascript-client-server.md)
  • [UID2 Client-Server Integration Guide for Prebid.js](../guides/integration-prebid-server-side.md)
  • [UID2 Client-Server Integration Guide for Mobile](../guides/integration-mobile-client-server.md)
| -| Server-Side のエンドポイントを使用する参加者 | 次の両方:
  • API key、client key とも呼ばれます。
  • Client secret は、参加者と UID2 Service のみが知る値です。
| 次のいずれかを使用したインテグレーション:
  • [Publisher Integration Guide, Server-Side](../guides/integration-publisher-server-side.md)
  • [Advertiser/Data Provider Integration Guide](../guides/advertiser-dataprovider-guide.md)
| +| Client-Server 実装を使用する参加者 | 次の両方:
  • API key、client key とも呼ばれます。
  • Client secret は、参加者と UID2 Service のみが知る値です。
| 次のいずれかを使用したインテグレーション:
  • [Client-Server Integration Guide for JavaScript](../guides/integration-javascript-client-server.md)
  • [UID2 Client-Server Integration Guide for Prebid.js](../guides/integration-prebid-client-server.md)
  • [UID2 Client-Server Integration Guide for Mobile](../guides/integration-mobile-client-server.md)
| +| Server-Side 実装を使用する参加者 | 次の両方:
  • API key、client key とも呼ばれます。
  • Client secret は、参加者と UID2 Service のみが知る値です。
| 次のいずれかを使用したインテグレーション:
  • [Publisher Integration Guide, Server-Side](../guides/integration-publisher-server-side.md)
  • [Advertiser/Data Provider Integration Guide](../guides/advertiser-dataprovider-guide.md)
| 本番環境だけでなくインテグレーション環境も使用している場合は、それぞれの環境用に別々の認証情報を取得します。 @@ -37,10 +37,6 @@ Notes: - Subscription ID と Public Key の認証情報は、Client-Side トークンの生成にのみ使用できます。追加のロールが必要な場合は ([API Permissions](gs-permissions.md) を参照してください)、そのロールの API Key と Client Secret をリクエストしてください。 -## Refreshing Credentials - -新しいクレデンシャルをリクエストするには、いつでも UID2 の連絡先に連絡してください。 - ## API Key and Client Secret Client-Side または Server-Side の実装を使用している場合([UID2 Client-Server Integration Guide for Prebid.js](../guides/integration-prebid-client-server.md) または [Client-Server Integration Guide for JavaScript](../guides/integration-javascript-client-server.md) を参照してください)、API Key とクライアントシークレットを使用して、Operator Service に接続し、API エンドポイントを呼び出すことができます。これらの値は、サービスの参加者を識別します。 @@ -63,4 +59,8 @@ UID2 アカウントのセットアップの一環として、1つ以上の API - これらの値が保存され使用されているすべての場所を追跡しておき、キーをローテーションする必要がある場合にすぐに実行できるようにしておいてください。 - 既存のキーとシークレットが漏洩した場合、新しいキーとシークレットに置き換えるプロセスを確立してください。 -API Key とクライアントシークレットは、認証情報が漏洩するリスクを減らすために、定期的に(例えば1年ごとに)更新するのがベストです。 \ No newline at end of file +API Key とクライアントシークレットは、認証情報が漏洩するリスクを減らすために、定期的に(例えば1年ごとに)更新するのがベストです。 + +## Refreshing Credentials + +新しいクレデンシャルをリクエストするには、いつでも UID2 の連絡先に連絡してください。 \ No newline at end of file From 162dbc798c84697d03be765af996a3ba6272ec78 Mon Sep 17 00:00:00 2001 From: Yoshihiko Miyaichi Date: Thu, 29 Aug 2024 15:48:03 +0900 Subject: [PATCH 12/25] Updated 4 Mermaid diagram files. Some renaming and made sure all source info is saved for them. --- .../guides/advertiser-dataprovider-guide.md | 2 +- .../guides/images/advertiser-flow-mermaid.png | Bin 59381 -> 87780 bytes .../guides/images/dsp-guide-flow-mermaid.png | Bin 37629 -> 33496 bytes ...egration-publisher-server-side-mermaid.png | Bin 66485 -> 63568 bytes .../resource/advertiser-flow-mermaid.md.bk | 50 ++++++++----- .../resource/dsp-guide-flow-mermaid.md.bk | 34 ++++++--- ...on-javascript-client-server-mermaid.md.bak | 19 +++-- ...ation-publisher-server-side-mermaid.md.bak | 66 ++++++++++++++++++ 8 files changed, 142 insertions(+), 29 deletions(-) create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/guides/images/resource/integration-publisher-server-side-mermaid.md.bak diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/advertiser-dataprovider-guide.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/advertiser-dataprovider-guide.md index bfb627f14..a41c382ed 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/advertiser-dataprovider-guide.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/advertiser-dataprovider-guide.md @@ -23,7 +23,7 @@ DII とは、正規化されたメールアドレスや電話番号、あるい ![Advertiser Flow](images/advertiser-flow-mermaid.png) - + 図の各部の詳細については、以下のセクションを参照してください: 1. [Retrieve a raw UID2 for DII using the identity map endpoints](#1-retrieve-a-raw-uid2-for-dii-using-the-identity-map-endpoint) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/images/advertiser-flow-mermaid.png b/i18n/ja/docusaurus-plugin-content-docs/current/guides/images/advertiser-flow-mermaid.png index 0fd2b6e298d69d43bfc6cb3def8f7face5a34614..1be8cab6277f80df4b949ab65b3a3dd896ffec22 100644 GIT binary patch literal 87780 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 TaIe~L9q>El=zhH10g>`wj0$XT literal 59381 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 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/images/dsp-guide-flow-mermaid.png b/i18n/ja/docusaurus-plugin-content-docs/current/guides/images/dsp-guide-flow-mermaid.png index a8274238e8c0e44b8fc49091b30547144c8963b9..fec02fd8ba056f5bf467443722d924530349fad6 100644 GIT binary patch literal 33496 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 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/images/integration-publisher-server-side-mermaid.png b/i18n/ja/docusaurus-plugin-content-docs/current/guides/images/integration-publisher-server-side-mermaid.png index 2b5a9025d0942cf8598faca26ea7f798cacd33fe..3bf5f6f2a4e64ec7d26212106271a595b3b7e503 100644 GIT binary patch literal 63568 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 literal 66485 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 L5YH98@A-cLrz+*T diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/images/resource/advertiser-flow-mermaid.md.bk b/i18n/ja/docusaurus-plugin-content-docs/current/guides/images/resource/advertiser-flow-mermaid.md.bk index d59073917..177702568 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/images/resource/advertiser-flow-mermaid.md.bk +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/images/resource/advertiser-flow-mermaid.md.bk @@ -1,17 +1,35 @@ + + + + + + sequenceDiagram - participant DP as Data Provider - participant UID2 as UID2 Service - participant DSP - loop 1. IDマップエンドポイントを使用して、DIIのUID2を取得します。 - DP->>UID2: 1-a. DIIを含むリクエストをIDマッピングエンドポイントに送信します。 - UID2->>DP: 1-b. ID マッピングサービスから返された raw UID2 とソルトバケットを格納します。 - end - DP-->>DSP: 2. 蓄積したraw UID2をDSPに送信し、オーディエンスを作成します。 - loop 3. 蓄積されているUID2に関連するソルトバケットのローテーションを監視します。 - DP->>UID2: 3-a. バケットサービスを利用して、ソルトバケットのローテーションを返します。 - UID2->>DP: 3-b. 指定されたタイムスタンプ以降にローテーションしたソルトバケットを返します。 - DP->>UID2: 3-c. ローテーションしたソルトバケットと保存されているUID2ソルトバケットを比較します。
ローテーションした場合は、新しいraw UID2のためにDIIをIDマッピングサービスに再送信します。 - UID2->>DP: 3-d. ID マッピングサービスから返された raw UID2 とソルトバケットを保存します。 - end - - + participant DP as Data Provider + participant UID2 as UID2 Operator + participant DSP + loop 1. IDマップエンドポイントを使用して、DII の UID2 を取得します。 + DP->>UID2: 1-a. DII を含むリクエストを ID マッピングエンドポイントに送信します。 + UID2->>DP: 1-b. ID マッピングサービスから返された raw UID2 とソルトバケットを格納します。 + end + DP-->>DSP: 2. 蓄積した raw UID2 を DSP に送信し、オーディエンスを作成します。 + + loop 3. 蓄積されている UID2 に関連するソルトバケットのローテーションを監視します。 + DP->>UID2: 3-a. バケットサービスを利用して、ソルトバケットのローテーションを返します。 + UID2->>DP: 3-b. 指定されたタイムスタンプ以降にローテーションしたソルトバケットを返します。 + DP->>UID2: 3-c. ローテーションしたソルトバケットと保存されている UID2 ソルトバケットを比較します。
ローテーションした場合は、新しい raw UID2 のために DII を ID マッピングサービスに再送信します。 + UID2->>DP: 3-d. ID マッピングサービスから返された raw UID2 とソルトバケットを保存します。 + end + + + + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/images/resource/dsp-guide-flow-mermaid.md.bk b/i18n/ja/docusaurus-plugin-content-docs/current/guides/images/resource/dsp-guide-flow-mermaid.md.bk index d69d67989..6d8e09e43 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/images/resource/dsp-guide-flow-mermaid.md.bk +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/images/resource/dsp-guide-flow-mermaid.md.bk @@ -1,21 +1,39 @@ + + + + + + sequenceDiagram participant U as User participant SSP participant DSP - participant UID2 as UID2 Service + participant EUID as UID2 Operator participant TC as Transparency & Control Portal Note over U,TC: 1. ユーザーのオプトアウトを受け入れます。 U->>TC: 1-a. ユーザーがオプトアウトしました。 activate TC - TC->>UID2: 1-b. UID2 Serviceはオプトアウトを受け付けます。 + TC->>EUID: 1-b. UID2 Servic はオプトアウトを受け付けます。 deactivate TC - activate UID2 - UID2->>DSP: 1-c. DSPはオプトアウトを受信します。 - deactivate UID2 - Note over U,TC: 2. RTBで使用する UID2 Token を復号化します。 - SSP-->>DSP: SSPは入札のためにDSPを呼び出します。 + activate EUID + EUID->>DSP: 1-c. DSP はオプトアウトを受信します。 + deactivate EUID + Note over U,TC: 2. RTB で使用する UID2 Token を復号化します。 + SSP-->>DSP: SSP は入札のために DSP を呼び出します。 DSP->>DSP: 2-a. UID2 Token を復号化します。 DSP->>DSP: 2-b. 1 からのユーザーオプトアウトを受け入れた入札ロジックを実行します。 - + + + diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/images/resource/integration-javascript-client-server-mermaid.md.bak b/i18n/ja/docusaurus-plugin-content-docs/current/guides/images/resource/integration-javascript-client-server-mermaid.md.bak index a9dfa0495..5e2568ff2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/images/resource/integration-javascript-client-server-mermaid.md.bak +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/images/resource/integration-javascript-client-server-mermaid.md.bak @@ -1,4 +1,8 @@ -sequenceDiagram + + + + + sequenceDiagram participant U as User participant P as Publisher participant UID2 as UID2 Service @@ -47,8 +51,15 @@ sequenceDiagram P->>U: 4-b. パブリッシャーはユーザーの UID2 Token をクリアします。 deactivate P - +} + --> + + \ No newline at end of file +--> diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/images/resource/integration-publisher-server-side-mermaid.md.bak b/i18n/ja/docusaurus-plugin-content-docs/current/guides/images/resource/integration-publisher-server-side-mermaid.md.bak new file mode 100644 index 000000000..a48919211 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/images/resource/integration-publisher-server-side-mermaid.md.bak @@ -0,0 +1,66 @@ + + + + + sequenceDiagram + participant U as User + participant P as Publisher + participant UID2 as UID2 Operator + participant SSP + + Note over U,SSP: 1. アイデンティティの確立 + U->>+P: 1-a. ユーザーがパブリッシャーアセットにアクセスした。 + P->>-U: 1-b. パブリッシャーは、データの活用についての透明性を提供します。 + activate U + U->>P: 1-c. ユーザー認証 + deactivate U + activate P + P->>UID2: 1-d. パブリッシャーはユーザーの DII をトークン生成サービスに送信します。 + deactivate P + activate UID2 + UID2->>P: 1-e. トークン生成サービスは、UID2 Token を返します。 + deactivate UID2 + activate P + P->>U: 1-f. パブリッシャーはユーザーに UID2 を設定します。 + deactivate P + + Note over U,SSP: 2. UID2 Token を用いた入札 + P->>SSP: 2-a. パブリッシャーは UID2 Token を使って広告のために SSP を呼び出します。 + activate SSP + SSP->>P: 2-b. SSP は、表示する広告を返します。 + deactivate SSP + activate P + P->>U: 2-c. パブリッシャーは、ユーザーに広告を表示します。 + deactivate P + + Note over U,SSP: 3. UID2 Token のリフレッシュ + U->>P: 3-a. ユーザーがパブリッシャーアセットに戻ります。 + activate P + P->>UID2: 3-b. パブリッシャーは Refresh Token を使用して、ユーザーの新しい UID2 Token をリクエストします。 + deactivate P + activate UID2 + UID2->>P: 3-c. ユーザーがオプトアウトしていない場合、Refresh Token Service は新しい UID2 Token を返します。 + deactivate UID2 + activate P + P->>U: 3-d. パブリッシャーはユーザーの新しい UID2 を設定します。 + deactivate P + + Note over U,SSP: 4. ユーザーログアウト + U->>P: 4-a. ユーザーがパブリッシャーアセットからログアウトしました。 + activate P + P->>U: 4-b. パブリッシャーはユーザーの UID2 Token をクリアします。 + deactivate P + + + + + From 82c484d1424f5adf3ba570dbc646d93ec9dc6826 Mon Sep 17 00:00:00 2001 From: Yoshihiko Miyaichi Date: Fri, 30 Aug 2024 09:40:25 +0900 Subject: [PATCH 13/25] update SDK summary table re Python SDK + update functionality tables (wording of columns 2 and 5, checks rather than wording, correction to Python and JavaScript). --- .../current/guides/snowflake_integration.md | 6 +++--- .../current/sdks/sdk-ref-android.md | 6 +++--- .../current/sdks/sdk-ref-cplusplus.md | 6 +++--- .../current/sdks/sdk-ref-csharp-dotnet.md | 6 +++--- .../current/sdks/sdk-ref-ios.md | 6 +++--- .../current/sdks/sdk-ref-java.md | 2 +- .../current/sdks/sdk-ref-javascript-v2.md | 6 +++--- .../current/sdks/sdk-ref-javascript.md | 6 +++--- .../current/sdks/sdk-ref-python.md | 6 +++--- .../current/sdks/summary-sdks.md | 3 +-- 10 files changed, 26 insertions(+), 27 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/snowflake_integration.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/snowflake_integration.md index 931bfa058..9a9790632 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/snowflake_integration.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/snowflake_integration.md @@ -21,11 +21,11 @@ UID2 の以下のリストが Snowflake marketplace で入手可能です: 次の表は、UID2 Snowflake インテグレーション で利用可能な機能をまとめたものです。 -| Encrypt Raw UID2 to UID2 Token | Decrypt Raw UID2 from UID2 Token | Generate UID2 Token from DII | Refresh UID2 Token | Map DII to Raw UID2s | +| Encrypt Raw UID2 to UID2 Token | Decrypt UID2 Token to Raw UID2 | Generate UID2 Token from DII | Refresh UID2 Token | Map DII to Raw UID2s | | :--- | :--- | :--- | :--- | :--- | -| Supported | Supported | Not supported* | Not supported | Supported | +| ✅ | ✅ | —* | — | ✅ | -*DII から直接 UID2 Token を生成することはできません。しかし、DII を raw UID2 に変換し、raw UID2 を暗号化して UID2 Token にすることはできます。 +*Snowflake を使用して DII から直接 UID2 Token を生成することはできません。ただし、DII を raw UID2 に変換し、raw UID2 を UID2 Tokenに暗号化することはできます。 :::note ビッドストリームで UID2 Token を共有するパブリッシャーの場合は、[Tokenized Sharing in the Bidstream](../sharing/sharing-tokenized-from-data-bid-stream.md) を参照してください diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-android.md b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-android.md index e17f3faeb..ef937a0a5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-android.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-android.md @@ -30,9 +30,9 @@ SDK for Android は、以下の用途に使用できます: この SDK は、Android デバイス上で動作するアプリで UID2 をサポートしたいパブリッシャー向けに、UID2 とのインテグレーションを簡素化します。次の表に、この SDK がサポートする機能を示します。 -| Encrypt Raw UID2 to UID2 Token | Decrypt UID2 Token to Raw UID2 | Generate UID2 Token from DII | Refresh UID2 Token | -| :--- | :--- | :--- | :--- | -| Not supported | Not supported | Supported | Supported | +| Encrypt Raw UID2 to UID2 Token | Decrypt UID2 Token to Raw UID2 | Generate UID2 Token from DII | Refresh UID2 Token | Map DII to Raw UID2s | +| :--- | :--- | :--- | :--- | :--- | +| — | — | ✅ | ✅ | — | SDK for Android は、Android アプリに代わって UID2 ID を生成または管理するように設計されています。プラットフォームネイティブの暗号化ツールを使って ID をデバイス上に安全に保存することで、アプリのライフサイクル全体にわたって UID2 ID を持続させることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-cplusplus.md b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-cplusplus.md index 830482bf8..918800cf7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-cplusplus.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-cplusplus.md @@ -19,9 +19,9 @@ UID2 Server-Side SDK を使用すると、UID2 Token を復号化して raw UID2 このSDKは、Server-Sideのコーディングに C++ を使用している DSP または UID2 Sharers のために、UID2 とのインテグレーションを簡素化します。次の表に、この SDK がサポートする機能を示します。 -| Encrypt Raw UID2 to UID2 Token | Decrypt UID2 Token to Raw UID2 | Generate UID2 Token from DII | Refresh UID2 Token | -| :--- | :--- | :--- | :--- | -| Supported | Supported | Not supported | Not supported | +| Encrypt Raw UID2 to UID2 Token | Decrypt UID2 Token to Raw UID2 | Generate UID2 Token from DII | Refresh UID2 Token | Map DII to Raw UID2s | +| :--- | :--- | :--- | :--- | :--- | +| ✅ | ✅ | — | — | — | ## API Permissions diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-csharp-dotnet.md b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-csharp-dotnet.md index e10d7101b..bc5a3318e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-csharp-dotnet.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-csharp-dotnet.md @@ -18,9 +18,9 @@ Server-Side で SDK for C# / .NET を使用すると、以下を簡単に行う この SDK は、Server-Sideのコーディングに C# / .NET を使用している DSP または UID2 sharer のために、UID2 とのインテグレーションを簡素化します。次の表は、この SDK がサポートする機能を示しています。 -| Encrypt Raw UID2 to UID2 Token | Decrypt UID2 Token to Raw UID2 | Generate UID2 Token from DII | Refresh UID2 Token | -| :--- | :--- | :--- | :--- | -| Supported | Supported | Not supported | Not supported | +| Encrypt Raw UID2 to UID2 Token | Decrypt UID2 Token to Raw UID2 | Generate UID2 Token from DII | Refresh UID2 Token | Map DII to Raw UID2s | +| :--- | :--- | :--- | :--- | :--- | +| ✅ | ✅ | — | — | — | ## API Permissions diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-ios.md b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-ios.md index d9d17a87a..b26ca22b1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-ios.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-ios.md @@ -29,9 +29,9 @@ Although this page refers to SDK for iOS, this SDK also supports tvOS. For the r この SDK は、iOS デバイス上で動作するアプリで UID2 をサポートしたいパブリッシャー向けに、UID2 とのインテグレーションを簡素化します。次の表に、この SDK がサポートする機能を示します。 -| Encrypt Raw UID2 to UID2 Token | Decrypt UID2 Token to Raw UID2 | Generate UID2 Token from DII | Refresh UID2 Token | -| :--- | :--- | :--- | :--- | -| Not supported | Not supported | Supported | Supported | +| Encrypt Raw UID2 to UID2 Token | Decrypt UID2 Token to Raw UID2 | Generate UID2 Token from DII | Refresh UID2 Token | Map DII to Raw UID2s | +| :--- | :--- | :--- | :--- | :--- | +| — | — | ✅ | ✅ | — | SDK for iOS は、iOS アプリケーションに代わって UID2 ID を生成または管理するように設計されています。プラットフォームネイティブの暗号化ツールを使って ID をデバイスに安全に保存することで、UID2 ID をアプリのライフサイクル全体にわたって持続させることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-java.md b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-java.md index 3332e9708..698416f28 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-java.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-java.md @@ -23,7 +23,7 @@ SDK for Java を使用すると、以下が容易になります: | Encrypt Raw UID2 to UID2 Token | Decrypt UID2 Token to Raw UID2 | Generate UID2 Token from DII | Refresh UID2 Token | Map DII to Raw UID2s | | :--- | :--- | :--- | :--- | :--- | -| Supported | Supported | Supported | Supported | Supported | +| ✅ | ✅ | ✅ | ✅ | ✅ | ## API Permissions diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-javascript-v2.md b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-javascript-v2.md index 287fedfdf..2fb409f50 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-javascript-v2.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-javascript-v2.md @@ -22,9 +22,9 @@ import Link from '@docusaurus/Link'; この SDK は、UID2 をサポートしたいすべてのパブリッシャーに対して、UID2 とのインテグレーションを簡素化します。次の表は、SDK がサポートする機能を示しています。 -| Encrypt Raw UID2 to UID2 Token | Decrypt UID2 Token to Raw UID2 | Generate UID2 Token from DII | Refresh UID2 Token | -| :--- | :--- | :--- | :--- | -| Not supported | Not supported | Not supported | Supported | +| Encrypt Raw UID2 to UID2 Token | Decrypt UID2 Token to Raw UID2 | Generate UID2 Token from DII | Refresh UID2 Token | Map DII to Raw UID2s | +| :--- | :--- | :--- | :--- | :--- | +| — | — | — | ✅ | — | ## API Permissions diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-javascript.md b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-javascript.md index 13fbb1cf5..06450d12a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-javascript.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-javascript.md @@ -41,9 +41,9 @@ Prebid.js を UID2 ID モジュールと一緒に使用しているや、UID2 この SDK は、独自にカスタマイズした UID2 インテグレーションを行いたいパブリッシャーの開発を簡素化します。次の表は、SDK がサポートする機能を示しています。 -| Encrypt Raw UID2 to UID2 Token | Decrypt UID2 Token to Raw UID2 | Generate UID2 Token from DII | Refresh UID2 Token | -| :--- | :--- | :--- | :--- | -| Not supported | Not supported | Not supported | Supported | +| Encrypt Raw UID2 to UID2 Token | Decrypt UID2 Token to Raw UID2 | Generate UID2 Token from DII | Refresh UID2 Token | Map DII to Raw UID2s | +| :--- | :--- | :--- | :--- | :--- | +| — | — | ✅ | ✅ | — | ## API Permissions diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-python.md b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-python.md index 2549cce26..c59fbc845 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-python.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-python.md @@ -20,9 +20,9 @@ UID2 Server-Side SDK を使用することで、以下が容易になります: この SDK は、Server-Sideのコーディングに Python を使用している DSP または UID2 Sharers のために、UID2 とのインテグレーションを簡素化します。次の表に、この SDK がサポートする機能を示します。 -| Encrypt Raw UID2 to UID2 Token | Decrypt UID2 Token to Raw UID2 | Generate UID2 Token from DII | Refresh UID2 Token | -| :--- | :--- | :--- | :--- | -| Supported | Supported | Supported | Supported | +| Encrypt Raw UID2 to UID2 Token | Decrypt UID2 Token to Raw UID2 | Generate UID2 Token from DII | Refresh UID2 Token | Map DII to Raw UID2s | +| :--- | :--- | :--- | :--- | :--- | +| ✅ | ✅ | ✅ | ✅ | ✅ | ## API Permissions diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/summary-sdks.md b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/summary-sdks.md index db99f9e35..5b931ca85 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/summary-sdks.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/summary-sdks.md @@ -18,7 +18,7 @@ SDK の機能を確認して使用する SDK を決定し、SDK の表をクリ 次の表は、各 SDK で利用可能な機能をまとめたものです。 -| UID2 SDK for... | Client-Side or Server-Side | Encrypt Raw UID2 to UID2 Token | Decrypt UID2 Token to Raw UID2 | Generate UID2 Token from DII* | Refresh UID2 Token | Map DII to Raw UID2s | +| UID2 SDK for... | Client-Side or Server-Side | Encrypt Raw UID2 to UID2 Token | Decrypt UID2 Token to Raw UID2 | Generate UID2 Token from DII | Refresh UID2 Token | Map DII to Raw UID2s* | | :--- | :--- | :--- | :--- | :--- | :--- | :--- | |JavaScript | Client| — | — | ✅ | ✅ | — | |Java | Server | ✅ | ✅ | ✅ | ✅ | ✅ | @@ -26,7 +26,6 @@ SDK の機能を確認して使用する SDK を決定し、SDK の表をクリ |C# / .NET | Server | ✅ | ✅ | — | — | — | |C++ | Server | ✅ | ✅ | — | — | — | |Android | Client (Mobile) | — | — | ✅ | ✅ | — | -|iOS | Client (Mobile)| — | — | ✅| ✅ |— | *DII から raw UID2 を生成する必要がある広告主およびデータプロバイダは Snowflake ([Snowflake Integration Guide](../guides/snowflake_integration.md) を参照してください) または [POST /identity/map](../endpoints/post-identity-map.md) エンドポイントを使用することができます。 From 7396c463881fc586c8e72757fe2bb30952fac5cf Mon Sep 17 00:00:00 2001 From: Yoshihiko Miyaichi Date: Fri, 30 Aug 2024 09:45:33 +0900 Subject: [PATCH 14/25] Update public docs regarding VPC --- .../current/guides/operator-guide-aws-marketplace.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/operator-guide-aws-marketplace.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/operator-guide-aws-marketplace.md index 7acaad567..1997ea089 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/operator-guide-aws-marketplace.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/operator-guide-aws-marketplace.md @@ -119,7 +119,7 @@ AWS で 1 つまたは複数の UID2 Operator をサブスクライブしてデ 以下は、[デプロイ](#deployment) の実行中または実行後にカスタマイズできる内容です。 -- VPC: 新しい VPC とサブネットを設定するか、既存のものを使用するかのどちらかです。 +- VPC: 既存の VPC と関連する VPC サブネット ID を指定する必要があります。 - ルートボリュームサイズ (8G Minimum) - SSH キー: UID2 Operator の EC2 インスタンスにアクセスする際に使用する SSH キーです。 - [Instance type](https://aws.amazon.com/ec2/instance-types/m5/): m5.2xlarge、m5.4xlarge、といった具合です。カスタマイズがない場合は、デフォルト値の m5.2xlarge を推奨します。 @@ -187,7 +187,9 @@ UID2 Operator を AWS Marketplace にデプロイするには、以下の手順 | Instance root volume size | 15GB 以上を推奨します。 | | Key Name for SSH | デプロイされた EC2 インスタンスに SSH アクセスするための EC2 キーペアです。 | | Trusted Network CIDR | CIDR (Classless Inter-Domain Routing) 値は、オペレーターサービスにアクセスできる IP アドレス範囲を決定します。
UID2 オペレーターへのアクセスを制限して、内部ネットワークまたはロードバランサーからのみアクセスできるようにするには、CIDR 値として内部 IP 範囲を指定します。 | - +| VPC | 既存の VPC ID。 | +| VpcSubnet1 | 既存の VPC AZ1 サブネット ID。 | +| VpcSubnet2 | 既存の VPC AZ2 サブネット ID。 | ### Stack Configuration Options From b4bb2d563b2913cd9291db9b2005e7f55b914080 Mon Sep 17 00:00:00 2001 From: Yoshihiko Miyaichi Date: Fri, 30 Aug 2024 10:37:53 +0900 Subject: [PATCH 15/25] In the mobile integration overview, added troubleshooting and FAQ info. --- .../current/getting-started/gs-faqs.md | 4 ++ .../integration-mobile-client-server.md | 2 + .../guides/integration-mobile-client-side.md | 2 + .../guides/integration-mobile-overview.md | 53 +++++++++++++++++++ .../current/sdks/sdk-ref-android.md | 2 + 5 files changed, 63 insertions(+) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md index 904efdab2..20c50068b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md @@ -20,6 +20,10 @@ UID2 フレームワークに関するよくある質問を紹介します。 - [UID2 に DII を送信すると、UID2 はその情報を保存しますか?](#when-i-send-dii-to-uid2-does-uid2-store-the-information) - [UID2 は HIPAA で規制されているデータの処理を許可しますか?](#does-uid2-allow-the-processing-of-hipaa-regulated-data) +:::note +モバイルパブリッシャーインテグレーションに関する FAQs については、[FAQs for Mobile Integrations](../guides/integration-mobile-overview.md#faqs-for-mobile-integrations) を参照してください。 +::: + #### Will all integration partners in the EUID infrastructure (SSPs, third-party data providers, measurement providers) be automatically integrated with UID2? EUID インフラのすべてのインテグレーションパートナー(SSP、サードパーティデータプロバイダー、測定プロバイダー)は、自動的に UID2 にインテグレーションされますか? diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-mobile-client-server.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-mobile-client-server.md index 2740d1b9d..2eaa55c8e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-mobile-client-server.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-mobile-client-server.md @@ -33,6 +33,8 @@ UID2 は、[Android](../sdks/sdk-ref-android.md) および [iOS](../sdks/sdk-ref このガイドの、**UID2 mobile SDKs** は、SDK for Android と SDK for iOS の両方を含むグループ用語です。 ::: +モバイルパブリッシャーインテグレーションに関する FAQs については、[FAQs for Mobile Integrations](../guides/integration-mobile-overview.md#faqs-for-mobile-integrations) を参照してください。 + 以下の手順を完了する必要があります: 1. [Complete the UID2 account setup](#complete-the-uid2-account-setup). diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-mobile-client-side.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-mobile-client-side.md index 252b32b40..2e5af7acc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-mobile-client-side.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-mobile-client-side.md @@ -32,6 +32,8 @@ UID2 は、[Android](../sdks/sdk-ref-android.md) および [iOS](../sdks/sdk-ref このガイドの、**UID2 mobile SDKs** は、SDK for Android と SDK for iOS の両方を含むグループ用語です。 ::: +モバイルパブリッシャーインテグレーションに関する FAQs については、[FAQs for Mobile Integrations](../guides/integration-mobile-overview.md#faqs-for-mobile-integrations) を参照してください。 + UID2 を Client-Side でインテグレーションするには、以下の手順を完了する必要があります: 1. [Complete the UID2 account setup](#complete-the-uid2-account-setup). diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-mobile-overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-mobile-overview.md index 5dbc59601..dea4718de 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-mobile-overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-mobile-overview.md @@ -57,3 +57,56 @@ UID2 mobile SDK を使用してモバイルアプリを UID2 とインテグレ - [Client-Side Integration Guide for Mobile](integration-mobile-client-side.md) - [Client-Server Integration Guide for Mobile](integration-mobile-client-server.md) + +## FAQs for Mobile Integrations + +UID2 モバイルインテグレーションに関する FAQ 情報は次のとおりです: + +- [iOS: Swift Package Manager と Cocoapods/Podspec を併用できますか?](#ios-can-i-use-swift-package-manager-and-cocoapodspodspec-together) + +#### iOS: Can I use Swift Package Manager and Cocoapods/Podspec together? +iOS: Swift Package Manager と Cocoapods/Podspec を併用できますか? + +UID2 Mobile インテグレーションには、UID2 Mobile SDK、UID2 GMA プラグイン、UID2 IMA プラグインを Swift Package Manager または CocoaPods でインストールできます。 + +推奨事項: + +- すでに CocoaPods を使用している場合、特に Google Ad Frameworks を自分でインテグレーションしている場合は、UID2 SDK を CocoaPods を使用してインテグレーションすることが最適です。 +- 依存関係のインテグレーションが初めての場合、または Swift Package Manager ですでに依存関係がある場合は、UID2 モバイルインテグレーションには Swift Package Manager を使用することを勧めます。 + +:::caution +すでに CocoaPods を使用している場合、UID2 SDK とプラグインを Swift Package Manager (SPM) を使用してインテグレーションしても、アプリが UID2 SDK とプラグインを使用することを妨げるものではありません。ただし、潜在的な競合があります。すでに CocoaPods で GMA をインストールしている場合、その後 UID2 Mobile SDK を Swift Package Manager でインストールすると、実装に GMA の 2 つのコピーが含まれるため、動作しません。 +::: + +したがって、すでに GMA をインストールしていて UID2 をインストールする場合は、まず CocoaPods から GMA を削除してください。 + +:::tip +Podspec は、Cocoapods 内のファイル名で、アプリにインテグレーションするライブラリを定義するものです。 +::: + +## Troubleshooting Tips for Mobile Integrations + +UID2 モバイルインテグレーションのトラブルシューティングに役立つ追加情報です: + +- [Android SDK が本番環境に接続できない](#android-sdk-cannot-connect-in-production-environment) + +#### Android SDK cannot connect in Production environment +Android SDK が本番環境に接続できない + +トラブルシューティングの最初のステップは、ヘルスチェックエンドポイントを確認することです。 + +モバイルデバイスまたは Android エミュレータから、このエンドポイントに到達できるかどうかを確認してください: + +``` +https://prod.uidapi.com/ops/healthcheck +``` + +レスポンスは `OK` である必要があります。 + +エラーレスポンスは、アプリが UID2 エンドポイントに到達できないネットワークの問題を示す場合があります。たとえば: + +- `Caused by java.net.UnknownHostException: Unable to resolve host "prod.uidapi.com": No address associated with hostname` + + SDK はバックグラウンドで UID2 Token をリフレッシュしようとします。IOException などのエラーが発生した場合、SDK は複数回リトライします。リトライが成功しない場合、この例外が表示されます。 + +ログを有効にすると、別のトラブルシューティングステップが可能になります。詳細については、[Enable Logging](integration-mobile-client-side.md#enable-logging) を参照してください。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-android.md b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-android.md index ef937a0a5..40f561dee 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-android.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-android.md @@ -22,6 +22,8 @@ SDK for Android は、以下の用途に使用できます: | Google Mobile Ads (GMA) SDK を使用して、Android アプリからの広告リクエストで UID2 token を [Secure Signals](https://support.google.com/admob/answer/11556288) として送信するには、次の手順に従います。 | [UID2 GMA Plugin for Android Integration Guide](../guides/mobile-plugin-gma-android.md) | | Google Interactive Media Ads (IMA) SDK for Android を使用して、Android アプリからの広告リクエストで UID2 token を [Secure Signals](https://support.google.com/admob/answer/11556288) として送信するには、次の手順に従います。 | [UID2 IMA Plugin for Android Integration Guide](../guides/mobile-plugin-ima-android.md) | +モバイルパブリッシャーインテグレーションに関する FAQs については、[FAQs for Mobile Integrations](../guides/integration-mobile-overview.md#faqs-for-mobile-integrations) を参照してください。 + ## Non-Mobile Android Device Support この SDK for Android は、Android プラットフォームの非モバイルデバイスにも使用できます。 From c733759050e0773c280fcc75fd8060fec90c0d67 Mon Sep 17 00:00:00 2001 From: Yoshihiko Miyaichi Date: Fri, 30 Aug 2024 10:52:38 +0900 Subject: [PATCH 16/25] Add Python sdk guide for monitoring salt bucket rotations --- .../current/sdks/sdk-ref-python.md | 40 +++++++++++++++++-- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-python.md b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-python.md index c59fbc845..b7cd165a9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-python.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-python.md @@ -20,9 +20,9 @@ UID2 Server-Side SDK を使用することで、以下が容易になります: この SDK は、Server-Sideのコーディングに Python を使用している DSP または UID2 Sharers のために、UID2 とのインテグレーションを簡素化します。次の表に、この SDK がサポートする機能を示します。 -| Encrypt Raw UID2 to UID2 Token | Decrypt UID2 Token to Raw UID2 | Generate UID2 Token from DII | Refresh UID2 Token | Map DII to Raw UID2s | -| :--- | :--- | :--- | :--- | :--- | -| ✅ | ✅ | ✅ | ✅ | ✅ | +| Encrypt Raw UID2 to UID2 Token | Decrypt UID2 Token to Raw UID2 | Generate UID2 Token from DII | Refresh UID2 Token | Map DII to Raw UID2s | Monitor Rotated Salt Buckets | +| :--- | :--- | :--- | :--- | :--- |:--- | +| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ## API Permissions @@ -209,6 +209,12 @@ Server-Side インテグレーションを使用している場合 (詳細は [P ユーザーがオプトアウトしている場合、このメソッドは `None` を返します。ユーザーがオプトアウトしていることを確認するには、`token_refresh_response.is_optout()` 関数を使用できます。 ## Usage for Advertisers/Data Providers +広告主/データプロバイダーに適用される操作は次の2つです: +- [Map DII to raw UID2s](#map-dii-to-raw-uid2s) +- [Monitor rotated salt buckets](#monitor-rotated-salt-buckets) + +### Map DII to Raw UID2s +メールアドレス、電話番号、またはそれらのハッシュを、それぞれの raw UID2 とソルトバケット ID にマッピングするには、次の手順に従います: 1. `IdentityMapClient` のインスタンスをインスタンス変数として生成します。 ```py client = IdentityMapClient(base_url, api_key, client_secret) @@ -219,7 +225,9 @@ Server-Side インテグレーションを使用している場合 (詳細は [P identity_map_response = client.generate_identity_map(IdentityMapInput.from_emails(["email1@example.com", "email2@example.com"])) ``` ->Note: SDK は入力値を送信する前にハッシュ化します。これにより、生のメールアドレスや電話番号がサーバーから外に出ることがなくなります。 +:::note +SDK は入力値を送信する前にハッシュ化します。これにより、生のメールアドレスや電話番号がサーバーから外に出ることがなくなります。 +::: 3. マップされた結果とマップされなかった結果を取得します: ```py @@ -236,7 +244,31 @@ Server-Side インテグレーションを使用している場合 (詳細は [P unmapped_identity = unmapped_identities.get("email1@example.com") reason = unmapped_identity.get_reason() ``` +### Monitor Rotated Salt Buckets +ソルトバケットを監視するには、次の手順に従います: +1. `IdentityMapClient` のインスタンスをインスタンス変数として生成します。または、[Map DII to raw UID2s:](#map-dii-to-raw-uid2s) から再利用します。 + ```py + client = IdentityMapClient(base_url, api_key, client_secret) + ``` +2. タイムスタンプ文字列を入力として受け取り、`IdentityBucketsResponse` オブジェクトを生成する関数を呼び出します。タイムスタンプ文字列は ISO 8601 形式である必要があります: `YYYY-MM-DD[*HH[:MM[:SS[.fff[fff]]]][+HH:MM[:SS[.ffffff]]]]`。 +以下の例は有効なタイムスタンプ文字列です: + - Date in local timezone: `2024-08-18` + - Date and time in UTC: `2024-08-18T14:30:15.123456+00:00` + - Date and time in EST: `2024-08-18T14:30:15.123456-05:00` + ```py + since_timestamp = '2024-08-18T14:30:15+00:00' + identity_buckets_response = client.get_identity_buckets(datetime.fromisoformat(since_timestamp)) + ``` +3. `IdentityBucketsResponse` オブジェクトには、`bucket_id` と UTC の `last_updated` タイムスタンプが含まれています。ローテーションされたソルトバケットのリストを反復処理し、次のように `bucket_id` と `last_updated` タイムスタンプを抽出します: + ```py + if identity_buckets_response.buckets: + for bucket in identity_buckets_response.buckets: + bucket_id = bucket.get_bucket_id() # example "bucket_id": "a30od4mNRd" + last_updated = bucket.get_last_updated() # example "last_updated" "2024-08-19T22:52:03.109" + else: + print("No bucket was returned") + ``` ## Usage for DSPs 以下の手順は、DSP として SDK for Python を使用して ビッドストリーム トークンをデコードする方法の例です。 From 027939df6e2b881a342794e6eb2ddba437c31001 Mon Sep 17 00:00:00 2001 From: Yoshihiko Miyaichi Date: Fri, 30 Aug 2024 12:40:12 +0900 Subject: [PATCH 17/25] Address edits from NT on Account Setup page. --- .../current/getting-started/gs-account-setup.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-account-setup.md b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-account-setup.md index 6ef7aeab4..5a56c079a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-account-setup.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-account-setup.md @@ -15,7 +15,7 @@ import Link from '@docusaurus/Link'; UID2 フレームワークにアクセスするには、以下の The Trade Desk の担当チームにご連絡ください。 -現在の UID2 Administrator である The Trade Desk とすでに取引がある場合は、その担当者と直接連絡を取り、UID2 を開始してください。 +The Trade Desk (現在の UID2 管理者) とすでに取引関係がある場合は、直接連絡を取り、UID2 を開始してください。 :::note The Trade Desk のアクセス依頼は一時的なものです。システムが独立したガバナンスに移行された時には、運営組織がアクセスリクエストを管理します。 @@ -28,9 +28,9 @@ The Trade Desk のアクセス依頼は一時的なものです。システム ## Account Setup Details -UID2 に興味を示していただいたら、詳細を詰めるために担当者からご連絡を差し上げます。 +UID2 に関心を示すと、詳細を調整するために担当者が連絡から連絡があります。 -参加者は少なくとも以下の情報を提供する必要があります: +アカウント設定の一環として、以下の情報を提供してください。: * 氏名 * メールアドレス * 会社名 @@ -38,7 +38,7 @@ UID2 に興味を示していただいたら、詳細を詰めるために担当 ### Client-Side Web Integrations -パブリッシャーが [mobile](../overviews/overview-publishers.md#mobile-integrations) ではなく [web](../overviews/overview-publishers.md#web-integrations) にパブリッシングする場合で、UID2 を実装してトークンが Client-Side で生成されるようにしたい場合は、サイトの **ドメイン名** のリストも提供する必要があります。これはセキュリティ対策であり、Client-Side 実装のためだけです。 +UID2 Token を [mobile](../overviews/overview-publishers.md#mobile-integrations) アプリではなく [web](../overviews/overview-publishers.md#web-integrations) の Client Side でリクエストする場合、サイトのドメイン名のリストも提供する必要があります。これは、Client-Side 実装のみのセキュリティ対策です。 :::tip アカウント設定に必要なのは、ルートレベルのドメインだけです。たとえば、example.com、shop.example.com、example.org の Client-Side でトークンを生成するために UID2 を実装する場合、ドメイン名 example.com と example.org だけを提供します。 @@ -46,15 +46,14 @@ UID2 に興味を示していただいたら、詳細を詰めるために担当 ### Client-Side Mobile Integrations -[mobile apps](../overviews/overview-publishers.md#mobile-integrations) にパブリッシングする場合、UID2 mobile SDKs とインテグレーションするすべてのモバイルアプリの app names のリストを提供する必要があります。以下の値が適用される場合は、これらの値を提供してください: +[mobile apps](../overviews/overview-publishers.md#mobile-integrations) で Client Side から UID2 Token をリクエストする場合、すべてのモバイルアプリ ID の完全なリストを提供する必要があります: -- Android Application ID -- iOS App Store ID -- App Store ID +- Android App ID: 該当するものをすべて。 +- iOS/tvOS Bundle ID and corresponding iOS App Store ID: 該当するものをすべて。 ## Credentials -UID2 に参加する契約を結ぶと、[UID2 credentials](gs-credentials.md) と UID2 を始めるために必要な情報が提供されます。 +UID2 に参加するための契約に署名した後、[UID2 credentials](gs-credentials.md) と UID2 の運用開始にに必要な追加情報を提供します。 ## API Version From eddeb6839e9b5aed8988cb4c77db1e5de6d8c1cf Mon Sep 17 00:00:00 2001 From: Yoshihiko Miyaichi Date: Fri, 30 Aug 2024 13:03:08 +0900 Subject: [PATCH 18/25] Add Android and iOS SDK docs to Publisher Overview page. Fix broken links introduced from mods to Account Setup page --- .../current/overviews/overview-publishers.md | 2 ++ .../current/portal/client-side-integration.md | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/overviews/overview-publishers.md b/i18n/ja/docusaurus-plugin-content-docs/current/overviews/overview-publishers.md index d0d49a4a3..a06bf1d7e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/overviews/overview-publishers.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/overviews/overview-publishers.md @@ -114,6 +114,8 @@ Web インテグレーションオプションの詳細は [Web Integration Over | Android/iOS (Overview) | [Mobile Integration Overview for Android and iOS](../guides/integration-mobile-overview.md) | SDK for Android または SDK for iOS を使用して UID2 とインテグレーションしたいモバイルアプリパブリッシャー向けのオプションの概要です。 | | Android/iOS, Client-Side Integration | [Client-Side Integration Guide for Mobile](../guides/integration-mobile-client-side.md) | モバイルアプリ内のみの変更で UID2 とインテグレーションしたいモバイルアプリパブリッシャー向けのインテグレーションガイドです(Server-Side の変更はありません)。 | | Android/iOS, Client-Server Integration | [Client-Server Integration Guide for Mobile](../guides/integration-mobile-client-server.md) | UID2 とインテグレーションしたいモバイルアプリのパブリッシャー向けのインテグレーションガイドです:
  1. UID2 Token を Server-Side で生成するには、PublicまたはPrivate Operatorを使用します。
  2. その結果、identities をモバイルアプリに渡し、ビッドストリームに渡します。
| +| Android | [SDK for Android Reference Guide](../sdks/sdk-ref-android.md) | Android アプリをサポートする必要があるパブリッシャー向けに、UID2 を使用してクライアント ID を生成または確立し、UID2 Token を取得するプロセスを促進する SDK。 | +| iOS | [SDK for iOS Reference Guide](../sdks/sdk-ref-ios.md) | iOS アプリをサポートする必要があるパブリッシャー向けに、UID2 を使用してクライアント ID を生成または確立し、UID2 Token を取得するプロセスを促進する SDK。 | ### CTV Integrations diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/portal/client-side-integration.md b/i18n/ja/docusaurus-plugin-content-docs/current/portal/client-side-integration.md index c81eb153c..1b4f410b4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/portal/client-side-integration.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/portal/client-side-integration.md @@ -12,7 +12,7 @@ UID2 Portal では、Client-Side でトークンを生成する実装オプシ | Value | Implementation Type | Details | Documentation Link | | :--- | :--- | :---| :---| | Key pair | すべて (Web または Mobile) | 少なくとも1つ。実装では、公開鍵を共有します。 | [Subscription ID and Public Key](../getting-started/gs-credentials.md#subscription-id-and-public-key) | -| Domain | Web | 少なくとも1つ。提供する必要があるのは、ルートレベルドメインの完全なリストです。 | [Client-Side Implementation for Publishers](../getting-started/gs-account-setup.md#client-side-implementation-for-publishers) | +| Domain | Web | 少なくとも1つ。提供する必要があるのは、ルートレベルドメインの完全なリストです。 | [Client-Side Web Integrations](../getting-started/gs-account-setup.md#client-side-web-integrations) | | Mobile App ID | Mobile | Android App ID、iOS/tvOS Bundle ID、iOS App Store IDなど、モバイルアプリに適用されるID。 | [Client-Side Mobile Integrations](../getting-started/gs-account-setup.md#client-side-mobile-integrations) | :::important From ddb8e17aca0c9adb89b2a5e97adb5fb5a29d160c Mon Sep 17 00:00:00 2001 From: Yoshihiko Miyaichi Date: Fri, 30 Aug 2024 13:28:11 +0900 Subject: [PATCH 19/25] mods from EUID updates and other sources: Account Setup, DSP with no SDK (edit from AT), Publisher Overview procedure, minor formatting updates. Python doc, minor formatting updates mostly space. Add lead-in copy in one place. Updates file, couple of minor corrections. --- .../getting-started/gs-account-setup.md | 2 +- .../current/guides/integration-dsp-no-sdk.md | 2 +- .../current/overviews/overview-publishers.md | 32 ++++++++++++------- .../current/ref-info/updates-doc.md | 24 +++++++++++++- .../current/sdks/sdk-ref-python.md | 29 ++++++++++++++--- 5 files changed, 70 insertions(+), 19 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-account-setup.md b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-account-setup.md index 5a56c079a..669caefbe 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-account-setup.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-account-setup.md @@ -57,4 +57,4 @@ UID2 に参加するための契約に署名した後、[UID2 credentials](gs-cr ## API Version -UID2 API の現在のバージョンは UID2 API v2 です。 +UID2 API の現在のバージョンは v2 です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-dsp-no-sdk.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-dsp-no-sdk.md index b90f1d3f3..d15a2e259 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-dsp-no-sdk.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-dsp-no-sdk.md @@ -154,7 +154,7 @@ For more information about client-side UID2 integration, refer to one of these i - [UID2 Client-Side Integration Guide for Prebid.js](integration-prebid-client-side.md) - [UID2 Client-Side Integration Guide for Mobile](integration-mobile-client-side.md) -### Honor User Opt-Out After Token Decryption +## Honor User Opt-Out After Token Decryption After decrypting the token, you must check the resulting raw UID2 against your opt-out records. If it appears on your opt-out records, you must honor the user's opt-out preference, including by not using the UID2 for bidding. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/overviews/overview-publishers.md b/i18n/ja/docusaurus-plugin-content-docs/current/overviews/overview-publishers.md index a06bf1d7e..700246d85 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/overviews/overview-publishers.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/overviews/overview-publishers.md @@ -32,21 +32,29 @@ UID2 とインテグレーションすることで得られるメリットの一 以下の手順は、ID プロバイダー、パブリッシャー、SSO プロバイダーなど、SSP を介して UID2 Token をビッドストリームに伝播する組織を想定したワークフローの概要です。パブリッシャーは、UID2 と相互運用可能で、パブリッシャーに代わって UID2 インテグレーションを処理できる SSO プロバイダーまたは独立した ID プロバイダーと連携することを選択できます。 -1. ユーザーがパブリッシャーのウェブサイト、モバイルアプリ、CTV アプリにアクセスします。 -2. パブリッシャーは、オデータの取り扱いに関する透明性を提供し、ログインまたはその他の手段で、メールアドレスまたは電話番号の提供をユーザーに求めます。 -3. ユーザーがメールアドレスまたは電話番号を提供すると、パブリッシャーは SDK または直接 API インテグレーションを介して、それを UID2 Operator に送信します。 +1. ユーザーがパブリッシャーウェブサイト、モバイルアプリ、または CTV アプリを訪れます。 - パブリッシャーは、SSO プロバイダーまたは ID プロバイダーが自分たちに代わって DII を渡すことを承認できます。 -4. UID2 Operator: +1. パブリッシャーは、ユーザーにデータの取り扱いについての透明性を確保し、ユーザーにメールアドレスまたは電話番号を提供するよう求めます。 + +1. ユーザーがメールアドレスまたは電話番号を提供すると、パブリッシャーは SDK または直接の API インテグレーションを介して、それを UID2 Operator に送信します。 + :::tip + パブリッシャーは、SSO プロバイダーまたは ID プロバイダーに、自身の代わりに DII を渡すことを許可できます。 + ::: + +1. UID2 Operator: - メールアドレスまたは電話番号を受け取ります。 - - ソルト化、ハッシュ化、暗号化処理を行います。 + - ソルト、ハッシュ、暗号化プロセスを実行します。 - UID2 Token を返します。 -5. パブリッシャーが UID2 Token を保存し、リアルタイムビディングの際に SSP と共有します。 - - Server-Side: パブリッシャーは、トークンをマッピングテーブル、DMP、データレイク、またはその他の Server-Side アプリケーションに格納します。 - - Client-Side: パブリッシャーは、トークンを Client-Side アプリ、またはファーストパーティクッキーとしてユーザーのブラウザに保存します。 -6. パブリッシャーが UID2 Token をストレージから取得します。 -6. パブリッシャーは UID2 Token を SSP に送信します。 -7. SSP は UID2 Token を含むビッドリクエストをビッドストリームに入れます。 + +1. リアルタイムビディング中に SSP と共有するために、パブリッシャーは UID2 Token を保存します。 + - Server-Side: パブリッシャーは、マッピングテーブル、DMP、データレイク、または他のサーバーサイドアプリケーションにトークンを保存します。 + - Client-Side: パブリッシャーは、トークンをクライアントサイドアプリケーションまたはユーザーのブラウザにファーストパーティクッキーとして保存します。 + +1. パブリッシャーは UID2 Token をストレージから取得します。 + +1. パブリッシャーは SSP に UID2 Token を送信します。 + +1. SSP は UID2 Token とともにビッドリクエストをビッドストリームに入れます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/updates-doc.md b/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/updates-doc.md index c2912992d..eaf553fa6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/updates-doc.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/updates-doc.md @@ -11,6 +11,26 @@ import Link from '@docusaurus/Link'; UID2 ドキュメンテーションリソースの最新アップデートを確認してください。 +### New: DSP Direct Integration Instructions + +August 22, 2024 + +UID2 SDK を使用していない DSP 向けの新しいガイドを追加しました。 + +詳細は [DSP Direct Integration Instructions](../guides/integration-dsp-no-sdk.md) を参照してください。 + + + + + + + ### New: Integration Approaches Page July 23, 2024 @@ -62,7 +82,7 @@ raw UID2 のリストが与えられた場合、このエンドポイントは 詳細は [POST /optout/status](../endpoints/post-optout-status.md) を参照してください。 - + ### New: Client-Side and Server-Side Guides for Mobile @@ -126,6 +146,8 @@ Java SDKは、[POST /identity/map](../endpoints/post-identity-map.md) エ 詳細については、*SDK for Javaリファレンスガイド*: [Usage for Advertisers and Data Providers](../sdks/sdk-ref-java.md#usage-for-advertisersdata-providers) の更新されたドキュメントを参照してください。 + + ### New: Audience-Specific Documentation Sidebars February 9, 2024 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-python.md b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-python.md index b7cd165a9..52492de8c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-python.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-python.md @@ -47,6 +47,7 @@ SDK が提供する特定の機能の使用許可が与えられ、そのアク - [https://pypi.org/project/uid2-client/](https://pypi.org/project/uid2-client/) ## Installation + SDK をインストールするには、[Pip](https://packaging.python.org/en/latest/guides/tool-recommendations/#installing-packages) パッケージマネージャを使用します。 ``` @@ -54,6 +55,7 @@ pip install uid2-client ``` ## Initialization + 初期化ステップは、次の表に示すように役割によって異なります。 | Role | Create Instance of Class | Link to Instructions | @@ -95,6 +97,7 @@ SDK を使用すると、復号化キーを保存または管理する必要が | `encrypted_data` | 暗号化された UID2 Token。 | ### Encryption Response Statuses + 暗号化のレスポンスコードとその意味は、次の表に示します。 | Value | Description | @@ -117,6 +120,7 @@ SDK を使用すると、復号化キーを保存または管理する必要が | `established` | ユーザーがパブリッシャーと最初に UID2 を確立した時のタイムスタンプ。 | ### Decryption Response Statuses + Decryption response codes, and their meanings, are shown in the following table. | Value | Description | @@ -209,12 +213,15 @@ Server-Side インテグレーションを使用している場合 (詳細は [P ユーザーがオプトアウトしている場合、このメソッドは `None` を返します。ユーザーがオプトアウトしていることを確認するには、`token_refresh_response.is_optout()` 関数を使用できます。 ## Usage for Advertisers/Data Providers + 広告主/データプロバイダーに適用される操作は次の2つです: -- [Map DII to raw UID2s](#map-dii-to-raw-uid2s) +- [Map DII to Raw UID2s](#map-dii-to-raw-uid2s) - [Monitor rotated salt buckets](#monitor-rotated-salt-buckets) ### Map DII to Raw UID2s -メールアドレス、電話番号、またはそれらのハッシュを、それぞれの raw UID2 とソルトバケット ID にマッピングするには、次の手順に従います: + +メールアドレス、電話番号、またはそれらのハッシュを、それぞれの raw UID2 とソルトバケット ID にマッピングするには、次の手順に従います。 + 1. `IdentityMapClient` のインスタンスをインスタンス変数として生成します。 ```py client = IdentityMapClient(base_url, api_key, client_secret) @@ -236,6 +243,7 @@ SDK は入力値を送信する前にハッシュ化します。これにより ``` 4. マップされた結果とマップされなかった結果をいてレートするか、ルックアップを行います。以下の例では、ルックアップを行なっています: + ```py mapped_identity = mapped_identities.get("email1@example.com") if mapped_identity is not None: @@ -244,12 +252,17 @@ SDK は入力値を送信する前にハッシュ化します。これにより unmapped_identity = unmapped_identities.get("email1@example.com") reason = unmapped_identity.get_reason() ``` + ### Monitor Rotated Salt Buckets -ソルトバケットを監視するには、次の手順に従います: + +ソルトバケットを監視するには、次の手順に従います。 + 1. `IdentityMapClient` のインスタンスをインスタンス変数として生成します。または、[Map DII to raw UID2s:](#map-dii-to-raw-uid2s) から再利用します。 + ```py client = IdentityMapClient(base_url, api_key, client_secret) ``` + 2. タイムスタンプ文字列を入力として受け取り、`IdentityBucketsResponse` オブジェクトを生成する関数を呼び出します。タイムスタンプ文字列は ISO 8601 形式である必要があります: `YYYY-MM-DD[*HH[:MM[:SS[.fff[fff]]]][+HH:MM[:SS[.ffffff]]]]`。 以下の例は有効なタイムスタンプ文字列です: - Date in local timezone: `2024-08-18` @@ -260,7 +273,9 @@ SDK は入力値を送信する前にハッシュ化します。これにより since_timestamp = '2024-08-18T14:30:15+00:00' identity_buckets_response = client.get_identity_buckets(datetime.fromisoformat(since_timestamp)) ``` + 3. `IdentityBucketsResponse` オブジェクトには、`bucket_id` と UTC の `last_updated` タイムスタンプが含まれています。ローテーションされたソルトバケットのリストを反復処理し、次のように `bucket_id` と `last_updated` タイムスタンプを抽出します: + ```py if identity_buckets_response.buckets: for bucket in identity_buckets_response.buckets: @@ -269,6 +284,7 @@ SDK は入力値を送信する前にハッシュ化します。これにより else: print("No bucket was returned") ``` + ## Usage for DSPs 以下の手順は、DSP として SDK for Python を使用して ビッドストリーム トークンをデコードする方法の例です。 @@ -350,6 +366,11 @@ else: ## Development +開発には次のステップが役立つかもしれません: + +- [Example Usage](#example-usage) +- [Running tests](#running-tests) + ### Example Usage [examples](https://github.com/IABTechLab/uid2-client-python/blob/main/examples) ディレクトリから特定の例を実行できます。 @@ -365,4 +386,4 @@ python3 -m unittest discover -s ./tests/ ## FAQs -DSP に関するよくある質問については、[FAQs for DSPs](../getting-started/gs-faqs.md#faqs-for-dsps) を参照してください。 +DSP に関するよくある質問については、[FAQs for DSPs](../getting-started/gs-faqs.md#faqs-for-dsps) を参照してください。 \ No newline at end of file From 87cfb48928a61a023208c30396481117df3edb4b Mon Sep 17 00:00:00 2001 From: Yoshihiko Miyaichi Date: Fri, 30 Aug 2024 14:34:37 +0900 Subject: [PATCH 20/25] Minor modifications. --- .../current/getting-started/gs-credentials.md | 2 +- .../current/getting-started/gs-faqs.md | 8 +++---- .../current/guides/dsp-guide.md | 4 +++- .../current/guides/google-ss-integration.md | 10 +++++--- .../integration-javascript-client-server.md | 2 ++ .../guides/integration-prebid-client-side.md | 9 ++++--- .../integration-publisher-server-side.md | 2 ++ ...operator-private-gcp-confidential-space.md | 19 +++++++-------- .../current/guides/summary-guides.md | 3 ++- .../current/overviews/overview-dsps.md | 1 + .../overviews/overview-operators-private.md | 6 +++++ .../current/portal/api-keys.md | 7 +++++- .../current/portal/email-contacts.md | 2 +- .../current/ref-info/glossary-uid.md | 21 ++++++++++++++++ .../ref-info/ref-operators-public-private.md | 12 +++------- .../current/ref-info/updates-doc.md | 24 +++++++++++++------ .../current/sdks/sdk-ref-python.md | 2 +- .../current/sdks/summary-sdks.md | 1 + 18 files changed, 91 insertions(+), 44 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-credentials.md b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-credentials.md index 6fa9ae55f..9a67baa31 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-credentials.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-credentials.md @@ -63,4 +63,4 @@ API Key とクライアントシークレットは、認証情報が漏洩する ## Refreshing Credentials -新しいクレデンシャルをリクエストするには、いつでも UID2 の連絡先に連絡してください。 \ No newline at end of file +新しいクレデンシャルをリクエストするには、いつでも UID2 の連絡先に連絡してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md index 20c50068b..8b7114f61 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md @@ -78,7 +78,7 @@ UID2 フレームワークを使用するパブリッシャーからのよくあ - 直接または UID2 SDK のいずれかで [POST /token/generate](../endpoints/post-token-generate.md) エンドポイントを呼び出し、UID2 Token を生成する場合、必須の `optout_check` パラメータに `1` を指定します。 - 直接または UID2 SDK のいずれかで [POST /token/refresh](../endpoints/post-token-refresh.md) エンドポイントを呼び出し、UID2 Token をリフレッシュした場合。 -#### Where should I make token generation calls—from the server or client side? +#### Where should I make token generation calls—from the server side or the client side? トークン生成の呼び出しは、Server-Side と Client-Side のどちらで行うべきですか? UID2 Token は、Client-Side、Server-Sideのどちらでも生成できます。詳細については、以下を参照してください: @@ -190,7 +190,7 @@ UID2 生成リクエストで提供されるメタデータには、UID2 の生 システムは[メールアドレス正規化ルール](../getting-started/gs-normalization-encoding#email-address-normalization)に従って、salt せずにハッシュ化する必要があります。 -#### Should I store large volumes of email address, phone number, or their hash mappings? +#### Should I store large volumes of email address, phone number, or their hash mappings? 大量のメールアドレスや電話番号やそれらのハッシュマッピングを保存すべきか? はい。何百万ものメールアドレスや電話番号をマッピングする必要がある場合、マッピングを保存しないことで処理時間が大幅に増加する可能性があります。しかし、実際に更新が必要なマッピングだけを再計算すると、毎日更新する必要があるのは UID2 の約 365 分の 1 なので、総処理時間が短縮されます。 @@ -306,12 +306,12 @@ DSP はオプトアウトリストをどれくらいの期間保管すべきで DSP のオプトアウトプロセスの詳細は [Honor User Opt-Outs](../guides/dsp-guide.md#honor-user-opt-outs) を参照してください。 -#### What request type do opt-outs use? +#### What request type do opt-outs use? オプトアウトはどのリクエストタイプを使いますか? 一般的には GET リクエストですが、DSP によって異なるタイプを使用することがあります。 -#### How strict are the requirements for honoring opt-outs? +#### How strict are the requirements for honoring opt-outs? オプトアウトに応じるための条件はどの程度厳しいのですか? オプトアウトは常に受け入れなければなりません。オプトアウトリクエストがシステムを通じて伝播するまでに時間がかかる場合があり、その間に一部の入札がオプトアウトを受け入れないことがあります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/dsp-guide.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/dsp-guide.md index b560fd34c..c2ec3477d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/dsp-guide.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/dsp-guide.md @@ -26,7 +26,9 @@ DSP はビッドリクエストで UID2 Token を受け取り、この機能を 1. [Honor user opt-outs](#honor-user-opt-outs) 2. [Decrypt UID2 tokens for RTB use](#decrypt-uid2-tokens-for-rtb-use) -![](images/dsp-guide-flow-mermaid.png) +![DSP Flow](images/dsp-guide-flow-mermaid.png) + + ### Honor User Opt-Outs diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/google-ss-integration.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/google-ss-integration.md index c487807dd..454526337 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/google-ss-integration.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/google-ss-integration.md @@ -78,13 +78,17 @@ SDK for JavaScript バージョン 3.0.0 以降を使用している場合、UID 詳しくは [Client-Side Integration Guide for JavaScript](integration-javascript-client-side.md) を参照してください。 - +SDK for JavaScript を使用したインテグレーションのためのサンプルアプリケーションも用意されています。[Sample Applications](#sample-applications) を参照してください。 ## Sample Applications Google Ad Manager のセキュアシグナル機能との連携方法については、以下のサンプルアプリケーションを参照してください: -- [Server-Only UID2 Integration Example](https://secure-signals-srvonly-integ.uidapi.com/) -- [Client-Server UID2 SDK Integration Example](https://secure-signals-jssdk-integ.uidapi.com/) +- Server-Side UID2 Integration Example: + - [Sample application](https://secure-signals-srvonly-integ.uidapi.com/) + - [Code repository](https://github.com/IABTechLab/uid2-web-integrations/tree/main/examples/google-secure-signals-integration/server_only) +- Client-Server UID2 SDK Integration Example: + - [Sample application](https://secure-signals-jssdk-integ.uidapi.com/) + - [Code repository](https://github.com/IABTechLab/uid2-web-integrations/tree/main/examples/google-secure-signals-integration/with_sdk_v3) 各サンプルアプリケーションには独自のインストラクションがあります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-javascript-client-server.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-javascript-client-server.md index 8891bcefc..9f5ec2389 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-javascript-client-server.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-javascript-client-server.md @@ -51,6 +51,8 @@ Google Ad Managerを使用していて、セキュアシグナル機能を使用 ![Publisher Flow](images/integration-javascript-client-server-mermaid.png) + + 以下のセクションでは、図中の各ステップについての詳細を説明します: 1. [Establish identity: capture user data](#establish-identity-capture-user-data) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-prebid-client-side.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-prebid-client-side.md index e444947d6..929311fef 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-prebid-client-side.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-prebid-client-side.md @@ -49,7 +49,6 @@ UID2 Prebid.js Client-Side インテグレーション例は、以下のリン アカウントのセットアップが完了すると、UID2 サーバーがユーザーを識別するために使用する 2 つの値であるクライアントキーペアが発行されます: Subscription ID と Public key。これらの値はあなたに固有で、UID2 モジュールの設定に使用します。詳細は [Subscription ID and Public Key](../getting-started/gs-credentials.md#subscription-id-and-public-key) を参照してください。 - ### Add Prebid.js to Your Site @@ -169,9 +168,11 @@ Prebid.js の設定を検証・デバッグするツールの例として、オ ## Optional: Specifying the API Base URL to Reduce Latency -デフォルトでは、UID2 module はアメリカにある UID2 本番環境サーバーに API コールを行います。ユーザーの居住地によっては、レイテンシー(遅延時間) を短縮するために、ユーザーに近いサーバーを選択することを検討してください。 +デフォルトでは、UID2 モジュールは米国の UID2 本番環境サーバーに対して呼び出しを行います。 + +ユースケースに最適な URL を選択する方法と、有効なベース URL の完全なリストについては、[Environments](../getting-started/gs-environments.md) を参照してください。 -UID2 module を設定するときに別の UID2 サーバーを指定するには、次の例に示すように、オプションの `params.uid2ApiBase` パラメータを設定します: +UID2 モジュールをデフォルト以外の UID2 サーバーに指定するには、UID2 モジュールを設定する際に、オプションの `params.uid2ApiBase` パラメータを次の例に示すように設定します: ```js pbjs.setConfig({ @@ -186,5 +187,3 @@ pbjs.setConfig({ } }); ``` - -Base URL のリストは、[Environments](../getting-started/gs-environments.md) を参照してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-publisher-server-side.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-publisher-server-side.md index 937f65c55..461f3ede7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-publisher-server-side.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-publisher-server-side.md @@ -47,6 +47,8 @@ Server-Side SDK を使用している場合、SDK はエンドポイントに関 ![Publisher Flow](images/integration-publisher-server-side-mermaid.png) + + 次のセクションでは、図中の各ステップについて詳細を説明します: 1. [Establish identity: capture user data](#establish-identity-capture-user-data) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/operator-private-gcp-confidential-space.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/operator-private-gcp-confidential-space.md index f6724bc30..85ca4babe 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/operator-private-gcp-confidential-space.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/operator-private-gcp-confidential-space.md @@ -342,6 +342,9 @@ gcloud CLI を使用して、UID2 Operator Service を実行するためのサ --source-ranges=0.0.0.0/0 \ --target-service-accounts={SERVICE_ACCOUNT_NAME}@{PROJECT_ID}.iam.gserviceaccount.com ``` +:::warning +`source-ranges` は、クライアントが Private Operator を呼び出すために使用する IP アドレスの範囲を指定します。CIDR 表記であり、複数の範囲を提供するためにカンマ区切りの値を使用できます。例: `--source-ranges="。範囲が正確であり、自分のものである IP アドレスのみが含まれていることを確認してください。 +::: #### Create Secret for the Operator Key in Secret Manager @@ -449,14 +452,7 @@ $ gcloud compute instances create {INSTANCE_NAME} \ 手順については、[Health Check—gcloud CLI](#health-checkgcloud-cli) を参照してください。 -## Tasks - -このセクションでは、次のタスクの完了手順を提供します。該当する場合は、両方の環境についての手順が提供されます。以下を含みます: - -- [Running the Health Check](#running-the-health-check) -- [Upgrading](#upgrading) - -### Running the Health Check +## Running the Health Check ヘルスチェックエンドポイントを呼び出して、実装の健全性をテストします。 @@ -467,7 +463,7 @@ $ gcloud compute instances create {INSTANCE_NAME} \ - [Health Check—Terraform Template](#health-checkterraform-template) - [Health Check—gcloud CLI](#health-checkgcloud-cli) -#### Health Check—Terraform Template +### Health Check—Terraform Template 次の例は、Terraform テンプレートオプションのヘルスチェックを示しています: @@ -482,7 +478,7 @@ $ gcloud compute instances create {INSTANCE_NAME} \ HTTP 200 とレスポンスボディが `OK` の場合、健全な状態です。 -#### Health Check—gcloud CLI +### Health Check—gcloud CLI 次の例は、`gcloud` コマンドラインオプションのヘルスチェックを示しています: 1. デプロイされたインスタンスのパブリック IP アドレスを取得します: @@ -518,3 +514,6 @@ Terrafom テンプレートを使用してデプロイした場合、アップ gcloud CLI を使用してデプロイした場合、アップグレードするには、新しい `{OPERATOR_IMAGE}` を使用して新しいインスタンスを立ち上げ、古いインスタンスをシャットダウンする必要があります。 手動でロードバランサーを設定した場合、ロードバランサーのマッピングも更新する必要があります。 + +## Scraping Metrics +GCP の Private Operator は、`/metrics` エンドポイントで [Prometheus-formatted metrics](https://prometheus.io/docs/concepts/data_model/) ポート 9080 で公開します。Prometheus 互換のスクレイパーを使用して、これらのメトリクスを収集して集計することができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/summary-guides.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/summary-guides.md index 15ace7dfd..a119b1833 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/summary-guides.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/summary-guides.md @@ -108,7 +108,8 @@ The following resources are available for DSPs integrating with UID2. | Integration Guide | Content Description | | :--- | :--- | -| [DSP](./dsp-guide.md) | この DSP のためのインテグレーションガイドは、入札のための UID2 の処理と、ユーザーのオプトアウトに対応することをカバーしています。 | +| [DSP Integration Guide](../guides/dsp-guide.md) | この DSP 向けのインテグレーションガイドでは、入札およびユーザーオプトアウトの処理に関する UID2 の取り扱いについて説明しています。 | +| [DSP Direct Integration Instructions](../guides/integration-dsp-no-sdk.md) | SDK を使用せずにインテグレーションを希望する DSP 向けの手順です。 | ## Private Operator Service Integrations diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/overviews/overview-dsps.md b/i18n/ja/docusaurus-plugin-content-docs/current/overviews/overview-dsps.md index 1a0ae3fc2..003b18371 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/overviews/overview-dsps.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/overviews/overview-dsps.md @@ -86,6 +86,7 @@ UID2 を実装する DSP には、以下のドキュメントリソースが用 | SDK for C# / .NET | [SDK for C# / .NET Reference Guide](../sdks/sdk-ref-csharp-dotnet.md) | .NET Server-Side を使用し、UID2 Advertising Token を復号して raw UID2 にアクセスしたい人のための SDK。 | | SDK for C++ | [SDK for C++ Reference Guide](../sdks/sdk-ref-cplusplus.md) | C++ Server-Side を使用し、UID2 Advertising Token を復号して raw UID2 にアクセスしたい人のための SDK。 | | Integration Guide | [DSP Integration Guide](../guides/dsp-guide.md) | DSP 向けのこのインテグレーションガイドでは、入札のための UID2 の取り扱いと、ユーザーのオプトアウトの受け入れについて説明します。 | +| DSP Direct Integration Instructions | [DSP Direct Integration Tips](../guides/integration-dsp-no-sdk.md) | UID2 SDK のいずれも使用せずにインテグレーションすることを希望する DSP 向けの手順。 | \ No newline at end of file + +These are guidelines, not rules. If you need to add a permission, you can modify an existing API key, but we recommend that you use separate keys for separate permission. --> diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/portal/email-contacts.md b/i18n/ja/docusaurus-plugin-content-docs/current/portal/email-contacts.md index 2214bba06..d906ac63f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/portal/email-contacts.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/portal/email-contacts.md @@ -74,4 +74,4 @@ Email Contacts では、確認のメールは送信されません。 1. UID2 Portal アカウントにログインします。 1. 右上の下矢印をクリックし、**Email Contacts** を選択します。 1. リストで連絡先を見つけ、Actions 列で Delete (trashcan) アイコンをクリックします。 -1. 確認メッセージが表示されたら、削除を確定します。 \ No newline at end of file +1. 確認メッセージが表示されたら、削除を確定します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/glossary-uid.md b/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/glossary-uid.md index 44fcecd24..1660e9eaf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/glossary-uid.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/glossary-uid.md @@ -25,12 +25,16 @@ import Link from '@docusaurus/Link';
Bidstream **C** + Client key | Client keypair | Client secret | Client-server integration | Client-side integration | Closed Operator | +Confidential Computing (GCP) | +Confidential containers (Azure) | +Confidential Space (GCP) | Core Service **D** @@ -176,6 +180,23 @@ import Link from '@docusaurus/Link';
Closed Operator
Closed Operator は Private Operator の別名です。
+
Confidential Computing (GCP)
+
Google Cloud Platform (GCP) の機密コンピューティングオプションの1つである Confidential Computing は、UID2 Private Operator のホスティングをサポートしています。
+
詳細は Confidential Space を参照してください。
+ + +
Confidential containers (Azure)
+
Confidential Containers は、Microsoft Azure のセキュアな機密コンピューティングオプションの名称です。各 Confidential Containers の実装は、データ整合性、データ機密性、コード整合性などの本質的な機能を提供する、ハードウェアで保護された Trusted Execution Environment(TEE) で実行されます。
+
UID2 のコンテキストでは、AzureのConfidential Containersは、Private Operator をホストするためのサポートされるセキュアコンピューティング環境の1つです。
+
詳細は UID2 Private Operator for Azure Integration Guide を参照してください。
+ + +
Confidential Space (GCP)
+
Confidential Space は、Google Cloud Platform(GCP) のConfidential Computing オプションの1つです。Confidential Space は、Trusted Execution Environment(TEE) として知られるセキュアエンクレーブ環境を提供します。
+
UID2 のコンテキストでは、GCP Confidential Space は、Private Operator をホストするためのサポートされるセキュアコンピューティング環境の1つです。
+
詳細は UID2 Private Operator for GCP Integration Guide を参照してください。
+ +
Core Service
UID2 Core Serviceは、UID2 エコシステムの salts、暗号化キー、その他の関連データへのアクセスを管理する一元的なサービスです。
すべてのUID2 Service の概要については、Components を参照してください。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/ref-operators-public-private.md b/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/ref-operators-public-private.md index 903a63b90..e5000a132 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/ref-operators-public-private.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/ref-operators-public-private.md @@ -48,17 +48,11 @@ Public Operator の場合、データは参加者のインフラを離れ、オ ## Private Operators -rivate Operator は、UID2 Operator のプライベートインスタンスです。これは、特定の組織が、その組織専用に Private Operator をホストすることを意味します。 +Private Operator は、UID2 Operator のプライベートインスタンスです。つまり、特定のエンティティが独自に使用するためにプライベートインスタンスをホストします。 -参加者は誰でも、UID2 を生成および管理する Private Operator になることもできます。ただし、Private Operator になるにはいくつかの追加ステップが必要であり、参加者が提供する必要があるリソースを使用します。 +また、参加者は、UID2 を生成および管理するために Private Operator になることも選択できます。ただし、Private Operator になるにはいくつかの追加手順が必要であり、参加者が用意するリソースが必要です。 -参加者は、Private Operator インスタンスをホストし、構成し、維持し、更新する必要があり、厳密なセキュリティ対策に準拠する必要があります。インテグレーションと継続的な更新には、エンジニアリングリソースが必要です。 - -参加者は、Private Operator インスタンスをホストする契約 ([Account setup](../getting-started/gs-account-setup.md) を参照してください) を締結する必要があります。 - -:::note -Private Operator は、Public Operator または他の Private Operator によって処理された raw UID2 または UID2 Token を見ることはできません。各 Private Operator は完全に閉じたインフラストラクチャです。 -::: +詳細は [Private Operator Integrations](../guides/integration-options-private-operator.md) を参照してください。 ## Private Operator: Benefits diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/updates-doc.md b/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/updates-doc.md index eaf553fa6..4b1b9fed1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/updates-doc.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/updates-doc.md @@ -11,6 +11,16 @@ import Link from '@docusaurus/Link'; UID2 ドキュメンテーションリソースの最新アップデートを確認してください。 +### New: Private Operator Integrations Page + +August 28, 2024 + +Private Operator のインテグレーションに関する新しいページを追加しました。 + +詳細は [Private Operator Integrations](../guides/integration-options-private-operator) を参照してください。 + + + ### New: DSP Direct Integration Instructions August 22, 2024 @@ -148,7 +158,7 @@ Java SDKは、[POST /identity/map](../endpoints/post-identity-map.md) エ -### New: Audience-Specific Documentation Sidebars +### New: Audience-Specific Sidebars February 9, 2024 @@ -162,7 +172,7 @@ UID2 home page の "ドキュメント" リンクをクリックするだけで -### New: UID2 Integration Overview for JavaScript +### New: UID2 Integration Overview for JS January 26, 2024 @@ -176,7 +186,7 @@ January 26, 2024 -### New: SDK for Java, Usage for Publishers Sections +### New: SDK for Java, Publisher Sections 22 January 2024 @@ -186,7 +196,7 @@ SDK for Java のドキュメントに、SDK を実装するパブリッシャー -### New: Normalization and Encoding Documentation, Examples Section +### New: Normalization and Encoding Examples January 19, 2024 @@ -232,7 +242,7 @@ December 20, 2023 - [UID2 Client-Side Integration Guide for Prebid.js](../guides/integration-prebid-client-side.md) - [UID2 Client-Server Integration Guide for Prebid.js](../guides/integration-prebid-client-server.md) -### New: Encryption/Decryption Examples in Java and C# +### New: Encrypt/Decrypt Examples, Java and C# December 14, 2023 @@ -264,7 +274,7 @@ November 21, 2023 詳細は [UID2 Credentials](../getting-started/gs-credentials.md) を参照してください。 -### New: Client-Side Integration Guide for JavaScript +### New: Client-Side Integration Guide for JS November 21, 2023 @@ -420,4 +430,4 @@ August 3, 2023 パブリッシャー向けの新しいガイドでは、iOS アプリをサポートする必要があるパブリッシャー向けに、UID2 を使用したクライアント ID の確立と UID2 Token の取得プロセスを容易にする SDK、SDK for iOS に関する情報を提供しています。 -詳細は [SDK for iOS Reference Guide](../sdks/sdk-ref-ios.md) を参照してください。 \ No newline at end of file +詳細は [SDK for iOS Reference Guide](../sdks/sdk-ref-ios.md) を参照してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-python.md b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-python.md index 52492de8c..192105425 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-python.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-python.md @@ -386,4 +386,4 @@ python3 -m unittest discover -s ./tests/ ## FAQs -DSP に関するよくある質問については、[FAQs for DSPs](../getting-started/gs-faqs.md#faqs-for-dsps) を参照してください。 \ No newline at end of file +DSP に関するよくある質問については、[FAQs for DSPs](../getting-started/gs-faqs.md#faqs-for-dsps) を参照してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/summary-sdks.md b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/summary-sdks.md index 5b931ca85..388848a6a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/sdks/summary-sdks.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/sdks/summary-sdks.md @@ -26,6 +26,7 @@ SDK の機能を確認して使用する SDK を決定し、SDK の表をクリ |C# / .NET | Server | ✅ | ✅ | — | — | — | |C++ | Server | ✅ | ✅ | — | — | — | |Android | Client (Mobile) | — | — | ✅ | ✅ | — | +|iOS | Client (Mobile)| — | — | ✅| ✅ |— | *DII から raw UID2 を生成する必要がある広告主およびデータプロバイダは Snowflake ([Snowflake Integration Guide](../guides/snowflake_integration.md) を参照してください) または [POST /identity/map](../endpoints/post-identity-map.md) エンドポイントを使用することができます。 From f7ed7c3f903af067a23e151b907cc6c67b4aa952 Mon Sep 17 00:00:00 2001 From: Yoshihiko Miyaichi Date: Fri, 30 Aug 2024 14:50:35 +0900 Subject: [PATCH 21/25] Minor modifications. --- .../current/getting-started/gs-faqs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md index 8b7114f61..8eb4ba80b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md @@ -227,7 +227,7 @@ Operator に関係なく、また、Private Operator と Public Operator のど タイミングが重要なのは、ソルトバケットのローテーションのためです。リクエスト間でソルト値が変化すると、結果は異なる raw UID2 になります。 -しかし、パブリッシャーが [POST /token/generate](../endpoints/post-token-generate.md) または [POST /token/refresh](../endpoints/post-token-refresh.md) エンドポイント経由、または SDK 経由で UID2 Token のリクエストに DII を送信した場合、生成される UID2 Token には同じ暗号化された raw UID が含まれます。ただし、トークン自体は常に一意です。 +しかし、パブリッシャーが [POST /token/generate](../endpoints/post-token-generate.md) または [POST /token/refresh](../endpoints/post-token-refresh.md) エンドポイント経由、または SDK 経由で UID2 Token のリクエストに DII を送信した場合、生成される UID2 Token には同じ暗号化された raw UID が含まれます。ただし、トークン自体は常に一意です。 ## FAQs for DSPs From 0c8ef6b108c8527b15146065b7e3bec07fe353e1 Mon Sep 17 00:00:00 2001 From: Yoshihiko Miyaichi Date: Fri, 30 Aug 2024 15:08:29 +0900 Subject: [PATCH 22/25] Minor modifications. --- .../current/getting-started/gs-faqs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md index 8eb4ba80b..9257802ec 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md @@ -227,7 +227,7 @@ Operator に関係なく、また、Private Operator と Public Operator のど タイミングが重要なのは、ソルトバケットのローテーションのためです。リクエスト間でソルト値が変化すると、結果は異なる raw UID2 になります。 -しかし、パブリッシャーが [POST /token/generate](../endpoints/post-token-generate.md) または [POST /token/refresh](../endpoints/post-token-refresh.md) エンドポイント経由、または SDK 経由で UID2 Token のリクエストに DII を送信した場合、生成される UID2 Token には同じ暗号化された raw UID が含まれます。ただし、トークン自体は常に一意です。 +しかし、パブリッシャーが [POST /token/generate](../endpoints/post-token-generate.md) または [POST /token/refresh](../endpoints/post-token-refresh.md) エンドポイント経由、または SDK 経由で UID2 Token のリクエストに DII を送信した場合、生成される UID2 Token には同じ暗号化された raw UID が含まれます。ただし、トークン自体は常に一意です。 ## FAQs for DSPs From 471128eb98159e80c3ca52fdd4f86a29715103d8 Mon Sep 17 00:00:00 2001 From: Yoshihiko Miyaichi Date: Fri, 30 Aug 2024 15:11:30 +0900 Subject: [PATCH 23/25] Minor modifications. --- .../current/getting-started/gs-faqs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md index 9257802ec..29aff485a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-faqs.md @@ -53,7 +53,7 @@ UID2 フレームワークを使用するパブリッシャーからのよくあ - [送信した DII と返されたトークンが一致していることをテストするにはどうすればよいですか?](#how-can-i-test-that-the-dii-sent-and-the-returned-token-match-up) - [トークンを復号化する必要がありますか?](#do-i-need-to-decrypt-tokens) - [ユーザーのオプトアウトはどのように通知されますか?](#how-will-i-be-notified-of-user-opt-out) - - [トークン生成の呼び出しは、Server-Side と Client-Side のどちらで行うべきですか?](#where-should-i-make-token-generation-callsfrom-the-server-or-client-side) + - [トークン生成の呼び出しは、Server-Side と Client-Side のどちらで行うべきですか?](#where-should-i-make-token-generation-callsfrom-the-server-side-or-the-client-side) - [Client-Side からトークンのリフレッシュを呼び出すことはできますか?](#can-i-make-token-refresh-calls-from-the-client-side) - [Refresh Token のワークフローをテストするにはどうすればよいですか?](#how-can-i-test-the-refresh-token-workflow) - [UID2 Token の一意性とローテーションポリシーは何ですか?](#what-is-the-uniqueness-and-rotation-policy-for-uid2-tokens) From fb2ec8249b41f3852927d78b01e531408fbb09f7 Mon Sep 17 00:00:00 2001 From: Yoshihiko Miyaichi Date: Mon, 2 Sep 2024 13:13:10 +0900 Subject: [PATCH 24/25] fix minor issues with the java encryption example --- .../gs-encryption-decryption.md | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-encryption-decryption.md b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-encryption-decryption.md index 141eab0bb..89aaef54f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-encryption-decryption.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/getting-started/gs-encryption-decryption.md @@ -105,16 +105,16 @@ UID2 API のリクエストレスポンスワークフローは、以下のス ```json { - "body": { - "advertising_token": "AgAAAQFt3aNLXKXEyWS8Tpezcymk1Acv3n+ClOHLdAgqR0kt0Y+pQWSOVaW0tsKZI4FOv9K/rZH9+c4lpm2DBpmFJqjdF6FAaAzva5vxDIX/67UOspsYtiwxH73zU7Fj8PhVf1JcpsxUHRHzuk3vHF+ODrM13A8NAVlO1p0Wkb+cccIIhQ==", - "user_token": "AgAAAPpTqz7/Z+40Ue5G3XOM2RiyU6RS9Q5yj1n7Tlg7PN1K1LZWejvo8Er7A+Q8KxdXdj0OrKRf/XEGWsyUJscRNu1bg/MK+5AozvoJKUca8b10eQdYU86ZOHPH7pFnFhD5WHs=", - "refresh_token": "AAAAAQLMcnV+YE6/xoPDZBJvJtWyPyhF9QTV4242kFdT+DE/OfKsQ3IEkgCqD5jmP9HuR4O3PNSVnCnzYq2BiDDz8SLsKOo6wZsoMIn95jVWBaA6oLq7uUGY5/g9SUOfFmX5uDXUvO0w2UCKi+j9OQhlMfxTsyUQUzC1VQOx6ed/gZjqH/Sw6Kyk0XH7AlziqSyyXA438JHqyJphGVwsPl2LGCH1K2MPxkLmyzMZ2ghTzrr0IgIOXPsL4lXqSPkl/UJqnO3iqbihd66eLeYNmyd1Xblr3DwYnwWdAUXEufLoJbbxifGYc+fPF+8DpykpyL9neq3oquxQWpyHsftnwYaZT5EBZHQJqAttHUZ4yQ==", - "identity_expires": 1654623500142, - "refresh_expires": 1657214600142, - "refresh_from": 1654622900142, - "refresh_response_key": "wR5t6HKMfJ2r4J7fEGX9Gw==" - }, - "status": "success" + "body": { + "advertising_token": "AgAAAQFt3aNLXKXEyWS8Tpezcymk1Acv3n+ClOHLdAgqR0kt0Y+pQWSOVaW0tsKZI4FOv9K/rZH9+c4lpm2DBpmFJqjdF6FAaAzva5vxDIX/67UOspsYtiwxH73zU7Fj8PhVf1JcpsxUHRHzuk3vHF+ODrM13A8NAVlO1p0Wkb+cccIIhQ==", + "user_token": "AgAAAPpTqz7/Z+40Ue5G3XOM2RiyU6RS9Q5yj1n7Tlg7PN1K1LZWejvo8Er7A+Q8KxdXdj0OrKRf/XEGWsyUJscRNu1bg/MK+5AozvoJKUca8b10eQdYU86ZOHPH7pFnFhD5WHs=", + "refresh_token": "AAAAAQLMcnV+YE6/xoPDZBJvJtWyPyhF9QTV4242kFdT+DE/OfKsQ3IEkgCqD5jmP9HuR4O3PNSVnCnzYq2BiDDz8SLsKOo6wZsoMIn95jVWBaA6oLq7uUGY5/g9SUOfFmX5uDXUvO0w2UCKi+j9OQhlMfxTsyUQUzC1VQOx6ed/gZjqH/Sw6Kyk0XH7AlziqSyyXA438JHqyJphGVwsPl2LGCH1K2MPxkLmyzMZ2ghTzrr0IgIOXPsL4lXqSPkl/UJqnO3iqbihd66eLeYNmyd1Xblr3DwYnwWdAUXEufLoJbbxifGYc+fPF+8DpykpyL9neq3oquxQWpyHsftnwYaZT5EBZHQJqAttHUZ4yQ==", + "identity_expires": 1654623500142, + "refresh_expires": 1657214600142, + "refresh_from": 1654622900142, + "refresh_response_key": "wR5t6HKMfJ2r4J7fEGX9Gw==" + }, + "status": "success" } ``` @@ -167,7 +167,7 @@ Maven を使用している場合は、以下の最小限の `pom.xml` を使用 org.example Uid2Request 1.0 - + 11 11 @@ -206,7 +206,7 @@ Maven を使用している場合は、以下の最小限の `pom.xml` を使用 - ${artifactId} + ${artifactId} ``` @@ -235,7 +235,7 @@ Usage: Example: echo '{"email": "test@example.com"}' | python3 uid2_request.py https://prod.uidapi.com/v2/token/generate PRODGwJ0hP19QU4hmpB64Y3fV2dAed8t/mupw3sjN5jNRFzg= wJ0hP19QU4hmpB64Y3fV2dAed8t/mupw3sjN5jNRFzg= - + Refresh Token Usage: python3 uid2_request.py --refresh-token @@ -298,7 +298,7 @@ else: envelope += bytearray(tag) base64Envelope = base64.b64encode(bytes(envelope)).decode() - + http_response = requests.post(url, base64Envelope, headers={"Authorization": "Bearer " + api_key}) # Decryption @@ -311,7 +311,7 @@ else: iv = resp_bytes[:12] data = resp_bytes[12:len(resp_bytes) - 16] tag = resp_bytes[len(resp_bytes) - 16:] - + cipher = AES.new(secret, AES.MODE_GCM, nonce=iv) decrypted = cipher.decrypt_and_verify(data, tag) @@ -361,13 +361,13 @@ public class Uid2Request { System.out.println( "Usage:" + "\n " + "java -jar Uid2Request-jar-with-dependencies.jar " + "\n\n" - + + "Example:" + "\n " + "echo '{\"email\": \"test@example.com\"}' | java -jar Uid2Request-jar-with-dependencies.jar https://prod.uidapi.com/v2/token/generate PRODGwJ0hP19QU4hmpB64Y3fV2dAed8t/mupw3sjN5jNRFzg= wJ0hP19QU4hmpB64Y3fV2dAed8t/mupw3sjN5jNRFzg=" + "\n\n\n" - + + "Refresh Token Usage:" + "\n " + "java -jar Uid2Request-jar-with-dependencies.jar --refresh-token " + "\n\n" - + + "Refresh Token Example:" + "\n " + "java -jar Uid2Request-jar-with-dependencies.jar https://prod.uidapi.com/v2/token/refresh --refresh-token AAAAAxxJ...(truncated, total 388 chars) v2ixfQv8eaYNBpDsk5ktJ1yT4445eT47iKC66YJfb1s=" + "\n" ); @@ -475,7 +475,7 @@ Usage: Example: echo '{"email": "test@example.com"}' | .\uid2_request https://prod.uidapi.com/v2/token/generate UID2-C-L-999-fCXrMM.fsR3mDqAXELtWWMS+xG1s7RdgRTMqdOH2qaAo= wJ0hP19QU4hmpB64Y3fV2dAed8t/mupw3sjN5jNRFzg= - + Refresh Token Usage: .\uid2_request --refresh-token @@ -583,7 +583,7 @@ else var json = Encoding.UTF8.GetString(unencryptedResponseDataEnvelope, offset, unencryptedResponseDataEnvelope.Length - offset); Console.WriteLine("Response JSON:"); - + using var jDoc = JsonDocument.Parse(json); Console.WriteLine(JsonSerializer.Serialize(jDoc, new JsonSerializerOptions { WriteIndented = true })); } From cc5bbd3d5f2acd3ea81a6cdc8d8473f2ec9e546a Mon Sep 17 00:00:00 2001 From: Yoshihiko Miyaichi Date: Mon, 2 Sep 2024 14:32:41 +0900 Subject: [PATCH 25/25] Gwh apidocs 2164 private operator doc --- .../integration-options-private-operator.md | 60 +++++++++---------- .../guides/operator-guide-azure-enclave.md | 2 +- .../overviews/overview-operators-private.md | 2 +- .../current/portal/api-keys.md | 2 +- .../current/ref-info/glossary-uid.md | 2 +- .../ref-info/ref-operators-public-private.md | 2 +- 6 files changed, 35 insertions(+), 35 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-options-private-operator.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-options-private-operator.md index 3cdc12d0b..88b8f1556 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-options-private-operator.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/integration-options-private-operator.md @@ -9,75 +9,75 @@ import Link from '@docusaurus/Link'; # Private Operator Integrations -A Private Operator is a private instance of the UID2 Operator. This means that a specific entity hosts a private instance of the UID2 Operator, exclusively for their own use. +Private Operator は、UID2 Operator のプライベートインスタンスです。つまり、特定の組織が、自分自身の使用のために UID2 Operator のプライベートインスタンスを独占的にホストしています。 -A Private Operator runs in an enclave—a virtual machine with additional security features to prevent unauthorized access, so that unauthorized individuals cannot download any configuration information or data from the virtual machine. +Private Operator は、enclave で実行されます。これは、未承認のアクセスを防ぐための追加のセキュリティ機能を備えた仮想マシンです。そのため、権限のない個人は、仮想マシンから構成情報やデータをダウンロードすることができません。 -Enclaves provide hardware-based security features, ensuring that the VM's data and operations are protected from external threats, including the host operating system, hypervisor, and even system administrators. +Enclave は、ハードウェアベースのセキュリティ機能を提供し、VM のデータと操作が外部の脅威(ホストオペレーティングシステム、ハイパーバイザー、さらにはシステム管理者さえも)から保護されるようにします。 -Running in an enclave provides an extra layer of security to protect the secure data used to produce raw UID2s. +Enclave で実行することにより、raw UID2 を生成するために使用される安全なデータを保護するための追加のセキュリティレイヤーが提供されます。 -Becoming a Private Operator includes several additional steps, and uses resources that the participant must provide. +Private Operator になるには、いくつかの追加のステップが必要で、参加者が提供するリソースが必要です。 -On this page, you'll find a high-level overview of integration options and steps, with links to additional information for each option. +このページでは、インテグレーションオプションとステップの概要を紹介し、各オプションに関する追加情報へのリンクを提供します。 ## Private Operator Requirements -The participant must host, configure, maintain, and update the Private Operator instance, and must conform to strict security measures. Engineering resources are required to integrate and to make ongoing updates. +参加者は、Private Operator インスタンスをホスト、構成、維持、および更新し、厳格なセキュリティ対策に準拠する必要があります。インテグレーションと継続的な更新を行うためにエンジニアリソースが必要です。 -The participant must sign a contract (see [Account Setup](../getting-started/gs-account-setup.md)) to host a Private Operator instance. +Private Operator インスタンスをホストするには、参加者は契約に署名する必要があります([Account Setup](../getting-started/gs-account-setup.md)を参照してください)。 :::note -A Private Operator has no visibility into the raw UID2s or UID2 tokens processed by a Public Operator or another Private Operator. Each Private Operator is isolated from all other Operators. +Private Operator は、Public Operator または他の Private Operator によって処理された raw UID2 または UID2 Token を表示できません。各 Private Operator はすべての他の Operator から隔離されています。 ::: ## Private Operator Workflow -Every Private Operator runs in one of the following: +すべての Private Operator は、次のいずれかで実行されます: - [Nitro](https://aws.amazon.com/ec2/nitro/) Enclave (AWS) - Confidential space (GCP) - Confidential computing environment (Azure) -Each of these ensures that the Private Operator runs in a protected memory space. +これらの各機能により、Private Operator が保護されたメモリ空間で実行されることが保証されます。 -The basic workflow is as follows: +基本的なワークフローは次のとおりです: -1. On startup, the Private Operator goes through an attestation process with the Core service. The attestation process verifies that the Operator is running in a secure trusted execution environment (TEE), and that the environment hasn't been tampered with. +1. 起動時に、Private Operator は Core サービスとの認証プロセスを経ます。認証プロセスでは、Operator が安全な信頼された実行環境(TEE)で実行されていること、および環境が改ざんされていないことが検証されます。 -1. When the Operator passes the attestation process, the Core service gives the Private Operator secure S3 URLs for retrieving the information it needs for startup. +1. Operator が認証プロセスをパスすると、Core サービスは Private Operator に、起動に必要な情報を取得するための安全な S3 URL を提供します。 -1. The Private Operator retrieves the security information from Amazon S3 that it needs to process UID2s, such as salts, encryption keys, and user opt-out records. For security details, see [Private Operator Security](#private-operator-security). +1. Private Operator は、UID2 の処理に必要なセキュリティ情報(ソルト、暗号化キー、ユーザーのオプトアウトレコードなど)を Amazon S3 から取得します。セキュリティの詳細については、[Private Operator Security](#private-operator-security) を参照してください。 -1. If an Operator is restarted, it goes through the attestation process again, and retrieves a fresh set of security information. +1. Operator が再起動されると、再度認証プロセスを経て、新しいセキュリティ情報を取得します。 -1. The Operator re-attests periodically with the Core service to ensure that it is still running in a protected environment. If any compromise is detected, the Operator shuts down. +1. Operator は、Core サービスと定期的に再認証して、保護された環境で実行されていることを確認します。改ざんが検出された場合、Operator はシャットダウンします。 ## Private Operator Security -Each supported Private Operator implementation must meet rigorous security standards. Some security points include: +サポートされる Private Operator の実装は、いずれも厳格なセキュリティ基準を満たす必要があります。セキュリティポイントには次のようなものがあります: -- The Private Operator runs in a hardware-based trusted execution environment (TEE) hosted by one of the supported cloud providers listed in [Private Operator Integration Options](#private-operator-integration-options). -- The Private Operator must complete an attestation process before accessing the information needed to process UID2s. -- The information on S3 is encrypted at rest and also encrypted in transit through TLS. In addition, access is limited to only correctly authorized and attested Private Operators. -- The information retrieved at startup is not stored locally at any point. It is only ever held in memory, and the Private Operator is running in a protected environment that makes it difficult for anyone running the Operator (such as an Administrator), as well as any external players, to see the data that's in memory. +- Private Operator は、[Private Operator Integration Options](#private-operator-integration-options) にリストされているサポートされるクラウドプロバイダーのうちの1つによってホストされるハードウェアベースの信頼された実行環境(TEE)で実行されます。 +- Private Operator は、UID2 を処理するために必要な情報にアクセスする前に、認証プロセスを完了する必要があります。 +- S3 上の情報は、安全に暗号化され、TLS を介して転送されます。さらに、アクセスは正しく認証された Private Operator にのみ制限されます。 +- 起動時に取得される情報は、ローカルに保存されません。情報は常にメモリに保持され、Private Operator は、メモリ内のデータを見ることが困難な保護された環境で実行されています。 ## Private Operator Integration Options -The following Private Operator integrations are available. +以下の Private Operator インテグレーションが利用可能です。 -There is no functional difference between the Private Operator versions. +Private Operator のバージョン間に機能上の違いはありません。 | Integration Type| Documentation | Content Description | | :--- | :--- | :--- | -| AWS | [UID2 Private Operator for AWS Integration Guide](../guides/operator-guide-aws-marketplace.md) | Instructions for setting up a Private Operator service for AWS Marketplace. | -| GCP Confidential Space | [UID2 Private Operator for GCP Integration Guide](../guides/operator-private-gcp-confidential-space.md) | Information for setting up the UID2 Operator Service in [Confidential Space](https://cloud.google.com/confidential-computing#confidential-space), a confidential computing option from [Google Cloud](https://cloud.google.com/docs/overview/) Platform. | -| Azure | [UID2 Private Operator for Azure Integration Guide](../guides/operator-guide-azure-enclave.md) | Instructions for setting up the UID2 Operator Service in a Confidential Container, a confidential computing option from Microsoft Azure. | +| AWS | [UID2 Private Operator for AWS Integration Guide](../guides/operator-guide-aws-marketplace.md) | AWS Marketplace の Private Operator Serviceの設定方法。| +| GCP Confidential Space | [UID2 Private Operator for GCP Integration Guide](../guides/operator-private-gcp-confidential-space.md) | [Google Cloud](https://cloud.google.com/docs/overview/) Platform 機密コンピューティングオプションである [Confidential Space](https://cloud.google.com/confidential-computing#confidential-space) での UID2 Operator Serviceの設定方法。 | +| Azure | [UID2 Private Operator for Azure Integration Guide](../guides/operator-guide-azure-enclave.md) | Microsoft Azureの機密コンピューティングオプションであるConfidential ContainerでUID2 Operator Serviceを設定する方法。 | ## Additional Information -The following additional resources are available for those interested in hosting a Private Operator: +Private Operator をホストすることに興味がある方向けに、以下の追加リソースが利用可能です。 -- General information about Private Operators, including a summary of benefits: see [UID2 Overview for Private Operators](../overviews/overview-operators-private.md). +- Private Operator に関する一般情報、利点の概要: [UID2 Overview for Private Operators](../overviews/overview-operators-private.md) を参照してください。 -- General information about how Operators work: see [The UID2 Operator](../ref-info/ref-operators-public-private.md). +- Operator がどのように機能するかに関する一般情報: [The UID2 Operator](../ref-info/ref-operators-public-private.md) を参照してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/guides/operator-guide-azure-enclave.md b/i18n/ja/docusaurus-plugin-content-docs/current/guides/operator-guide-azure-enclave.md index 74cf46eaa..3d9244f98 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/guides/operator-guide-azure-enclave.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/guides/operator-guide-azure-enclave.md @@ -12,7 +12,7 @@ import ReleaseMatrix from '/docs/snippets/_private-operator-release-matrix.mdx'; # UID2 Private Operator for Azure Integration Guide -このガイドでは、Microsoft Azure の [Confidential Container](https://learn.microsoft.com/en-us/azure/confidential-computing/confidential-containers) で UID2 Operator サービスを設定する方法について説明します。Confidential Container は、Microsoft Azure の機密コンピューティングオプションで、データの整合性、データの機密性、コードの整合性などの固有の機能を提供するハードウェアバックドの Trusted Execution Environment (TEE) で実行されます。 +このガイドでは、Microsoft Azure の [Confidential Container](https://learn.microsoft.com/en-us/azure/confidential-computing/confidential-containers) で UID2 Operator Serviceを設定する方法について説明します。Confidential Container は、Microsoft Azure の機密コンピューティングオプションで、データの整合性、データの機密性、コードの整合性などの固有の機能を提供するハードウェアバックドの Trusted Execution Environment (TEE) で実行されます。 UID2 Operator Confidential Container の Docker コンテナが起動すると、UID2 Core Service は Operator Service と Operator Service が実行されているエンクレーブ環境の信頼性を検証ための認証プロセスを完了します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/overviews/overview-operators-private.md b/i18n/ja/docusaurus-plugin-content-docs/current/overviews/overview-operators-private.md index 85204f815..016c635ce 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/overviews/overview-operators-private.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/overviews/overview-operators-private.md @@ -9,7 +9,7 @@ banner_description: プライベート環境で DII から UID2 を生成する import Link from '@docusaurus/Link'; -UID2 の Private Operator は、ファーストパーティの[directly identifying information (DII)](../ref-info/glossary-uid.md#gl-dii) を安全な環境に送信して変換し、その識別子の送信先を管理します。Private Operator(以前は Closed Operator と呼ばれていました)になることを選択した参加者は、プライベート環境で UID2 Operator Service を実行し、UID2 を生成および管理できます。 +UID2 の Private Operator は、ファーストパーティの[directly identifying information (DII)](../ref-info/glossary-uid.md#gl-dii) を安全な環境に送信して変換し、その識別子の送信先を管理します。Private Operator(以前は Closed Operator と呼ばれていました)になることを選択した参加者は、プライベート環境で UID2 Operator Service を実行し、UID2 を生成および管理できます。 UID2 フレームワークが Private Operator に提供するメリット、ホスティングオプション、ドキュメント、その他のリソース、開始方法などについて説明します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/portal/api-keys.md b/i18n/ja/docusaurus-plugin-content-docs/current/portal/api-keys.md index 162a891ce..26b30930f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/portal/api-keys.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/portal/api-keys.md @@ -18,7 +18,7 @@ UID2 Portal の **API Keys** ページでは、UID2 アカウントの API Key ## Overview -API Key とクライアント シークレットを使用すると、UID2 Operator サービスに接続して API エンドポイントを呼び出すことができます。これらの値は、サービスに対してあなたを識別します。 +API Key とクライアント シークレットを使用すると、UID2 Operator Serviceに接続して API エンドポイントを呼び出すことができます。これらの値は、サービスに対してあなたを識別します。 UID2 Portal で API Key を追加するときは、キーとそれに対応するシークレットを安全に保存し、これらの値が漏洩しないようにするために必要なすべての措置を講じることが重要です。詳細は [API Key and Client Secret](../getting-started/gs-credentials.md#api-key-and-client-secret) を参照してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/glossary-uid.md b/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/glossary-uid.md index 1660e9eaf..cdc0ef97f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/glossary-uid.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/glossary-uid.md @@ -230,7 +230,7 @@ import Link from '@docusaurus/Link';
Enclave
Enclave は、コンピューティング環境のセキュアなサブセクションです。エンクレーブには追加のビジネスロジックとセキュリティ対策が施され、改ざんできないようになっています。
-
UID2 のコンテキストでは Private Operator は、Enclave 内かプライベート環境で運用しなければなりません。サポートされるエングレーブのバージョンについては、Private Operator Service Integrations を参照してください。
+
UID2 のコンテキストでは、Private Operator はエンクレーブ内で実行されなければなりません。サポートされるエンクレーブバージョンの概要については、*UID2 Overview for Private Operators* の Implementation Resources を参照してください。
Enclave では、オペレータイメージは特殊で、事前に定義されたバージョンでなければならず、セキュリティを確保するために追加の制約が適用されます。
Encryption key
diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/ref-operators-public-private.md b/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/ref-operators-public-private.md index e5000a132..c2cfd88d8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/ref-operators-public-private.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ref-info/ref-operators-public-private.md @@ -28,7 +28,7 @@ Operator は UID2 の中核的なコードです。このコードは、メー ## Public Operators -Public Operator または Open Operator は、関連するすべての UID2 参加者が利用できる UID2 Operator インスタンスです。Public Operator は、一般に利用可能な Operator Service のインスタンスを実行し、参加者が利用できるようにします。 +Public Operator は、関連するすべての UID2 参加者が利用できる UID2 Operator インスタンスです。Public Operator は、一般に利用可能な Operator Service のインスタンスを実行し、参加者が利用できるようにします。 ほとんどの場合、UID2 参加者は Public Operator を使用します。