Table of Contents
Overview
Disney, which owns Hulu, is a distinctive media company with specific advertising guidelines. Advertisers should familiarize themselves with the requirements outlined in this documentation before launching campaigns on Disney's platforms, including Hulu.
Setting up a Hulu Deal ID
Hulu inventory is not available for purchase via the open market and must be accessed through a private deal ID. All campaigns require approval from the Hulu team, who will provision the deal ID for use in line item targeting. Hulu sells its inventory exclusively through Magnite. Buyers with a direct relationship with Magnite can initiate the process of obtaining a Hulu deal ID by contacting Magnite directly. Otherwise, please reach out to your account representative for assistance.
Creative Requirements
Hulu has quality requirements that creatives must meet in order to be eligible to serve on their inventory. These requirements are outlined by Disney here. By default, Hulu will only accept VAST Inline creatives that use the DSP's “HD - Constant Bitrate” transcoding profile, but on a case-by-case basis they may accept VAST Wrapper creatives as long as they meet Hulu’s quality standards. Buyers should work directly with their Hulu contacts for approval. If using a VAST Wrapper creative, ensure that the ‘Creative Attributes’ are set up to meet Hulu's specifications. No API Framework should be used, and your VAST must have a video bit rate of 15,000 kbs or higher to match Hulu traffic.
For more information on Disney’s creative requirements, see here.
Reporting and Logs
Customers should reach out to their Disney contact to inquire about a permissions agreement. Customers can also reach out to inventorydesk@beeswax.com to help facilitate an introduction.
Log-level data is available to all customers, enabling measurement and optimization. Full access to all log fields requires an agreement with Disney. Customers currently purchasing Disney inventory already receive log-level data; however, without a new agreement, access to identity data within the logs will be revoked.
Permissioned Customers (Signed Disney Agreement):
Authorized customers are granted full access, including identity data fields, for a maximum period of 30 days. After this period, these customers are contractually obligated to delete these fields. The DSP will internally delete these fields as well. Any backfill requests made after the 30-day period will only include obfuscated fields, with identity data removed.
Non-Permissioned (No Disney Agreement)
Non-permissioned customers will receive obfuscated identity data fields, therefore, customers will not be able to perform attribution. Hashed values will be provided for some fields. See the list below for the log feeds that will be impacted:
- Win logs
- Auction logs
- Bid logs
- Loss logs
- Segment logs
- Ghost Bid and Win logs
- Streaming win logs (both joined and unjoined)
- Antenna equivalents
Reporting
Data from Disney and Hulu will be included in all aggregate reporting, regardless of whether a customer has permissions or not.
Custom Augmentors and Bidding Agents
Access to custom augmentors and bidding agents is available for all customers purchasing Hulu inventory. Full access to all data fields, including identity data, requires an agreement with Disney. Customers who currently purchase Disney inventory already have full data access. Without signing a new agreement, access to identity data in logs, custom augmentors, and bidding agents will be revoked.
Custom Augmentors: Authorized customers receive full access, including identity data. This data must be purged after 30 days.
Custom Bidding Agents: For Hulu and Disney line items, data is provided to customers. However, identity data fields are obfuscated to protect privacy.
Obfuscated Fields
Please note that macros will not be obfuscated.
Customers that are not permissioned by Disney will have the following fields obfuscated. Some fields, like user_id will have an equivalent hashed value that will populate in the logs, custom augmentors, and custom bidding agents. Note that this is the same handling applied for GDPR.
Raw Log Field Name | Proto Field Name | Data Handling |
platform_device_ifa | Device.ifa | blank |
platform_device_idfa | Device.idfa | blank |
platform_device_didmd5 | Device.didmd5 | blank |
platform_device_didsha1 | Device.didsha1 | blank |
platform_device_dpidmd5 | Device.dpidmd5 | blank |
platform_device_dpidsha1 | Device.dpidsha1 | blank |
user_id | N/A | blank |
geo_lat | Device.lat | truncated to 3 decimal places |
geo_long | Device.long | truncated to 3 decimal places |
ua | Device.ua | blank |
ip_address | Device.ip | truncated to 3 octets |
ipv6_address | Device.ipv6 | truncated to 6 octets |
inventory_source_user_id | User.id | blank |
The following fields will be added:
user_id_hashed | N/A |
ip_address_hashed | DeviceExtensions.ip_hashed |
ipv6_address_hashed | DeviceExtensions.ipv6_hashed |
If a customer is permissioned, after 30 days the following handling will be applied to the data in the systems (this would only affect log backfills):
platform_device_ifa | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | N/A |
platform_device_idfa | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | N/A |
platform_device_didmd5 | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | N/A |
platform_device_didsha1 | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | N/A |
platform_device_dpidmd5 | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | N/A |
platform_device_dpidsha1 | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | N/A |
user_id | '' | NULL | NULL | NULL | user_id_hashed |
geo_lat | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | N/A |
geo_long | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | N/A |
ua | '' | '' | '' | '' | N/A |
ip_address | 0.0.0.0 | NULL | NULL | NULL | ip_address_hashed |
ipv6_address | 0:0:0:0:0:0:0:0 | NULL | NULL | NULL | ipv6_address_hashed |
ip_range | 0.0.0.0 | NULL | NULL | NULL | N/A |
clicks_ip_address | '' | '' | '' | '' | N/A |
inventory_source_user_id | '' | '' | '' | '' | N/A |
bidreq_universal_ids | '' | '' | '' | '' | N/A |
platform_device_ifv | '' | '' | '' | '' | platform_device_ifv_hashed |