Skip to content

Commit

Permalink
Merge pull request #761 from IABTechLab/gwh-APIDOCS-2688-07-minor-edi…
Browse files Browse the repository at this point in the history
…ts-guides

UID2 minor edits from parity check on Guides docs
  • Loading branch information
genwhittTTD authored Nov 20, 2024
2 parents 17d34e5 + 5391222 commit d33b2ec
Show file tree
Hide file tree
Showing 17 changed files with 30 additions and 279 deletions.
2 changes: 1 addition & 1 deletion docs/guides/advertiser-dataprovider-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ DII refers to a user's normalized email address or phone number, or the normaliz
<!-- diagram source: resource/advertiser-flow-mermaid.md.bak -->

Refer to the following sections for details about the different parts of the diagram:
1. [Retrieve a raw UID2 for DII using the identity map endpoints](#1-retrieve-a-raw-uid2-for-dii-using-the-identity-map-endpoint)
1. [Retrieve a raw UID2 for DII using the identity map endpoint](#1-retrieve-a-raw-uid2-for-dii-using-the-identity-map-endpoint)
2. [Send stored raw UID2s to DSPs to create audiences or conversions](#2-send-stored-raw-uid2s-to-dsps-to-create-audiences-or-conversions)
3. [Monitor for salt bucket rotations related to your stored raw UID2s](#3-monitor-for-salt-bucket-rotations-related-to-your-stored-raw-uid2s)

Expand Down
12 changes: 6 additions & 6 deletions docs/guides/integration-javascript-client-side.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ This approach is used by the following participant types:

This guide does not apply to publishers who want to use a <Link href="../ref-info/glossary-uid#gl-private-operator">Private Operator</Link>, or who want to generate tokens server-side. Those publishers should follow the [Client-Server Integration Guide for JavaScript](integration-javascript-client-server.md).

UID2 provides a SDK for JavaScript (see [SDK for JavaScript Reference Guide](../sdks/sdk-ref-javascript.md)) with the following features:
UID2 provides an SDK for JavaScript (see [SDK for JavaScript Reference Guide](../sdks/sdk-ref-javascript.md)) with the following features:

- UID2 token generation
- Automatic refreshing of UID2 tokens
Expand All @@ -37,7 +37,7 @@ UID2 provides a SDK for JavaScript (see [SDK for JavaScript Reference Guide](../
To implement, you'll need to complete the following steps:

1. [Complete UID2 account setup](#complete-uid2-account-setup)
2. [Add SDK For JavaScript to your site](#add-sdk-for-javascript-to-your-site)
2. [Add SDK for JavaScript to your site](#add-sdk-for-javascript-to-your-site)
3. [Configure the SDK for JavaScript](#configure-the-sdk-for-javascript)
4. [Check that the token was successfully generated](#check-that-the-token-was-successfully-generated)

Expand Down Expand Up @@ -74,7 +74,7 @@ When account setup is complete, you'll receive a client keypair consisting of tw
Only root-level domains are required for account setup. For example, if you're going to use SDK for JavaScript on example.com, shop.example.com, and example.org, you only need to provide the domain names example.com and example.org.
:::

## Add SDK For JavaScript to Your Site
## Add SDK for JavaScript to Your Site

The following code snippet provides an overview of the code you will need to add to your website. It also illustrates the different events that the SDK can trigger.

Expand Down Expand Up @@ -149,7 +149,7 @@ UID2 provides the publisher with the following values required to use the client
* A Subscription ID
* A public key

You'll have one set of these values for your publisher Integration environment, and a separate set for your production environment.
You'll have one set of these values for your publisher integration environment, and a separate set for your production environment.

To configure the SDK, call one of the following methods, with an object containing the **public key** and **Subscription ID** that you received during account setup, as well as the user's hashed or unhashed <Link href="../ref-info/glossary-uid#gl-dii">DII</Link> (email address or phone number):

Expand Down Expand Up @@ -269,14 +269,14 @@ In this scenario:
After calling one of the methods listed in [Configure the SDK for JavaScript](#configure-the-sdk-for-javascript) successfully, an <Link href="../ref-info/glossary-uid#gl-identity">identity</Link> is generated and stored in local storage, under the key `UID2-sdk-identity`. The SDK refreshes the UID2 token periodically.

:::warning
The format of the object stored in local storage could change without notice. We recommend that you do **not** read or update the object in local storage directly.
The format of the object stored in local storage could change without notice. We recommend that you do **not** read or update the object in local storage directly.
:::

## Example Integration Code and When to Pass DII to the UID2 SDK

If you're a publisher and this is the first page load with no <Link href="../ref-info/glossary-uid#gl-identity">identity</Link>, to start the token generation call you'll need to call one of the `setIdentity` methods with DII. Once an identity is generated, the advertising token (<Link href="../ref-info/glossary-uid#gl-uid2-token">UID2 token</Link>) that you would send to the bidstream will be available by waiting for the `IdentityUpdated` event from the SDK. For an example, see how the value for `advertising_token_to_use` is set in the following code snippet.

In some cases, the user's DII is not available on page load, and getting the DII has some associated cost. For example, an API call might be required to fetch the DII, or the user has to be prompted to provide the DII information.
In some cases, the user's DII is not available on page load, and getting the DII has some associated cost. For example, an API call might be required to fetch the DII, or the user has to be prompted to provide it.

You can potentially avoid that cost by checking for an existing token that you can use or refresh. To do this, call
[__uid2.isLoginRequired](../sdks/sdk-ref-javascript#isloginrequired-boolean) which returns a Boolean value. If it returns `true`, this means that the UID2 SDK cannot create a new advertising token with the existing resource and DII is required to generate a brand new UID2 token.
Expand Down
2 changes: 1 addition & 1 deletion docs/guides/integration-mobile-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ Podspec is the name of the file in CocoaPods that defines the libraries to be in

Here's some additional information to help you troubleshoot your UID2 mobile integrations:

- [Android SDK cannot connect in Production environment](#android-sdk-cannot-connect-in-production-environment)
- [Android SDK Cannot Connect in Production Environment](#android-sdk-cannot-connect-in-production-environment)

#### Android SDK Cannot Connect in Production Environment

Expand Down
2 changes: 1 addition & 1 deletion docs/guides/integration-options-private-operator.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ The basic workflow for a Private Operator is as follows:

Each supported Private Operator implementation must meet rigorous security standards. Some security points include:

- The Private Operator runs in a hardware-based trusted execution environment (TEE) hosted by one of the supported cloud providers listed in [Hosting Options for Private Operators](#hosting-options-for-private-operators).
- The Private Operator runs in a hardware-based trusted execution environment (TEE) hosted by a supported cloud provider listed in [Hosting Options for Private Operators](#hosting-options-for-private-operators).
- 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.
Expand Down
129 changes: 1 addition & 128 deletions docs/guides/integration-options-publisher-web.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,6 @@ As a publisher, there are many ways that you can integrate with UID2 to generate

On this page, you'll find a high-level overview of integration steps and integration options, with links to additional information for each option.

<!-- The integration option that's right for you depends on many factors. For example, if the <Link href="../ref-info/glossary-uid#gl-dii">DII</Link> is available on the client side, and you can use the latest version of Prebid.js, you can use the UID2 Prebid.js module, which manages the token generate request, token refresh request, and passing the token into the bidstream.
Some questions you might ask:
- Do you want to generate the UID2 token request on the client side or the server side?
- Do you use Prebid.js? If yes:
- Are you constrained to a specific Prebid.js version?
- Do you want the UID2 Prebid.js module to do everything&#8212;generate the token, refresh the token, and pass the token into the bidstream?
- Do you prefer to use the SDK for JavaScript to generate and refresh the token, and use Prebid.js to pass the token into the bidstream? -->

## Key Integration Steps

At a high level, to integrate with UID2, you'll implement these three key activities:
Expand All @@ -44,7 +35,7 @@ To accomplish all steps, you can combine solutions. For example, you could use t
| [Prebid.js client-side (8.21.0 or later)](integration-prebid-client-side.md) | &#9989; | &#9989; | &#9989; |
| [Prebid.js client-server (7.53.0 or later)](integration-prebid-client-server.md) | &#8212; | &#9989; | &#9989; |
| [SDK for JavaScript, client-side](integration-javascript-client-side.md) | &#9989; | &#9989; | &#8212; |
| [SDK for JavaScript, server-side](integration-javascript-client-server.md) | &#9989; | &#9989; | &#8212; |
| [SDK for JavaScript, client-server](integration-javascript-client-server.md) | &#9989; | &#9989; | &#8212; |
| [SDK for Java](../sdks/sdk-ref-java.md) | &#9989; | &#9989; | &#8212; |
| [SDK for Python](../sdks/sdk-ref-python.md) | &#9989; | &#9989; | &#8212; |
| [Direct integration (API endpoints)](integration-publisher-server-side.md) | &#9989; | &#9989; | &#8212; |
Expand Down Expand Up @@ -100,8 +91,6 @@ Generating the UID2 token on the server side has the following advantages:

The following table summarizes the options for publishers who want to generate the UID2 token on the server side.

<!-- (**GWH_SW His query: "why is Prebid.js server integration not listed here?" I thought the server-side option didn't support token/generate + per KK's diagram. Let's discuss. Affects summary table also.**) -->

| Option | Documentation |
| :--- | :--- |
| SDK for JavaScript, client-server implementation | [Client-Server Integration Guide for JavaScript](integration-javascript-client-server.md) |
Expand Down Expand Up @@ -142,119 +131,3 @@ The following table shows integration options that support passing UID2 token in
:::note
As long as you generate the token and keep it refreshed, you can also use other options for passing the UID2 token into the bidstream.
:::

<!-- ## Integration Using Prebid.js
(**GWH_KK not sure if we want this section. Would appreciate your input.**)
If you want to integrate using Prebid.js, here are some additional questions you'll need to answer to determine the best integration approach, and some steps to take:
- What Prebid.js version are you using?
- If you're using Prebid.js 8.21.0 or later, you can use the client-side Prebid.js integration option, which is the simplest and easiest implementation approach.
- If you're using a version prior to 8.21.0 (7.53.0 or later), and can't easily upgrade, you'll choose a server-side option.
- Domain names:
- As part of account setup, if you're using the Prebid.js client-side option, you'll need to provide a list of your root-level domains.
- Are you already using the UID2 JavaScript SDK to generate and refresh the token? If so, you can continue to use the Prebid.js client-server implementation. For details, see [UID2 Client-Server Integration Guide for Prebid.js](integration-prebid-client-server.md). -->

<!--
## Advantages: Summary
The following table summarizes the advantages of each integration option.
(**GWH_KK don't like having two tables but I can't fit it all into one. Also the docs are different. Need input re the best docs to link to... SDK ref or integration guide?**)
| Option | Client/Server | Advantages | Documentation |
| :--- | :--- | :--- | :--- |
| Prebid.js 8.21.0 or later | Client | <ul><li>No server-side coding needed.</li><li>Fast and easy implementation.</li></ul> | [UID2 Client-Side Integration Guide for Prebid.js](integration-prebid-client-side.md) |
| UID2 JavaScript SDK + Prebid.js 7.53.0 or later | Client | <ul><li>No need to upgrade to the latest Prebid.js version.</li><li>Easier to manage latency with a server-side implementation.</li><li>The JavaScript SDK takes care of generating and refreshing the token, and Prebid.js takes care of sending the token to the bidstream.</li></ul> | <ul><li>[Client-Side Integration Guide for JavaScript](integration-javascript-client-side.md)</li><li>[UID2 Client-Server Integration Guide for Prebid.js](integration-prebid-client-server.md)</li></ul> |
| SDK for JavaScript | Server | <ul><li>The SDK takes care of generating and refreshing the token.</li><li>Coded in JavaScript.</li></ul> If you use JavaScript, and client-side implementation is not suitable for you, this is your best choice. | [SDK for JavaScript Reference Guide (2.x and earlier versions)](../sdks/sdk-ref-javascript-v2.md) |
| SDK for Java | Server | <ul><li>The SDK takes care of generating and refreshing the token.</li><li>Coded in Java.</li></ul> If your server-side coding is Java, and client-side implementation is not suitable for you, this is your best choice. | [SDK for Java (Server-Side) Reference Guide](../sdks/sdk-ref-java.md) |
| SDK for Python] | Server | <ul><li>The SDK takes care of generating and refreshing the token.</li><li>Coded in Python.</li></ul> If your server-side coding is Python, and client-side implementation is not suitable for you, this is your best choice. | [SDK for Python (Server-Side) Reference Guide](../sdks/sdk-ref-python.md) |
| Direct integration (API endpoints) | Server | You're free to implement the APIs in whatever way you choose. | <ul><li>[POST /token/generate](../endpoints/post-token-generate.md)</li><li>[POST /token/refresh](../endpoints/post-token-refresh.md)</li></ul> |
-->

<!-- ## BELOW = TO DELETE
-----------------------------BELOW = TO DELETE
## Integration Details
The following sections provide additional information on each of the integration options, with links to documentation resources:
* [Prebid.js 8.21.0 or Later](#prebidjs-8210-or-later)
* [UID2 JavaScript SDK + Prebid.js 7.53.0 or later](#uid2-sdk-for-javascript--prebidjs-7530-or-later)
* [SDK for JavaScript](#uid2-sdk-for-javascript)
* [SDK for Java](#uid2-sdk-for-java)
* [SDK for Python](#uid2-sdk-for-python)
* [Direct integration (API endpoints)](#direct-integration-api-endpoints)
### Prebid.js 8.21.0 or Later
The advantages of this implementation approach are as follows:
- No server-side coding needed.
- Fast and easy implementation.
For details, see [UID2 Client-Side Integration Guide for Prebid.js](../guides/integration-prebid-client-side.md).
### SDK for JavaScript + Prebid.js 7.53.0 or later
The advantages of this implementation approach are as follows:
- No need to upgrade to the latest Prebid.js version.
- Easier to manage latency with a server-side implementation.
- The JavaScript SDK takes care of generating and refreshing the token, and Prebid.js takes care of sending the token to the bidstream.
For details, see:
- [SDK for JavaScript Reference Guide](../sdks/sdk-ref-javascript.md)
- [UID2 Client-Server Integration Guide for Prebid.js](../guides/integration-prebid-client-server.md)
### SDK for JavaScript
The advantages of this implementation approach are as follows:
- The SDK takes care of generating and refreshing the token.
- Coded in JavaScript. If you use JavaScript, and client-side implementation is not suitable for you, this is your best choice.
For details, see [SDK for JavaScript Reference Guide (2.x and earlier versions)](../sdks/sdk-ref-javascript-v2.md).
### SDK for Java
The advantages of this implementation approach are as follows:
- The SDK takes care of generating and refreshing the token.
- Coded in Java. If your server-side coding is Java, and client-side implementation is not suitable for you, this is your best choice.
For details, see [SDK for Java (Server-Side) Reference Guide](../sdks/sdk-ref-java.md).
### SDK for Python
The advantages of this implementation approach are as follows:
- The SDK takes care of generating and refreshing the token.
- Coded in Python. If your server-side coding is Python, and client-side implementation is not suitable for you, this is your best choice.
For details, see [SDK for Python (Server-Side) Reference Guide](../sdks/sdk-ref-python.md).
### Direct integration (API endpoints)
The advantages of this implementation approach are as follows:
- You're free to implement the APIs in whatever way you choose.
For details, see:
- [POST /token/generate](../endpoints/post-token-generate.md)
- [POST /token/refresh](../endpoints/post-token-refresh.md) -->


<!--
## TABLE STASH
| Option | Token Generation managed by | Token Refresh managed by |Passing Token to the Bidstream |
| :--- | :--- | :--- | :--- |
| Prebid.js 8.21.0 or later<br/>[UID2 Client-Side Integration Guide for Prebid.js](integration-prebid-client-side.md) | Prebid.js 8.21.0 or later | Prebid.js 8.21.0 or later | Prebid.js 8.21.0 or later |
| UID2 JavaScript SDK + <br/>Prebid.js 7.53.0 or later | UID2 JS SDK<br/>[Client-Side Integration Guide for JavaScript](integration-javascript-client-side.md) | UID2 JS SDK or Prebid.js 7.53.0 or later | Prebid.js 7.53.0 or later<br/>[UID2 Client-Server Integration Guide for Prebid.js](integration-prebid-client-server.md) |
| SDK for JavaScript<ul><li>[Client-Server Integration Guide for JavaScript](integration-javascript-client-server.md)</li><li>[Publisher Integration Guide, Server-Side](integration-publisher-server-side.md)</li></ul> | JavaScript SDK | JavaScript SDK | Publisher's choice. For example, Prebid.js.<br/>[UID2 Client-Server Integration Guide for Prebid.js](integration-prebid-client-server.md) |
| SDK for Java<br/>[Publisher Integration Guide, Server-Side](integration-publisher-server-side.md) | [SDK for Java](../sdks/sdk-ref-java.md) | [SDK for Java](../sdks/sdk-ref-java.md)| Publisher's choice.<br/>Can be integrated with Prebid.js. |
| SDK for Python<br/> [Publisher Integration Guide, Server-Side](integration-publisher-server-side.md)| [SDK for Python](../sdks/sdk-ref-python.md) | [SDK for Python](../sdks/sdk-ref-python.md) | Publisher's choice.<br/>Can be integrated with Prebid.js. |
| GAM Secure Signals<br/> [xxx](integration-publisher-server-side.md)| [Google Ad Manager Secure Signals Integration Guide](integration-google-ss.md) | [Google Ad Manager Secure Signals Integration Guide](integration-google-ss.md) | [Google Ad Manager Secure Signals Integration Guide](integration-google-ss.md) |
| Direct integration<br/>(API endpoints)<br/>[Publisher Integration Guide, Server-Side](integration-publisher-server-side.md) | [POST /token/generate](../endpoints/post-token-generate.md) | [POST /token/refresh](../endpoints/post-token-refresh.md) | Publisher's choice.<br/>Can be integrated with Prebid.js. |
-->
5 changes: 4 additions & 1 deletion docs/guides/integration-prebid-client-server.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,13 @@ To integrate with UID2 using Prebid.js, you'll need to:
- Make server-side changes for token generation (and, optionally, <a href="../ref-info/glossary-uid#gl-token-refresh">token refresh</a>).

## Prebid.js Version

This implementation requires Prebid.js version 7.53.0 or later. For version information, see [https://github.com/prebid/Prebid.js/releases](https://github.com/prebid/Prebid.js/releases).

<!-- Diff in Prebid.js supported version for UID2/EUID is fine: verif SS 11/19/24 -->

## UID2 Prebid Module Page
<!-- GWH TODO later: move to overview or to client side doc maybe when client-side implementation is added to the Prebid module pages. Now, they are only server side. -->

Information about how to integrate Prebid with UID2 is also in the following locations:
- On the Prebid site, on the [Unified ID 2.0](https://docs.prebid.org/dev-docs/modules/userid-submodules/unified2.html) page for the Prebid User ID submodule.
- In the Prebid GitHub repository, on the [UID2 User ID Submodule](https://github.com/prebid/Prebid.js/blob/master/modules/uid2IdSystem.md) page.
Expand Down
Loading

0 comments on commit d33b2ec

Please sign in to comment.