Article
Creating an S3 Snapshot Exposure Source
An S3 snapshot exposure source lets you upload exposure data in batch by delivering gzip-compressed CSV files to an MX8 Labs-managed S3 bucket. This is the right choice when you collect exposure data in your own systems and want to send it server-side — especially if you need to hash IP addresses before they leave your environment.
Before you begin
You'll need the following information ready:
- A source name for this exposure source.
- A retention period (in days) for how long records should be kept.
- Your Hash Salt (if you're salting hashed IPs).
- The column names in your CSV files that correspond to MX8 Labs' required fields.
- Your IAM Role ARN if you want MX8 Labs to grant your AWS role upload permissions (this maps to the External ARN field).
Step 1 — Open the creation dialog
Navigate to your exposure sources and click Create Exposure Source. Select the ** S3 snapshot** card.

Step 2 — Configure basic settings
Fill in the top-level fields:
- Source Name — A descriptive label for this source. This cannot be changed after creation.
- Retention Days — How long MX8 Labs retains exposure records for matching. Defaults to 7 days but can be set longer if your campaign requires it.
- Enabled — On by default. Toggle off to configure without activating.
Step 3 — Add dimensions
Dimensions work the same way as they do for pixel sources — they're additional attributes attached to each exposure record, used as aggregation buckets. Type a dimension name into the Add Dimension ** field and press Enter or click+ Add Dimension**.
Step 4 — Configure field mappings
This is where you tell MX8 Labs how your CSV columns map to the fields it needs. Your column names don't need to match MX8 Labs' — you just need to specify which of your columns corresponds to each field.
Required fields:
- Hash Salt — The salt value used when hashing IP addresses. If you don't use a salt, leave this empty.
- UID Field Mapping — The column name in your CSV that contains the user identifier (e.g.,
user_id).
Optional fields:
- Exposed IP Field Mapping — The column containing plaintext IP addresses. Provide this or Hashed IP Field Mapping.
- Hashed IP Field Mapping — The column containing hashed IP addresses. Provide this or Exposed IP Field Mapping.
- Brand Field Mapping — The column containing the brand name associated with each exposure.
- External ARN — Your IAM Role ARN. MX8 Labs uses this to grant your AWS role permission to upload files into your dedicated S3 prefix.

Step 5 — Configure dimension mappings
If you added dimensions in Step 3, scroll to the Dimension Mapping ** section and click the+** button to map each dimension to the corresponding column in your CSV.
Step 6 — Create the source
Click Create to save. The source is now ready to receive files.
Note: The hash algorithm is currently fixed to MD5. Other algorithms are available on request — contact your MX8 Labs account team if you need a different algorithm.
What's next
- Server-Side File Delivery & Format Requirements — details on file format, naming, and upload process.
- IP Hashing Rules for Exposure Data — input formatting, salt handling, and output format guidance.