Skip to main content

TV Scientific S3

TV Scientific S3 reads CSV and gzip-compressed CSV reports delivered by TV Scientific. It preserves creative and publisher granularity and the original report fields.

Source Setup Guide

  1. Select TV Scientific S3 in Extract.
  2. Enter the Folder Name provided for your TV Scientific integration, as you would in Singular. Enter only the folder, without a bucket name or s3:// URL.
  3. Complete source setup. The folder must contain a readable CSV report.

You do not need to enter an API key or password. Contact Extract support if setup reports that partner access is not configured.

Connection Setup Guide

Select the reports stream, configure your destination, and choose a Connection Pull Schedule. Extract checks for new and updated reports on that schedule.

Data Stream

The reports stream preserves each granular row. Headers use snake case, and identifiers remain strings, including leading zeroes.

FieldsType
dateDate in YYYY-MM-DD format
app_store_id, campaign_id, campaign_name, sub_campaign_id, sub_campaign_nameString
publisher_site_name, publisher_site_id, publisher_id, creative_id, creative_nameString
platform_make, currency, country, osString
impressions, clicks, installs, inapp_purchases, signups, spendNumber

Reports must include date and spend headers. Missing optional values become null. Invalid dates or numbers, duplicate normalized headers, and inconsistent CSV column counts fail the sync.

Report Updates

The first sync reads all available reports in the folder. Later syncs read new or updated reports based on their S3 modification time.

For each date, the newest report containing that date supplies all its rows. Extract replaces the destination's data for that date, including removing rows that are absent from the newer report. It does not add overlapping reports together or aggregate creative and publisher rows. Each report must therefore contain complete data for every date it includes.

If two reports have the same modification time, the lexicographically greatest object key wins. Replaying an unchanged report replaces the same date's rows without appending duplicates.

A malformed report fails the run without advancing sync progress. Once the report is corrected, the next run retries it.

Deleting a source object, omitting a date entirely from a correction, or delivering a header-only file does not clear existing destination dates.