Skip to content

Releases: prebid/salesagent

v1.7.0

10 Apr 12:29
6ce529d

Choose a tag to compare

1.7.0 (2026-04-09)

Features

  • Account management, adcp 3.10 migration, and BDD test infrastructure (#1170) (ccf91eb)
  • introduce BDD behavioral test suite (delivery metrics, creative formats) (#1146) (7f0d45a)
  • universal request normalization for AdCP backward compatibility (#1175) (1ad11b6)

Bug Fixes

  • add missing AdCP spec fields to UpdateMediaBuyRequest and correct e2e assertions (#1152) (e9a7a67)
  • apply SSRF protection to signals agent URL ingestion (F-04) (c18ac11)
  • ci e2e port allocation and setting | crypto package update (#1188) (e48edda)
  • enforce update budget guardrails and preserve currency in media … (#1140) (1e1aa6d)
  • harden login redirect validation and test-auth gate (F-06, F-02) (#1141) (cd56496)
  • raise on anomalous empty format responses instead of silent return [] (#1167) (149f58b)
  • replace dict subscript with attribute access on FormatId objects (#1166) (80c5776)
  • require authenticated principal for task management tools (#1139) (ff1006d)
  • resolve CI failures on PR #1143 (5c5f34f)
  • use request.script_root for dynamic URL prefixing (#1160) (0b304ed)
  • video/display format template appears unselected after saving product (#1168) (9e395c5)

Performance Improvements

  • ci: parallelize integration tests + local mock creative agent (#1148) (9c65617)

Code Refactoring

  • AdapterConfigRepository + GAM service account auth consolidation (#1171) (5e89166)

Documentation

  • add architecture patterns reference for contributors (#1145) (2d61ea1)

v1.6.0

19 Mar 10:51
c71b80e

Choose a tag to compare

1.6.0 (2026-03-19)

Features

  • consolidate security-sensitive code — SSRF protection and OAuth normalization (#1125) (a683f86)

Bug Fixes

  • coerce AnyUrl to str before passing to yarl.URL() (#1106) (#1118) (641ee9e)
  • creative agent TextContent fallback for adcp SDK 3.6.0 (#1135) (d83ed14)
  • normalize admin UI to canonical /admin routes (0283124)
  • persist platform_line_item_ids in execute_approved_media_buy (#1126) (6a9776d)
  • remove unauthenticated /init-api-key endpoint and harden control-plane auth (#1103) (3a336ef)
  • resolve forked Alembic migration graph and prevent recurrence (#1144) (a4cd866)
  • restore pre-#1066 admin routes via flask fallback mount (4b919f3)
  • Skip format validation when creative agent returns no formats (#1137) (1173473)

Code Refactoring

  • complete delivery schema extraction from _base.py (#1121) (46624e9)
  • Eliminate get_db_session() from business logic — complete repository pattern adoption (#1097) (1965f1d)
  • extract shared delivery helpers and migrate all adapters (#1124) (e8a9b8a)

v1.5.0

09 Mar 22:03
4e02fd0

Choose a tag to compare

1.5.0 (2026-03-09)

Features

  • AdCP v3.6 upgrade — schema migration, auth hardening, repository pattern, multi-tenant isolation (#1071) (3398aab)
  • Creative domain completion — v3.6 schema, auth hardening, error propagation, 3300+ tests (#1080) (0cbe97c)
  • delivery domain completion + media buy test coverage (v3.6) (#1081) (46db70f)
  • Error recovery classification and standard error vocabulary (#1083) (96ed70f)
  • Product v3.6 completion — schema extraction, repository pattern, obligation test coverage (#1082) (90e1dfa)

Bug Fixes

  • resolve FormatId AttributeError crashing Add/Edit Product pages (#1079) (0b22f1e)

Code Refactoring

  • FastAPI migration — unify MCP + A2A + Admin into single process (#1066) (7d2b1d9)

v1.4.0

27 Feb 13:10
c87cce2

Choose a tag to compare

1.4.0 (2026-02-27)

Features

  • Add Broadstreet Ads adapter with template support (#1013) (d7db92e)
  • implement get_media_buys tool with delivery snapshots (#1063) (0ebcf93)
  • Support AdCP v3 structured geo targeting (#1006) (#1024) (ec3939a)

Bug Fixes

  • Add root-level URL fallback for simple creatives (843ab76)
  • bump googleads to 49.0.0 and remove GAM_API_VERSION constant (#1070) (f6ce2a9)
  • handle FormatId objects in format validation during media buy creation (3e9dcaf)
  • improve test harness stability and add real GAM e2e tests (#1062) (52dc231)
  • propagate delivery_type in GAM products_map for correct line item type selection (#1058) (ff36add)
  • resolve property_ids/property_tags authorization in property discovery (#1054) (a188b6a)
  • Unify creative URL extraction and update GAM macro mappings (56cbc6a)
  • Unify creative URL extraction and update GAM macro mappings (70b04e2)
  • Update vulnerable dependencies (cryptography, pillow) (4ba6c61)
  • use attribute access for FormatId in format validation during media buy creation (502f978), closes #1019

Code Refactoring

  • eliminate model_dump antipatterns and migrate to adcp library base classes (#1051) (5e6815f)
  • enforce typed model boundaries across serialization and data flow (#1044) (c412ce9)

v1.3.1

06 Feb 20:25
58eb6b2

Choose a tag to compare

1.3.1 (2026-02-06)

Bug Fixes

  • Convert FormatId dicts to objects for GAM creative placeholders (#1016) (0a6f2a2)

v1.3.0

04 Feb 16:28
b666118

Choose a tag to compare

1.3.0 (2026-02-04)

Features

  • Add schema-driven adapter configuration (#1007) (e6324b6)
  • Display version in tenant landing page footer (27780c5)
  • Display version in tenant landing page footer (37015e6)

Bug Fixes

  • Add audit logging for get_products, update_media_buy, and update_performance_index (9dfd39b)
  • Add audit logging for get_products, update_media_buy, and update_performance_index (d563dc8)
  • Correct comment to match actual implementation (starts with, not contains) (666f889)
  • Improve GAM creative-to-line-item matching for flexible naming templates (126f0dd)
  • Improve GAM creative-to-line-item matching for flexible naming templates (7d85208)
  • more tests (88b0347)
  • mypy (0aeb111)
  • preserve format dimensions during media buy approval (1bdc4a7)
  • preserve format dimensions during media buy approval (dc2429e)
  • Preserve signup flow state through OAuth redirect (7e63052)
  • Preserve signup flow state through OAuth redirect (735211d)
  • reset tests to main (03e32db)
  • tests (491e21e)
  • Update organization and repository names in ipr sig workflow (3217152)
  • Use dynamic dates in GAM pricing restriction tests (bef48d1)
  • Use dynamic dates in pricing integration tests (a89dc8a)

Documentation

  • Add PR naming guideline to CLAUDE.md (34a87be)

v1.2.0

29 Jan 16:08
07a444f

Choose a tag to compare

1.2.0 (2026-01-29)

Features

  • Add get_adcp_capabilities tool for AdCP v3 compliance (#973) (407a495)

Bug Fixes

  • ipr policy should point to prebid.org (1fad905)
  • Remove unnecessary trafficker_id requirement from GAM creatives_manager (#975) (87fad8a)

Documentation

v1.1.0

26 Jan 22:21
2a8f4dd

Choose a tag to compare

1.1.0 (2026-01-26)

Features

  • Add dry_run mode support for create/update media buy operations (#970) (e9aac61)

Bug Fixes

  • Add v2.x backward compatibility for pricing_options and clean up production logs (#971) (0992131)

v1.0.0

26 Jan 19:25
5172009

Choose a tag to compare

1.0.0 (2026-01-26)

⚠ BREAKING CHANGES

  • This updates the AdCP library dependency from 2.14.0 to 3.0.0.

Features

v0.9.3

25 Jan 19:08
5ff4be8

Choose a tag to compare

0.9.3 (2026-01-25)

Bug Fixes

  • Handle product.format_ids as dicts in creative validation (#965) (1c760e6)
  • ignore url not configured when use mock adapters (#943) (7f55e02)