diff --git a/dev-docs/modules/agenticAudienceAdapter.md b/dev-docs/modules/agenticAudienceAdapter.md new file mode 100644 index 0000000000..112d36d268 --- /dev/null +++ b/dev-docs/modules/agenticAudienceAdapter.md @@ -0,0 +1,88 @@ +--- +layout: page_v2 +title: Agentic Audiences Real-Time Data Module +display_name: Agentic Audiences RTD +description: Injects Agentic Audiences embedding signals from browser storage into OpenRTB bid requests +page_type: module +module_type: rtd +module_code: agenticAudienceAdapter +enable_download: true +sidebarType: 1 +--- + +# Agentic Audiences Real-Time Data Module + +## Overview + +This Real-Time Data (RTD) submodule reads **Agentic Audiences** embedding data from browser storage (localStorage or cookies) and merges it into the outbound bid request as OpenRTB `user.data` entries. It follows the community extension [**Agentic Audiences in OpenRTB**](https://github.com/InteractiveAdvertisingBureau/openrtb/blob/main/extensions/community_extensions/agentic-audiences.md) (see [IAB Tech Lab — Agentic Audiences](https://iabtechlab.com/standards/agentic-audiences/) and the [reference repository](https://github.com/IABTechLab/agentic-audiences)). + +You can configure **multiple providers** under a single module: each key in `params.providers` becomes the `name` on one `Data` object in `user.data`, with segments built from that provider’s stored payload. No separate Prebid module is required per vendor—only this submodule plus the correct `storageKey` for wherever each partner’s script writes data. + +## Integration + +1. Build the module into your Prebid.js bundle. The parent [**rtdModule**](/dev-docs/publisher-api-reference/setConfig.html#setConfig-realTimeData) is required. You may list both explicitly, or rely on `agenticAudienceAdapter` being registered as an RTD submodule so builds that include only `agenticAudienceAdapter` still pull in `rtdModule`: + + ```bash + gulp build --modules=rtdModule,agenticAudienceAdapter,... + ``` + +2. Register the data provider with `pbjs.setConfig({ realTimeData: ... })` as shown below. + +### Configuration + +```javascript +pbjs.setConfig({ + realTimeData: { + auctionDelay: 300, + dataProviders: [{ + name: 'agenticAudience', + waitForIt: true, + params: { + providers: { + partner_a: { storageKey: '_example_agentic_audiences_a_' }, + partner_b: { storageKey: '_example_agentic_audiences_b_' } + } + } + }] + } +}); +``` + +The `realTimeData.dataProviders[]` entry for this submodule uses **`name: 'agenticAudience'`** (the RTD submodule name). Other fields such as `auctionDelay` and `waitForIt` are generic RTD behavior; see [Publisher Real-Time Data Configuration](/dev-docs/publisher-api-reference/setConfig.html#setConfig-realTimeData). + +### Parameters under `params` + +{: .table .table-bordered .table-striped } +| Parameter | Type | Description | +| :-- | :-- | :-- | +| `providers` | object | **Required** for initialization. Map from a provider label (string) to per-provider settings. The object key becomes `user.data[].name` in the bid request. If `providers` is missing, not a plain object, or has no enumerable keys, the submodule does not inject data. | +| `providers.