SSP Requirements
Required Agreements
- TAG TrustNet Membership Agreement (signed with TAG)
- TAG TrustNet Licensing and Service Level Agreement (signed with Fiducia)
General Requirements
- SSPs are required to receive Verified by TAG status before applying for TAG TrustNet Membership.
- SSPs are required to support a log level data product available to its clients compliant with specifications set out below, specifically the ‘required’ fields.
Log Level Data Accessibility Requirements
-
Log level data access should be provided to clients promptly upon request by the DSP seat owner.
-
SSPs shall not prevent or delay its clients from accessing log level data, and support the goal of its ingestion into TAG TrustNet for analysis and/or sharing with third parties.
-
Log level data files should be provided with comprehensive documentation with detailed descriptions of all data fields provided, required data dictionaries.
-
Impression events should be reported in compliance industry guidelines, e.g. IAB begin to render:
Log Level Data Ingestion Automation (Optional)
- To simplify the activation of a SSPs log level data in TAG TrustNet for SSP clients, the SSP may support the following mechanism:
-
Upon a client’s request for a log level data feed enablement for an owned seat ID:
- Start continuous upload of seat ID log files into TAG TrustNet Node Amazon S3 storage bucket provided by Fiducia, or
- Enable seat ID log data in the data view shared with Fiducia Snowflake account using Snowflake Data Exchange;
-
Fiducia will configure a dedicated instance of TAG TrustNet Node for each SSP, which will automatically share provided SSP seat log level data with TAG TrustNet Nodes of DSP seat owners;
-
Data will be protected from unauthorised access end-to-end using encryption in transit and at rest.
-
Compliance with Data Protection Laws
- Log level data provided for ingestion into TAG TrustNet shall not include any Personal Data (as defined below) and, as such, should fall outside of the scope of any data protection laws, including, without limitation, the GDPR and the CCPA. All Personal Data, and any data fields which represent pseudonymous data, shall be removed from the data before it is ingested into TAG TrustNet. “Personal Data” means any information defined as “personal data,” “personal information,” “personally identifiable information,” “nonpublic personal information,” or other similar term under any applicable data protection laws.
Log Level Data Technical Requirements
The tables below list the type of data files required, the frequency, and format.
Log Files Data Required |
Frequency | |
---|---|---|
SSP | Served Impressions, Data Dictionaries | New log file entries shall become available continuously to Fiducia within 24 hours |
Technical Requirements
-
SSP should not change data record contents in internal systems in a way that they will become out of sync with log level data provided to a client. If data restatement is required, then the seat owners and TAG TrustNet should be informed in a timely fashion so impression events can be reprocessed.
-
Impression log file records and database records provided to a client are deemed immutable in TAG TrustNet for the purpose of ad delivery audit.
-
Impression log file records should be included in the log files no later than 48 hours after the impression event. Any impression log file record delivered beyond this time limit will be ignored for the purpose of ad delivery audit in TAG TrustNet.
-
Timestamps for impression events should be determined server-side using an authoritative time source.
-
Timestamps should always be reported in UTC time zone.
-
If impression records are reported via database (e.g. Snowflake), they should contain both the impression timestamp and timestamp of data record insertion into the log database.
-
As part of SSP log file delivery, data dictionaries allowing the mapping of impression record data fields to their meaning should be provided at least every 24 hours.
-
Reported seller IDs and buyer IDs should match respective records in sellers.json and buyers.json files.
-
SSP should ensure that no impression records are filtered in log files due to technical or legal constraints and every delivered impression is reported. SSP should ensure that seller agreements allow this.
Required and Recommended Data Fields
The following table details the ‘required’ and ‘recommended’ fields for impression events, with references to the OpenRTB specs where appropriate.
Field Name | Status | Description |
---|---|---|
Event Type | Required | Detailed type of the reported event: bid response received, auction win notice, impression begin to render, click, etc. This may be reported as different events for subsequent matching or may be flagged as fields in the single impression event. |
Timestamp | Required | The date and time of the impression event. Has to be reported in sync with authoritative time source in UTC time zone. |
Costs Disclosure | Required | Whether seller agreement / opt-in allows SSP to populate cost data fields. |
Seat Owner / Partner Name | Recommended | The name of the agency / advertiser, which has legal agreement with SSP and owns DSP seat, if available |
DSP ID | Required | DSP name or ID, which identifies DSP which requested the impression |
Seat ID | Required | DSP seat ID For oRTB 2.x: bidresponse.seatbid.seat. oRTB 3.x: response.seatbid.seat. |
Seller ID | Required | The ID of the Seller (publisher, ad network, another Exchange/SSP), shall match with a seller_id in SSP’s sellers.json file. Maps to the specific entity that served the impression, publisher or intermediary entity. |
Seller Name | Required | Seller legal entity name |
Seller Type | Required | PUBLISHER, INTERMEDIARY or BOTH in the meaning defined in sellers.json specification, shall match with seller classification in SSP’s sellers.json file. |
Seller Domain | Required | Domain, where Seller sellers.json file is located, when seller type is INTERMEDIARY or BOTH |
Advertiser ID | Required | The advertiser ID in the reporting system that identifies advertiser who have purchased the impression. Mapping of advertiser IDs and advertiser names should be provided by reporting platform. |
Advertiser Domain | Required | Advertiser domain. oRTB 2.5: bidresponse.seatbid.bid.adomain. oRTB 3.0: response.seatbid.bid.media.ad.adomain. |
Campaign ID | Required | The campaign ID received from DSP. For oRTB 2.x: bidresponse.seatbid.bid.cid. oRTB 3.x: response.seatbid.bid.cid. |
Creative ID | Required | The creative ID number received from DSP. oRTB 2.x: bidresponse.seatbid.bid.crid, oRTB 3.x: response.seatbid.bid.media.ad.id. |
Creative Type | Recommended | The creative type in the reporting system. ORTB 2.x: bidresponse.seatbid.bid.attr, oRTB 3.x: response.seatbid.bid.media.ad.attr. See creative type in table 5.3 in OpenRTB 2.x or the List: Creative Attributes in oRTB 3.x. |
Country | Required | The country where the ad was served. For oRTB 2.x: bidrequest.geo.country, oRTB 3.x: request.context.geo.country. |
Device Type | Required | The oRTB type of the device, if available (oRTB 2.x: bidrequest.device.devicetype, oRTB 3.x: request.context.device.type). See device type in oRTB 2.5 table 5.21 or List: Device Types in oRTB 3.x. |
OS Type | Recommended | OS type. This may differ by data provider and require creation of mapping dictionary. |
Browser Type | Recommended | Browser type. This may differ by data provider and require creation of mapping dictionary. |
City | Recommended | City. |
Deal ID | Required | The deal ID when available (oRTB 2.x: bidresponse.seatbid.bid.dealid, oRTB 3.x: response.seatbid.bid.deal). |
Auction Type | Recommended | The type of the RTB auction, first or second price. (oRTB 2.x: bidrequest.at, oRTB 3.x:request.at). |
Supply Chain Object | Recommended | The entire supply chain object reported to the DSP. This should include all nodes in the nodes array. (oRTB 2.4: bidrequest.ext.schain, oRTB 2.5 bidrequest.source.ext.schain, oRTB 3.x: request.source.ext.schain). |
Demand Chain Object | Recommended | The entire demand chain object reported by the DSP in BidResponse. This should include all nodes in the nodes array. (oRTB 2.4: bidresponse.ext.dchain, oRTB 2.5 bidresponse.seatbid.bid.ext.dchain, oRTB 3.x: bidresponse.seatbid.bid.ext.dchain). |
ads.txt Validation | Recommended | Validation that the Seller is a publisher or is listed in the publisher’s ads.txt file. |
Page URL | Required | Publisher site URL, where the impression was served (oRTB 2.x: bidrequest.site.page. , oRTB 3.x: request.context.site.page). |
Site Domain | Required | The publisher site domain, where the impression was served (oRTB 2.x: bidrequest.site.domain, oRTB 3.0: request.context.site.domain). |
App Domain | Required | The app domain for the application, where the impression was served (oRTB 2.x: bidrequest.app.domain, oRTB 3.0: request.context.app.domain). |
App Bundle | Required | The app bundle for the application, where the impression was served (oRTB 2.x: bidrequest.app.bundle, oRTB 3.0: request.context.app.bundle). |
App Store URL | Required | The app store URL for the application, where the impression was served (oRTB 2.x: bidrequest.app.storeurl, oRTB 3.0: request.context.app.storeurl). |
oRTB Bid Request Impression ID | Required | The oRTB ID of the impression in BidRequest. oRTB 2.x: bidrequest.imp.id; oRTB 3.x: bidrequest.item.id. |
oRTB Bid Request ID | Required | The oRTB ID of the bid request (oRTB 2.x: bidrequest.id, oRTB 3.0: request.id). |
Integration Type | Required | Description of the exchange or integration type for an auction (e.g., exchange bidding, header bidding wrapper, etc.). |
Winning Bid Price in USD | Required, if Cost Disclosure = True | Winning bid in the auction in USD. |
Floor price | Recommended, if Cost Disclosure = True | The minimum price floor for the impression. |
Gross Revenue in USD | Required, if Cost Disclosure = True | Impression cost invoiced to the buyer for a winning bid in USD. This number reflects clearing price for first and second price auctions and will be matched against media cost number reported by buyer and buyer invoice. |
Buyer Currency | Required, if Cost Disclosure = True | The currency of the invoice to the Buyer (DSP). |
Buyer Exchange Rate from USD | Required, if Cost Disclosure = True | The currency conversion rate between USD and invoice currency, if applied for the buyer. |
Media Cost in USD | Required, if Cost Disclosure = True | The amount in USD the seller is paid by reporting platform for impressions, excluding platform’s fee. This number will be matched against revenue number reported by seller. |
Seller Exchange Rate from USD | Required, if Cost Disclosure = True | The currency conversion rate between USD and seller currency, if applied for the seller. |
Platform Fees Breakdown in USD | Recommended, if Cost Disclosure = True | Detailed breakdown of SSP platform fees. Sum of platform fees can be calculated as a difference between gross revenue in USD and media cost in USD. |
Download Requirements
Download a copy of the requirements here: TAG TrustNet - Supply Side Platform Requirements v1.2.