Skip to main content

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.

  1. Select Adikteev S3 in Extract.
  2. Enter your S3 Access Key ID and S3 Secret Access Key.
  3. Enter Folder Name as the report folder within ak-client-reporting, without the bucket name or s3:// prefix. Leave it empty only if your credentials are scoped to reports at the bucket root.
  4. Complete source setup. The selected folder must contain a readable CSV or .csv.gz report 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.

FieldsType
dateDate in YYYY-MM-DD format
app_name, site_public_id, campaign_id, campaign_nameString
sub_campaign_id, creative_id, creative_name, platform, countryString
publisher_id, publisher_site_id, publisher_nameString
impressions, clicks, installs, costNumber

Extract normalizes headers to snake case and supports these aliases:

Report headerOutput field
sub-campaign_id or sub_campaign_idsub_campaign_id
creative Name or creative_namecreative_name
device or platformplatform
costs or costcost

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.