Magnite Hashed PI Onboarding User Guide - SFTP

Magnite allows clients to upload SHA256-hashed email-based segments, which are then processed through the Magnite Graph for digital ID transformation and activation.

Getting Started

Hashed Email Normalization

To ensure high match rates during the graph transformation, emails must be normalized before SHA256 hashing:

  • Lowercase: Convert all characters to lowercase.

  • Trim Whitespace: Remove all whitespace from the beginning and end of the email.

  • Hash: Apply SHA256 hashing to the cleaned string.

SFTP Access

As the data onboarder, you’ll need to have an SFTP server for us to connect to. To move forward, Magnite will need the following information:

  • Host (e.g. sftp-transfer.example.com)

  • Username

  • Port (Normally 22, may be custom)

  • Data Directory - The name of the root directory you’re sharing with us (e.g. data/). SFTP file paths should be in the following format:

    • Memberships: <data_directory>/source=xxx/memberships/date=YYYYMMDD/hour=HH/delivery_type=[delta|full]/<file_name>

    • Taxonomies: <data_directory>/source=xxx/taxonomies/date=YYYYMMDD/hour=HH/<file_name>

Additional Notes

  • Magnite will provide you with a value for “source” upon data strategy review. 

  • Magnite will use the information above to generate SFTP access keys. Once this is complete, Magnite will share our public key with you for final SFTP server configuration. This last step allows us to authenticate.

File Requirements & Security

Format

All files must be in csv format and include headers.

PGP File Encryption

If file encryption is needed, Magnite will provide a key for file encryption prior to data onboarding. When encrypting files, please set armor to false for faster processing.

Size Limits

  • Encrypted: Maximum 15GB before encryption. 

  • Unencrypted (Compressed): If encryption is not used, a single, compressed file should not exceed 20GB. 

Membership File Structures

Magnite supports two csv formats for membership onboarding. Note that all memberships have a 28-day TTL. File headers are required.

Long Structure

The Long Structure is the standard format in which each row represents a unique combination of a user ID and a segment ID.

Field

Data type

Required/
Optional Values

Definition

SegmentId

VARCHAR(36)

Required

Unique Segment ID

Id

VARCHAR(64)

Required

Hashed Email

IdType

VARCHAR(36)

Required

Set to hem_sha256

IsActive

BOOLEAN

Optional

TRUE, FALSE. A user is opted out when set to False.

AddedAt

DATETIME

Required

ISO8601 format.


Long Structure Example:

Segmentid,Id,IdType,IsActive,AddedAt
Test003,hem_1,hem_sha256,TRUE,2024-11-12T10:15:35.598-06:00

Wide Structure

The Wide Structure is generally used to represent one individual per row, allowing you to map a single user to multiple segments simultaneously using comma-separated arrays.

Field

Data type

Required/
Optional Values

Definition

SegmentId

VARCHAR(36)

Required

An array of comma-separated Segment IDs

Id

VARCHAR(64)

Required

An array of comma-separated hashed emails

IdType

VARCHAR(36)

Required

Set to hem_sha256

IsActive

BOOLEAN

Optional

TRUE, FALSE. A user is opted out when set to False.

AddedAt

DATETIME

Required

ISO8601 format.


Wide Structure Example

Segmentld,Id,IdType,IsActive,AddedAt
“Test003,Test001,Test008, Test100","hem_1,hem_2,hem_3,hem_4",hem_sha256,TRUE, 2024-11-12T10:15:35.598-06:00

Taxonomy File Structure

The taxonomy file maps your segments to the Magnite platform. File headers are required.

Field

Data type

Required?

Definition

ClientName

VARCHAR(255)

Required

Data Provider, Publisher or Advertiser Name 

AccountId

VARCHAR(36)

Required

The Magnite Account ID associated with the client. (Magnite to provide.)

SegmentId

VARCHAR(36)

Required

The Segment ID(s) included in the membership file.

SegmentName

VARCHAR(255)

Required

Name of the segment for UI display.

SegmentDescription

VARCHAR(255)

Optional

Notes/metadata on the segment. 

SegmentCPM

DOUBLE

Optional

Cost of the segment.

Platform

VARCHAR(255)

Required

Set to Magnite

IsActive

BOOLEAN

Required

TRUE, FALSE. Related to segment status.

UpdateTimestamp

TIMESTAMP

Required

ISO860 format. This field is the timestamp of the update to Magnite.

Ingestion & Transformation

  • Daily Ingestion: Magnite processes files daily.

  • Graph Transformation: Post-processing, segments are converted into digital ID-based memberships (IPs, MAIDs, TV Device IDs, and Cookies) for use in Magnite.

Integration Workflow

The onboarding process follows a structured path from initial setup to production activation.

  • Permissioning & Setup: Confirm SFTP access.

  • Normalization: The partner prepares data by cleaning and SHA256 hashing email addresses.

  • Test Upload: Partner makes test files available to the SFTP location for Magnite ingestion.

  • Verification: Magnite confirms SFTP ingestion and, if PGP is used, validates that decryption is functioning correctly.

  • Platform Validation: Magnite transforms the hashed emails through the Magnite Graph and confirms test segments are available to all applicable platforms.

  • Production Release: Once data is verified, clients can onboard production data as they wish.

Hashed PI Pre-Upload Checklist

Before uploading files to the ingress folder, ensure every item on this list is checked to avoid ingestion failures.

  • Email Normalization: All emails must be lowercase with all leading/trailing whitespace removed before hashing.

    • Base64 encoding is not supported. Please use Hex encoding.

    • Example: to_hex(sha256(lower('EMAIL@EMAIL.COM')))

  • Hashing Algorithm: Verify that the IDs are hashed using SHA256.

  • File Format: Ensure files are in .csv format and include the required headers.

  • Folder Path: Verify the file path follows the required structure: 

    • Memberships:

      • <data_directory>/source=xxx/memberships/date=YYYYMMDD/hour=HH/delivery_type=[delta|full]/<file_name>

    • Taxonomies:

      • <data_directory>/source=xxx/taxonomies/date=YYYYMMDD/hour=HH/<file_name>

  • IdType Field: For all membership files, the IdType field must be set exactly to hem_sha256.

  • File Size

    • Unencrypted (Compressed) files must be under 20GB.

    • Encrypted files must be under 15GB before encryption.

  • PGP Encryption: If encrypting, ensure armor is set to false.

  • AddedAt and UpdateTimestamps are current. We use these fields to keep the data in order when processing.

FAQs

What is the difference between Full and Delta membership files? 

Magnite accepts both types. A Full file represents the complete state of the segment, while a Delta file contains only changes. Magnite recommends starting with a Full file and then providing Delta updates.

How long does segment membership last?

Magnite has a 28-day TTL (Time to Live) on all segment memberships. If a user is not refreshed within this window, they will expire from the segment.

How do I handle user opt-outs? 

To opt a user out, set the IsActive field to FALSE in your membership file.

What is the difference between Long and Wide file structures?

  • Long Structure: Each row contains one segment ID and one hashed email.

  • Wide Structure: Generally used for one individual per row, where segment IDs and hashed emails are provided in comma-separated arrays.

What do the membership counts in the UI represent? 

After Magnite transforms your hashed emails via the Magnite Graph, the UI reflects the counts of the resulting digital IDs, specifically IP addresses, MAIDs, and TV Device IDs (and cookies if the segment is used on DV+).

Need more information or help with onboarding?

Please contact your account representative.