Skip to content

Conversation

@osulzhenko
Copy link
Collaborator

@osulzhenko osulzhenko commented Jun 18, 2025

🔧 Type of changes

  • new bid adapter
  • bid adapter update
  • new feature
  • new analytics adapter
  • new module
  • module update
  • bugfix
  • documentation
  • configuration
  • dependency update
  • tech debt (test coverage, refactorings, etc.)

✨ What's the context?

What's the context for the changes?

🧠 Rationale behind the change

Why did you choose to make these changes? Were there any trade-offs you had to consider?

🔎 New Bid Adapter Checklist

  • verify email contact works
  • NO fully dynamic hostnames
  • geographic host parameters are NOT required
  • direct use of HTTP is prohibited - implement an existing Bidder interface that will do all the job
  • if the ORTB is just forwarded to the endpoint, use the generic adapter - define the new adapter as the alias of the generic adapter
  • cover an adapter configuration with an integration test

🧪 Test plan

How do you know the changes are safe to ship to production?

🏎 Quality check

  • Are your changes following our code style guidelines?
  • Are there any breaking changes in your code?
  • Does your test coverage exceed 90%?
  • Are there any erroneous console logs, debuggers or leftover code in your changes?

@osulzhenko osulzhenko requested a review from marki1an June 18, 2025 17:12
@osulzhenko osulzhenko self-assigned this Jun 18, 2025
@osulzhenko osulzhenko added the tests Functional or other tests label Jun 18, 2025
private static final Map<String, String> GENERIC_WITH_SKIP_CONFIG = [
"adapters.${GENERIC.value}.meta-info.vendor-id" : GENERIC_VENDOR_ID as String,
"adapters.${GENERIC.value}.usersync.${USER_SYNC_TYPE.value}.url" : "$networkServiceContainer.rootUri/generic-usersync&redir={{redirect_url}}".toString(),
"adapters.${GENERIC.value}.usersync.skipwhen.gdpr" : 'true',
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about the case when gdpr: false?

given: "Default CookieSyncRequest with gdpr config"
def cookieSyncRequest = CookieSyncRequest.defaultCookieSyncRequest.tap {
it.gppSid = TCF_EU_V2.intValue
it.gpp = null
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gpp by default null
Same for other

def "PBS should emit proper error message when alias request contain gdpr config and global skip gdpr config for adapter"() {
given: "Default CookieSyncRequest with gdpr config"
def cookieSyncRequest = CookieSyncRequest.defaultCookieSyncRequest.tap {
it.bidders = [BidderName.ALIAS]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Can be just ALIAS
  2. Add config for ALIAS, since for now it's unsupported bidder
  3. Should be response.getBidderUserSync(ALIAS)

assert HttpUtil.findUrlParameterValue(bidderStatus.userSync?.url, "gpp") == ""
assert HttpUtil.findUrlParameterValue(bidderStatus.userSync?.url, "gpp_sid") == gppSid.value

and: "Shouldn't contains any error"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Response shouldn't contains any error""

@osulzhenko osulzhenko requested a review from marki1an June 20, 2025 12:54
@osulzhenko osulzhenko merged commit b51a17e into usersync-skipwhen Jun 20, 2025
1 check passed
@osulzhenko osulzhenko deleted the functional-tests/usersync-skipwhen branch June 20, 2025 14:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

tests Functional or other tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants