Skip to content

Commit ca6e4f1

Browse files
Merge pull request #958 from IABTechLab/vse-UID2-6312-clarify-refresh-timestamp
Clarify refresh timestamp behavior
2 parents 89856f0 + ca36389 commit ca6e4f1

File tree

10 files changed

+36
-10
lines changed

10 files changed

+36
-10
lines changed

docs/endpoints/post-identity-map.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,10 @@ For successfully mapped DII, the mapped object includes the properties shown in
178178
| `p` | string | One of the following:<ul><li>If the current raw UID2 was rotated in the last 90 days: the previous raw UID2.</li><li>Otherwise: `null`.</li></ul> |
179179
| `r` | number | The Unix timestamp (in milliseconds) that indicates when the raw UID2 might be refreshed. The raw UID2 is guaranteed to be valid until this timestamp. |
180180

181+
:::note
182+
The raw UID2 does not change before the refresh timestamp. After the refresh timestamp, remapping the DII returns a new refresh timestamp, but the raw UID2 might or might not change. It is possible for the raw UID2 to remain unchanged for multiple refresh intervals.
183+
:::
184+
181185
For unsuccessfully mapped input values, the mapped object includes the properties shown in the following table.
182186

183187
| Property | Data Type | Description |

docs/getting-started/gs-faqs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ To determine whether to refresh a raw UID2:
198198
2. 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 <Link href="../ref-info/glossary-uid#gl-dii">DII</Link>.
199199

200200
:::note
201-
We recommend checking for refresh opportunities daily. It is guaranteed that the raw UID2 won't refresh before the indicated timestamp. At some point on or after that time, the raw UID2 is refreshed.
201+
The raw UID2 does not change before the refresh timestamp. After the refresh timestamp, remapping the DII returns a new refresh timestamp, but the raw UID2 might or might not change. It is possible for the raw UID2 to remain unchanged for multiple refresh intervals.
202202
:::
203203

204204
#### How often should raw UID2s be refreshed for incremental updates?

