Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: refactor opaque user id #138

Merged
merged 4 commits into from
Jan 14, 2025
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 10 additions & 46 deletions topsort-api-v2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -411,13 +411,13 @@ components:
OpaqueUserID:
type: string
description:
An anonymized unique identifier that maps to the original user ID without revealing the original value and
should match the value used for events. The opaque user ID allows correlating user activity, such as Impressions,
Clicks and Purchases, whether or not they are actually logged in. It must be long lived (at least a year) so
that Topsort can attribute purchases. If your users are always logged in you may use a hash of your customer ID.
If your users may interact with your app or site while logged out we recommend generating a random identifier
(UUIDv4) on first load and store it on local storage (cookie, local storage, etc) and let it live for at least
a year.
The opaque user ID is an anonymized unique identifier that maps to the original user ID without revealing the
original value. This identifier allows Topsort to correlate user activity between auctions and user
interactions, independent of the user's logged-in status. For apps or sites where users might interact while
logged out, we recommend generating a random identifier (UUIDv7) on the first load, storing it on local storage
(cookie, local storage, etc), and letting it live for at least a year. Otherwise, if your users are always
logged in for interactions, you may use a hash of your customer ID. Correct purchase attribution requires
long-lived (at least a year) opaque user IDs consistent between auction and event requests.
jilanglois marked this conversation as resolved.
Show resolved Hide resolved
example: 71303ce0-de89-496d-8270-6434589615e8

PlacementId:
Expand Down Expand Up @@ -1220,19 +1220,7 @@ components:
description: RFC3339 formatted timestamp including UTC offset.
example: '2009-01-01T12:59:59-05:00'
opaqueUserId:
type: string
description: |
<p>The opaque user ID allows correlating user activity, such as Impressions, Clicks and Purchases,
whether or not they are actually logged in. It must be long lived (at least a year) so that Topsort can attribute purchases.
</p>
<p>
If your users are always logged in you may use a hash of your customer ID.
If your users may interact with your app or site while logged out we
recommend generating a random identifier (UUIDv4) on first load and store it on
local storage (cookie, local storage, etc) and let it live for at least a year.
</p>
minLength: 1
example: 71303ce0-de89-496d-8270-6434589615e8
$ref: '#/components/schemas/OpaqueUserID'
id:
type: string
description: >
Expand Down Expand Up @@ -1275,19 +1263,7 @@ components:
description: RFC3339 formatted timestamp including UTC offset.
example: '2009-01-01T12:59:59-05:00'
opaqueUserId:
type: string
description: |
<p>The opaque user ID allows correlating user activity, such as Impressions, Clicks and Purchases,
whether or not they are actually logged in. It must be long lived (at least a year) so that Topsort can attribute purchases.
</p>
<p>
If your users are always logged in you may use a hash of your customer ID.
If your users may interact with your app or site while logged out we
recommend generating a random identifier (UUIDv4) on first load and store it on
local storage (cookie, local storage, etc) and let it live for at least a year.
</p>
minLength: 1
example: 71303ce0-de89-496d-8270-6434589615e8
$ref: '#/components/schemas/OpaqueUserID'
id:
type: string
description: >
Expand Down Expand Up @@ -1320,19 +1296,7 @@ components:
example: '2021-10-12T07:20:50.52Z'
format: date-time
opaqueUserId:
type: string
description: |
<p>The opaque user ID allows correlating user activity, such as Impressions, Clicks and Purchases,
whether or not they are actually logged in. It must be long lived (at least a year) so that Topsort can attribute purchases.
</p>
<p>
If your users are always logged in you may use a hash of your customer ID.
If your users may interact with your app or site while logged out we
recommend generating a random identifier (UUIDv4) on first load and store it on
local storage (cookie, local storage, etc) and let it live for at least a year.
</p>
minLength: 1
example: 71303ce0-de89-496d-8270-6434589615e8
$ref: '#/components/schemas/OpaqueUserID'
items:
type: array
description: Items purchased.
Expand Down
Loading