You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/getting-started/gs-faqs.md
+4-3Lines changed: 4 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -167,6 +167,8 @@ For details, see [Publisher Integration with SSO Providers](/docs/ref-info/ref-i
167
167
Here are some frequently asked questions for advertisers and data providers using the UID2 framework.
168
168
169
169
-[How do I know when to refresh a raw UID2?](#how-do-i-know-when-to-refresh-a-raw-uid2)
170
+
-[How do I know when to refresh the UID2 due to salt bucket rotation?](#how-do-i-know-when-to-refresh-the-uid2-due-to-salt-bucket-rotation)
171
+
-[Do refreshed emails get assigned to the same bucket with which they were previously associated?](#do-refreshed-emails-get-assigned-to-the-same-bucket-with-which-they-were-previously-associated)
170
172
-[How often should Raw UID2s be refreshed for incremental updates?](#how-often-should-raw-uid2s-be-refreshed-for-incremental-updates)
171
173
-[How should I generate the SHA-256 of DII for mapping?](#how-should-i-generate-the-sha-256-of-dii-for-mapping)
172
174
-[Should I store mapping of email addresses, phone numbers, or corresponding hashes to raw UID2s in my own datasets?](#should-i-store-mapping-of-email-addresses-phone-numbers-or-corresponding-hashes-to-raw-uid2s-in-my-own-datasets)
@@ -187,7 +189,6 @@ To determine whether to refresh a raw UID2:
187
189
We recommend checking for refresh opportunities daily. It is guaranteed that the raw UID2 won't refresh before the indicated timestamp. At some point after that time, the raw UID2 is refreshed.
188
190
:::
189
191
190
-
191
192
#### How often should Raw UID2s be refreshed for incremental updates?
192
193
193
194
The recommended cadence for updating audiences is daily.
@@ -260,9 +261,9 @@ Each of the server-side SDKs (see [SDKs: Summary](../sdks/summary-sdks.md)) upda
260
261
261
262
You can use one of the server-side SDKs (see [SDKs: Summary](../sdks/summary-sdks.md)) to communicate with the UID2 service and fetch the latest keys. To make sure that the keys remain up-to-date, it is recommended to fetch them periodically; for example, once every hour.
262
263
263
-
#### How many decryption keys might be present in memory at any point?
264
+
#### How many decryption keys may be present in memory at any point?
264
265
265
-
There might be thousands of decryption keys present in the system at any given point.
266
+
There may be thousands of decryption keys present in the system at any given point.
266
267
267
268
#### How do I know when to refresh mapped raw UID2s?
| 5-a | Local timestamp check | Compare the current time with the refresh timestamp (`r` field) you stored from the [POST /identity/map](../endpoints/post-identity-map-v3.md) response previously. |
106
-
| 5-b |[POST /identity/map](../endpoints/post-identity-map-v3.md)| If the current time is greater than or equal to the refresh timestamp, regenerate the raw UID2 by calling the identity map endpoint again with the same DII. |
107
-
| 5-c | Local storage update | Store the new raw UID2 (`u` field), refresh timestamp (`r` field) and optionally previous UID2 (`p` field) returned from the response.|
103
+
| Step | Action | Description |
104
+
|:--- | :---| :---|
105
+
| 5-a | Local timestamp check | Compare the current time with the refresh timestamp (`r` field) you stored from the [POST /identity/map](../endpoints/post-identity-map-v3.md) response previously. |
106
+
| 5-b |[POST /identity/map](../endpoints/post-identity-map-v3.md)| If the current time is greater than or equal to the refresh timestamp, regenerate the raw UID2 by calling the identity map endpoint again with the same DII. |
107
+
| 5-c | Local storage update | Store the new raw UID2 (`u` field), refresh timestamp (`r` field) and optionally previous UID2 (`p` field) returned from the response. |
108
108
109
109
#### Determine whether to refresh a raw UID2
110
110
@@ -127,3 +127,134 @@ There are two ways that you can check with the UID2 <Link href="../ref-info/glos
127
127
- Check the opt-out status of raw UID2s using the [POST /optout/status](../endpoints/post-optout-status.md) endpoint.
128
128
129
129
For details about the UID2 opt-out workflow and how users can opt out, see [User Opt-Out](../getting-started/gs-opt-out.md).
130
+
131
+
---
132
+
133
+
# For Users of Older SDK/API Version
134
+
135
+
:::warning
136
+
The following information is relevant to the older integration approach and is provided for reference only. New implementations should use the main approach described above. For current best practices, refer to the [main integration guide](#high-level-steps).
137
+
:::
138
+
139
+
## Advertiser/Data Provider Integration to HTTP Endpoints
140
+
141
+
This guide covers integration steps for advertisers and data providers to integrate with UID2 by writing code to call UID2 HTTP endpoints, rather than using another implementation option such as an SDK, Snowflake, or AWS Entity Resolution.
142
+
143
+
:::tip
144
+
For a summary of all integration options and steps for advertisers and data providers, see [Advertiser/Data Provider Integration Overview](integration-advertiser-dataprovider-overview.md).
145
+
:::
146
+
147
+
### Complete UID2 Account Setup and Configure Account
148
+
149
+
To integrate with UID2, you'll need to have a UID2 account. If you haven't yet created an account, first follow the steps described on the [Account Setup](../getting-started/gs-account-setup.md) page.
150
+
151
+
When initial account setup is complete, you'll receive instructions and a link to access the [UID2 Portal](../portal/portal-overview.md), where you can create your [credentials](../getting-started/gs-credentials.md) for the production environment and configure additional values, if needed. For details, see [Getting Started with the UID2 Portal](../portal/portal-getting-started.md).
152
+
153
+
You'll need to set up these values, in the UID2 Portal on the [API Keys](../portal/api-keys.md) page:
154
+
155
+
- <Linkhref="../ref-info/glossary-uid#gl-api-key">API key</Link>, also called a client key
156
+
- <Linkhref="../ref-info/glossary-uid#gl-client-secret">Client secret</Link>, a value known only to the participant and the UID2 service
157
+
158
+
:::important
159
+
It's very important that you keep these values secure. For details, see [Security of API Key and Client Secret](../getting-started/gs-credentials.md#security-of-api-key-and-client-secret).
160
+
:::
161
+
162
+
### High-Level Steps
163
+
164
+
At a high level, the steps for advertisers and data providers integrating with UID2 are as follows:
165
+
166
+
1.[Generate Raw UID2s from DII](#1-generate-raw-uid2s-from-dii)
167
+
168
+
2.[Store Raw UID2s and Salt Bucket IDs](#2-store-raw-uid2s-and-salt-bucket-ids)
169
+
170
+
3.[Manipulate or Combine Raw UID2s](#3-manipulate-or-combine-raw-uid2s)
171
+
172
+
4.[Send Stored Raw UID2s to DSPs to Create Audiences or Conversions](#4-send-stored-raw-uid2s-to-dsps-to-create-audiences-or-conversions)
173
+
174
+
5.[Monitor for Salt Bucket Rotations for Your Stored Raw UID2s](#5-monitor-for-salt-bucket-rotations-for-your-stored-raw-uid2s)
175
+
176
+
6.[Monitor for Opt-Out Status](#6-monitor-for-opt-out-status)
177
+
178
+
### Integration Diagram
179
+
180
+
The following diagram outlines the steps that data collectors must complete to map DII to raw UID2s for audience building and targeting.
181
+
182
+
DII refers to a user's normalized email address or phone number, or the normalized and SHA-256-hashed email address or phone number.
| 1-a |[POST /identity/map](../endpoints/post-identity-map.md) request | Send a request containing DII to the identity mapping endpoint. |
193
+
| 1-b |[POST /identity/map](../endpoints/post-identity-map.md) response | The `advertising_id` (raw UID2) returned in the response can be used to target audiences on relevant DSPs.<br/>The response returns a user's raw UID2 and the corresponding `bucket_id` for the salt bucket. The salt assigned to the bucket rotates annually, which impacts the generated raw UID2. For details on how to check for salt bucket rotation, see [5: Monitor for salt bucket rotations related to your stored raw UID2s](#5-monitor-for-salt-bucket-rotations-for-your-stored-raw-uid2s). |
194
+
195
+
196
+
#### 2: Store Raw UID2s and Salt Bucket IDs
197
+
198
+
The response from Step 1, [Generate Raw UID2s from DII](#1-generate-raw-uid2s-from-dii), contains mapping information. We recommend that you store the following information returned in Step 1:
199
+
200
+
- Cache the mapping between DII (`identifier`), raw UID2 (`advertising_id`), and salt bucket (`bucket_id`).
201
+
- Store the timestamp for when you received the response data. Later, you can compare this timestamp with the `last_updated` timestamp returned in Step 5, [Monitor for Salt Bucket Rotations for Your Stored Raw UID2s](#5-monitor-for-salt-bucket-rotations-for-your-stored-raw-uid2s).
202
+
203
+
#### 3: Manipulate or Combine Raw UID2s
204
+
205
+
Use the UID2s you received in Step 1. For example, you might do one or more of the following:
206
+
207
+
- Do some manipulation: for example, combine UID2s you generated from DII and UID2s received from another participant such as an advertiser or data provider.
208
+
- Add new UID2s into an existing audience.
209
+
210
+
#### 4: Send Stored Raw UID2s to DSPs to Create Audiences or Conversions
211
+
212
+
Use the raw UID2s for some purpose such as:
213
+
214
+
- Sending stored raw UID2s to DSPs to create audiences and conversions.
215
+
- Using the raw UID2s for measurement.
216
+
217
+
For example, you could send the `advertising_id` (<Linkhref="../ref-info/glossary-uid#gl-raw-uid2">raw UID2</Link>) returned in Step 1-b to a DSP while building your audiences. Each DSP has a unique integration process for building audiences; follow the integration guidance provided by the DSP for sending raw UID2s to build an audience.
218
+
219
+
You could also send conversion information via API or pixels for measurement (attribution) or for retargeting.
220
+
221
+
#### 5: Monitor for Salt Bucket Rotations for Your Stored Raw UID2s
222
+
223
+
A raw UID2 is an identifier for a user at a specific moment in time. The raw UID2 for a specific user changes at least once per year, as a result of the <Linkhref="../ref-info/glossary-uid#gl-salt-bucket">salt bucket</Link> rotation.
224
+
225
+
Even though each salt bucket is updated approximately once per year, individual bucket updates are spread over the year. Approximately 1/365th of all salt buckets are rotated daily. Based on this, we recommend checking salt bucket rotation regularly, on a cadence that aligns with your audience refreshes. For example, if you refresh weekly, check for salt bucket updates weekly.
226
+
227
+
If the salt bucket has been rotated, regenerate the raw UID2. For details, see [Determine whether the salt bucket has been rotated](#determine-whether-the-salt-bucket-has-been-rotated).
228
+
229
+
The following table shows the steps for checking for salt bucket rotation.
230
+
231
+
| Step | Endpoint | Description |
232
+
| --- | --- | --- |
233
+
| 5-a |[POST /identity/buckets](../endpoints/post-identity-buckets.md)| Send a request to the `POST /identity/buckets` endpoint for all salt buckets that have changed since a specific timestamp. |
234
+
| 5-b |[POST /identity/buckets](../endpoints/post-identity-buckets.md)| UID2 service: The `POST /identity/buckets` endpoint returns a list of `bucket_id` and `last_updated` timestamps. |
235
+
| 5-c |[POST /identity/map](../endpoints/post-identity-map.md)| Compare the returned `bucket_id` to the salt buckets of raw UID2s that you've cached.<br/>If you find that the salt bucket was updated for one or more raw UID2s, re-send the DII to the `POST /identity/map` endpoint for a new raw UID2. |
236
+
| 5-d |[POST /identity/map](../endpoints/post-identity-map.md)| Store the new values returned for `advertising_id` and `bucket_id`. |
237
+
238
+
##### Determine whether the salt bucket has been rotated
239
+
240
+
To determine whether the salt bucket ID for a specific raw UID2 has changed, follow these steps.
241
+
242
+
1. Compare these two values:
243
+
244
+
- The `last_updated` timestamp of each `bucket_id` returned as part of monitoring the salt bucket rotations.
245
+
246
+
- The timestamp of the raw UID2 generation of the same `bucket_id`, which was returned in Step 1 and stored in Step 2.
247
+
248
+
1. If the `last_updated` timestamp is more recent than the timestamp you recorded earlier, the salt bucket has been rotated. As a result, you'll need to regenerate any raw UID2s associated with this `bucket_id`, following Step 1, [Generate Raw UID2s from DII](#1-generate-raw-uid2s-from-dii).
249
+
250
+
#### 6: Monitor for Opt-Out Status
251
+
252
+
It's important to honor user opt-out status. Periodically, monitor for opt-out status, to be sure that you don't continue using UID2s for users that have recently opted out.
253
+
254
+
There are two ways that you can check with the UID2 <Linkhref="../ref-info/glossary-uid#gl-operator-service">Operator Service</Link> to make sure you have the latest opt-out information:
255
+
256
+
- Call the [POST /identity/map](../endpoints/post-identity-map.md) endpoint to check for opt-outs. If the DII has been opted out, no raw UID2 is generated.
257
+
258
+
- Check the opt-out status of raw UID2s using the [POST /optout/status](../endpoints/post-optout-status.md) endpoint.
259
+
260
+
For details about the UID2 opt-out workflow and how users can opt out, see [User Opt-Out](../getting-started/gs-opt-out.md).
0 commit comments