docs/guides/integration-advertiser-dataprovider-endpoints.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,9 @@ You could also send conversion information via API or pixels for measurement (at
9595

9696
A raw UID2 is an identifier for a user at a specific moment in time. The raw UID2 for a specific user changes roughly once per year as part of the UID2 refresh process.
9797

98-
The v3 Identity Map API provides a refresh timestamp (`r` field) in the response that indicates when each raw UID2 might refresh. Use this timestamp to determine when to regenerate raw UID2s for your stored data. It is guaranteed that it won't refresh before that time.
98+
The v3 Identity Map API provides a refresh timestamp (`r` field) in the response that indicates when each raw UID2 might rotate. Use this timestamp to determine when to regenerate raw UID2s for your stored data.
99+
100+
The raw UID2 does not change before the refresh timestamp. After the refresh timestamp, remapping the DII returns a new refresh timestamp, but the raw UID2 might or might not change. It is possible for the raw UID2 to remain unchanged for multiple refresh intervals.
99101

100102
We recommend checking for refresh opportunities daily. The following table shows the steps for monitoring raw UID2 refresh.
101103

docs/guides/integration-advertiser-dataprovider-overview.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,9 @@ You could also send conversion information via API or pixels for measurement (at
123123

124124
A raw UID2 is an identifier for a user at a specific moment in time. The raw UID2 for a specific user changes roughly once per year as part of the UID2 refresh process.
125125

126-
The v3 Identity Map API provides a refresh timestamp (`r` field) in the response that indicates when each raw UID2 might refresh. Use this timestamp to determine when to regenerate raw UID2s for your stored data. It is guaranteed that it won't refresh before that time.
126+
The v3 Identity Map API provides a refresh timestamp (`r` field) in the response that indicates when each raw UID2 might rotate. Use this timestamp to determine when to regenerate raw UID2s for your stored data.
127+
128+
The raw UID2 does not change before the refresh timestamp. After the refresh timestamp, remapping the DII returns a new refresh timestamp, but the raw UID2 might or might not change. It is possible for the raw UID2 to remain unchanged for multiple refresh intervals.
127129

128130
We recommend checking for refresh opportunities daily. To determine whether to refresh a raw UID2:
129131

docs/guides/integration-databricks.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,10 @@ The following table provides information about the structure of the output data,
142142
| `REFRESH_FROM` | timestamp | The value is one of the following:<ul><li>**DII was successfully mapped**: The timestamp indicating when this UID2 should be refreshed.</li><li>**Otherwise**: `NULL`.</li></ul> |
143143
| `UNMAPPED` | string | The value is one of the following:<ul><li>**DII was successfully mapped**: `NULL`.</li><li>**Otherwise**: The reason why the identifier was not mapped: `OPTOUT`, `INVALID IDENTIFIER`, or `INVALID INPUT TYPE`.<br/>For details, see [Values for the UNMAPPED Column](#values-for-the-unmapped-column).</li></ul> |
144144

145+
:::note
146+
The raw UID2 does not change before the refresh timestamp. After the refresh timestamp, remapping the DII returns a new refresh timestamp, but the raw UID2 might or might not change. It is possible for the raw UID2 to remain unchanged for multiple refresh intervals.
147+
:::
148+
145149
#### Values for the UNMAPPED Column
146150

147151
The following table shows possible values for the `UNMAPPED` column in the output table schema.

docs/guides/integration-snowflake.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,10 @@ The following table identifies each item in the response, including `NULL` value
387387

388388
The `FN_T_IDENTITY_MAP_V3` function returns refresh timestamps (`REFRESH_FROM`) that indicate when each UID2 should be refreshed.
389389

390+
:::note
391+
The raw UID2 does not change before the refresh timestamp. After the refresh timestamp, remapping the DII returns a new refresh timestamp, but the raw UID2 might or might not change. It is possible for the raw UID2 to remain unchanged for multiple refresh intervals.
392+
:::
393+
390394
To determine which UID2s need regeneration, compare the current time to the `REFRESH_FROM` timestamps returned by the function.
391395

392396
| Column Name | Data Type | Description |

docs/ref-info/glossary-uid.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -421,8 +421,8 @@ import MdxJumpAnchor from '@site/src/components/MdxJumpAnchor';
421421
<dd>The UID2 service uses salt as part of the process, along with hashing and encryption, to secure the original value. Salt is added to the input value before hashing.</dd>
422422

423423
<dt><MdxJumpAnchor id="gl-salt-bucket"><a href="#gl-salt-bucket">Salt bucket</a></MdxJumpAnchor></dt>
424-
<dd>A salt bucket is used to manage secret <a href="#gl-salt">salt</a> values, used to generate raw UID2s or UID2 tokens, over time. Each bucket contains a single current salt value, which remains active for approximately one year before being rotated to a new value. Buckets can be updated independently of one another.</dd>
425-
<dd>There are just over one million salt buckets, and each email address or phone number is assigned to a specific bucket in a deterministic manner. However, this assignment is not permanent; it might change when the bucket's current salt is rotated to a new value.</dd>
424+
<dd>A salt bucket is used to manage secret <a href="#gl-salt">salt</a> values, used to generate raw UID2s or UID2 tokens, over time. Each bucket contains a single current salt value, which remains active for a period of time before being rotated to a new value. Buckets can be updated independently of one another.</dd>
425+
<dd>There are over one million salt buckets, and each email address or phone number is assigned to a specific bucket in a deterministic manner. However, this assignment is not permanent; it might change when the bucket's current salt is rotated to a new value.</dd>
426426
<dd>In versions of the [POST /identity/map](../endpoints/post-identity-map.md) endpoint earlier than version 3, such as [POST /identity/map (v2)](../endpoints/post-identity-map-v2.md), the endpoint returns <a href="#gl-salt-bucket-id">salt bucket IDs</a>. In v3 and later, salt bucket information is not needed.</dd>
427427

428428
<dt><MdxJumpAnchor id="gl-salt-bucket-id"><a href="#gl-salt-bucket-id">Salt bucket ID</a></MdxJumpAnchor></dt>

docs/sdks/sdk-ref-java.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,10 @@ For the earlier version, see [Previous SDK Version (using POST /identity/map v2)
332332
.withHashedPhone("preHashedPhone");
333333
```
334334

335+
:::note
336+
The SDK automatically handles email normalization and hashing, ensuring that raw email addresses and phone numbers do not leave your server.
337+
:::
338+
335339
3. Call a function that takes the `input` and generates an IdentityMapV3Response object:
336340
```java
337341
IdentityMapV3Response identityMapResponse = identityMapV3Client.generateIdentityMap(input);
@@ -356,7 +360,9 @@ For the earlier version, see [Previous SDK Version (using POST /identity/map v2)
356360
}
357361
```
358362

359-
>**Note:** The SDK automatically handles email normalization and hashing, ensuring that raw email addresses and phone numbers do not leave your server.
363+
:::note
364+
The raw UID2 does not change before the refresh timestamp. After the refresh timestamp, remapping the DII returns a new refresh timestamp, but the raw UID2 might or might not change. It is possible for the raw UID2 to remain unchanged for multiple refresh intervals.
365+
:::
360366

361367
### Usage Example
362368

docs/sdks/sdk-ref-python.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,10 @@ To map DII to raw UID2s, follow these steps:
255255
.with_hashed_phone("pre_hashed_phone")
256256
```
257257

258+
:::note
259+
The SDK automatically handles email normalization and hashing, ensuring that raw email addresses and phone numbers do not leave your server.
260+
:::
261+
258262
3. Call a function that takes the `input` and generates an `IdentityMapV3Response` object:
259263
```py
260264
identity_map_response = identity_map_v3_client.generate_identity_map(input)
@@ -278,9 +282,9 @@ To map DII to raw UID2s, follow these steps:
278282
reason = unmapped_identity.reason # OPTOUT, INVALID_IDENTIFIER, or UNKNOWN
279283
```
280284

281-
:::note
282-
The SDK automatically handles email normalization and hashing, ensuring that raw email addresses and phone numbers do not leave your server.
283-
:::
285+
:::note
286+
The raw UID2 does not change before the refresh timestamp. After the refresh timestamp, remapping the DII returns a new refresh timestamp, but the raw UID2 might or might not change. It is possible for the raw UID2 to remain unchanged for multiple refresh intervals.
287+
:::
284288

285289
#### Usage Example
286290

i18n/ja/docusaurus-plugin-content-docs/current/sdks/sdk-ref-java.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,7 @@ Server-Side Integration ([Publisher Integration Guide, Server-Side](../guides/in
319319
IdentityMapV3Input input = IdentityMapV3Input.fromEmails(Arrays.asList("[email protected]", "[email protected]"));
320320
```
321321

322-
複数の ID タイプを組み合わせることもできます:
322+
複数の ID タイプを組み合わせることもできます:
323323
```java
324324
IdentityMapV3Input input = new IdentityMapV3Input()
325325
.withEmail("[email protected]")

0 commit comments

Comments
 (0)