Adikteev S3
Adikteev S3 reads daily CSV and gzip-compressed CSV reports from Adikteev's
ak-client-reporting bucket. It preserves campaign, creative, and publisher detail.
Source Setup Guide
Ask Adikteev for the S3 access key ID, secret access key, and report folder for your
account. Credentials are customer-specific; use the pair issued for your account.
They need s3:ListBucket access to your report prefix and s3:GetObject access to
its reports.
- Select Adikteev S3 in Extract.
- Enter your S3 Access Key ID and S3 Secret Access Key.
- Enter Folder Name as the report folder within
ak-client-reporting, without the bucket name ors3://prefix. Leave it empty only if your credentials are scoped to reports at the bucket root. - Complete source setup. The selected folder must contain a readable CSV or
.csv.gzreport with at least one valid data row.
The bucket is fixed; no bucket name or AWS region setting is required.
Connection Setup Guide
Select the reports stream, configure your destination, and choose a
Connection Pull Schedule.
Backfill (Days) defaults to 7. Normal syncs re-pull the previous seven completed UTC report days, including unchanged reports, so recent corrections replace those daily partitions. Today is excluded. You can change this positive whole-number setting for each connection.
A saved starting date takes precedence on the initial sync. To replay a different period, use Customize Run and provide an explicit date range. Custom runs do not advance the regular sync cursor. Full refresh reads all available reports.
Data Stream
The reports stream keeps every granular row; it does not aggregate creative or
publisher records. Identifiers remain strings, including leading zeroes.
| Fields | Type |
|---|---|
date | Date in YYYY-MM-DD format |
app_name, site_public_id, campaign_id, campaign_name | String |
sub_campaign_id, creative_id, creative_name, platform, country | String |
publisher_id, publisher_site_id, publisher_name | String |
impressions, clicks, installs, cost | Number |
Extract normalizes headers to snake case and supports these aliases:
| Report header | Output field |
|---|---|
sub-campaign_id or sub_campaign_id | sub_campaign_id |
creative Name or creative_name | creative_name |
device or platform | platform |
costs or cost | cost |
Reports must include date and cost headers. Missing optional values become
null. Invalid dates or numbers, inconsistent CSV column counts, duplicate
normalized headers, and empty reports fail validation. Currency and creative
asset URLs are not supplied by this S3 integration.
Report Updates
Extract processes one day at a time and logs when each day is pulled, streamed, and completed. Report contents are streamed with bounded buffers, and each day's temporary staging is released before the next day starts.
For each date, the newest report containing that date supplies all its rows. Extract replaces that date's destination partition, removing rows absent from the newer report. Reports must therefore contain complete daily snapshots; separate files containing parts of the same day are not added together.
If modification times tie, the lexicographically greatest object key wins.
Replaying a date replaces its rows rather than appending duplicates when using
partition replacement. Keep the date field selected and diffing disabled.
Daily filenames such as Adikteev_<client>_DailyReport_YYYY-MM-DD.csv allow
Extract to skip unrelated dates before download. Rows in these files must match
the filename date. Older filename layouts are also supported, but a file that
spans multiple dates may be read more than once.
A failed run does not advance sync progress. Missing days in a normal backfill window leave existing destination dates untouched. Explicit bounded replacement runs fail if a requested day has no nonempty report. Deleting a source object or providing a header-only file does not clear a destination date.
This source is separate from Adikteev Audiences and the Adikteev reporting API.