Skip to content

Smartadserver: forward placementuuid as plcmtuuid - #5007

Open
plsgard wants to merge 1 commit into
prebid:masterfrom
smartadserver:PIPS-4336
Open

plsgard wants to merge 1 commit into
prebid:masterfrom
smartadserver:PIPS-4336

Conversation

@plsgard

@plsgard plsgard commented Sep 24, 2026 •

Copy link
Copy Markdown

Summary

Equativ (bidder smartadserver, alias equativ) is moving publishers to a new inventory structure where an ad slot is identified by a single placement UUID instead of the legacy siteId / pageId / formatId triple. Our prebid.js adapter and smart.js already expose it as placementuuid; this PR brings the Prebid Server adapter in line.

  • New optional bidder param placementuuid (string), documented alongside the legacy ids.
  • Forwarded to Equativ as imp.ext.bidder.plcmtuuid (imp.ext.smartadserver.plcmtuuid on the programmatic-guaranteed endpoint), which our server already parses.
  • Legacy siteId/pageId/formatId are still passed through unchanged; when both are present Equativ decides server-side. The schema deliberately keeps the value a plain string (no format: uuid) so a malformed value degrades to the legacy ids on our side instead of rejecting the impression here.
  • The existing integer fields keep their current (non-omitempty) serialization on purpose: Equativ treats 0 as unset.

Test plan

  • params_test.go: valid placementuuid alone and with the triple; invalid integer, null, and a uuid with an incomplete triple (existing dependencies rule).
  • New exemplary fixtures: uuid only, uuid + legacy, empty string (key omitted), malformed value forwarded verbatim, programmatic guaranteed (key under smartadserver, secondary host), multi-imp with the uuid on one imp only.
  • All existing fixtures are byte-identical and still pass; gofmt -s, go vet, go test ./adapters/smartadserver/... ./openrtb_ext/... green on Go 1.25.

Docs PR: prebid/prebid.github.io#6762 · Java adapter PR: prebid/prebid-server-java#4640

🤖 Generated with Claude Code

Accept a new `placementuuid` bidder param (the publisher-facing name shared
with the Equativ prebid.js adapter and smart.js) and forward it to Equativ as
`imp.ext.bidder.plcmtuuid` (`imp.ext.smartadserver.plcmtuuid` on the
programmatic-guaranteed path). The legacy siteId/pageId/formatId ids are still
passed through unchanged so Equativ arbitrates when both are present, and the
schema keeps the value a plain string so a malformed uuid degrades server-side
instead of rejecting the impression. The existing ints keep their non-omitempty
serialization on purpose (Equativ treats 0 as unset).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Code coverage summary

Note:

  • Prebid team doesn't anticipate tests covering code paths that might result in marshal and unmarshal errors
  • Coverage summary encompasses all commits leading up to the latest one, b8c9812

smartadserver

Refer here for heat map coverage report

github.com/prebid/prebid-server/v4/adapters/smartadserver/smartadserver.go:31:	Builder				100.0%
github.com/prebid/prebid-server/v4/adapters/smartadserver/smartadserver.go:40:	MakeRequests			86.2%
github.com/prebid/prebid-server/v4/adapters/smartadserver/smartadserver.go:163:	MakeBids			100.0%
github.com/prebid/prebid-server/v4/adapters/smartadserver/smartadserver.go:201:	BuildEndpointURL		90.9%
github.com/prebid/prebid-server/v4/adapters/smartadserver/smartadserver.go:225:	getBidTypeFromMarkupType	83.3%
total:										(statements)			89.1%

@przemkaczmarek przemkaczmarek self-assigned this Sep 30, 2026
@postindustria-code

Copy link
Copy Markdown
Contributor

LGTM, thanks!

Do not forget upgrade your branch:
This branch is out-of-date with the base branch

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants