-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
LiveIntent UserId module: Expose shared id #11118
Conversation
@@ -135,7 +135,7 @@ | |||
"fun-hooks": "^0.9.9", | |||
"gulp-wrap": "^0.15.0", | |||
"just-clone": "^1.0.2", | |||
"live-connect-js": "^6.3.4" | |||
"live-connect-js": "^6.6.0" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please provide full release notes in your pr description
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's added. Please take a look. Thank you!
@gwhigs Hi Graham, is anything missing in this PR that prevents it from being merged from your perspective? |
I love the idea behind this PR, I do have a few questions.
|
Thank you Jeff!
|
Is there a reason why this functionality can't be added into shared id instead? Would you mind describing a scenario where publisher define their own id? AFAIK, that's already possible by toggling the |
@pycnvr Hi Paul, the idea of the feature is that the cookie configured as shared ID will be sent to our backend and aid in identity resolution. Accessing the shared ID maintained by the shared ID module from another ID module is not possible, if I see it correctly. Also, in the next step we would like to add an option for "injecting" LiveIntent's first party cookie as shared ID and be the generator for the shared ID cookie. Both seems to be very much tied to our customers' needs and specific to our module. That was the reason for putting it all under the umbrella of LiveIntent's user ID module. |
@3link, Hi Viktor, thanks for the explanation. I feel like this approach kinda goes against the spirit of the rule. Are there alternative solutions that can be explored? What happens when another ID vendor takes the same approach? Would that lock out one group of customers? |
@pycnvr I would say, this approach of providing an alternative way to populate the shared id is inline with how all other ids are handled in Prebid. For example, currently UID2 can be provided by the UID2 module as well as the LiveIntent module. Same is true for many other ids. But also, any other vendor can implement UID2 support in his module and be a provider for this type of ids. A customer then can pick freely between the available providers and even have a combination of providers and define their priority - as has been implemented in this PR a while ago: #9896. I think this approach is very flexible as it allows customers to say "I would like to have this id from this provider" and switch to a different provider very easily if needed by adjusting the user id module configuration. There is no vendor lock-in. |
@3link Hi Viktor, thanks for the reply. I don't have any additional comments but would be interested to hear from other folks. |
Thank you! |
I'm in favor of this PR and the approach seems reasonable. Specifically this comment:
embedding SharediD deeper into identity providers id resolution tech stack makes SharediD and by extension Prebid more valuable to publishers. We should encourage other id providers to use SharediD as a signal into their id graph. |
Yes, that sounds great. Would it be possible to relax the restriction around shared id so that other id modules could access its value? This way more than one id modules could use shared id. |
Late to the party here, so forgive if I misunderstand something and please feel free to correct me...
Sounds like it will become an arms race where each identity solution module will necessarily put themselves higher in the priority stream, no?
In the philosophy of SharedID and the spirit of it remaining industry/vendor agnostic, open and transparent wouldn't this in fact be a better solution to take here? It would provide a standard way for all modules to access the value and a single point of entry/attack in the case of potential bad actors and make documentation and direction unambiguous and consistent? I also question the complexity being layered in for publishers here over time, and pulling it from the core module would be one less step for the publisher to grok and configure.
So the longer term plan is to allow this module to overwrite/create the shared ID? How can we be sure future modules will conform to the format/standard of the original shared id module or not squash prior values? |
The SharedID concept is a single, simple, neutral, stable, unique value per site per device. |
Why does the use case of the "publisher sharing a FP cookie value" need that value to "become SharedID?" |
To clarify, we are ok with Liveintent's tech reading a SharediD from the page, and returning a Liveintent derived id back to the page/bid stream, but we do not want the SharediD UID overwritten by what your server returns. Does that make sense? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks fine to me, with understanding that other community members sign off on allowing it to set sharedId. From the looks of it, this will just populate another sharedId if one is already available in the stream if I am not mistaken which seems a bit weird. But I am not aware too much of the nuances of Identity Link + Shared ID, so would like more community input. (I have missed the last couple PMC Meetings unfortunately so maybe this has been discussed already)
@jdwieland8282 Thank you for the info! We are currently in the process of deciding how to move forward with this PR. |
Seeing the comments above, the intention is that the liveintent shared ID field will enter the bid stream as "atype: 3" which is a "A person-based ID, i.e., that is the same across devices". Given sharedID guidance looks like this: "The SharedID ID system sets a user id cookie in the publisher’s domain. Since the cookie is set in the publisher’s first party domain it does not fall in scope of browser restrictions on third party cookies. Safari has restrictions on first party cookies set via document.cookie. " It looks like this change is expanding the scope of a Shared ID. Am I wrong here? If it does, are we opening ourselves up for unintended consequences? IMO There are other ways to add these kinds of UIDs to the bid request that are more intentional. |
@adammarkey That is not the intention. The recipe for converting a shared ID into an EID has not changed: https://github.com/prebid/Prebid.js/pull/11118/files#diff-fa35d6d24c7b24a515da5e8b6df8d21bdc7f73367f7ad7a668e83969df7194f0 |
Thank you all for the feedback! We decided to close this PR and change the approach. |
Type of change
Description of change
This PR introduces a new feature that will allow to provide the shared id via the LiveIntent user id module. The configuration below shows how to configure the location from which to pull the shared id:
The shared id will be exposed by the LiveIntent user id module as a separate id. There is also support for translation into EIDs. In case more than one module exposes shared ids, module prioritization should be used to define priority. For example:
Other information
Release Notes: