Data Shipping


Data Shipping requires the Business or Enterprise plan.


The data shipping feature delivers click, conversion, and impression data direct to an Amazon AWS S3 bucket. This enables you to ingest large amounts of data without making requests to the Kevel reporting API. You can also perform advanced analytics on the raw data beyond what's available in the Kevel platform.

Integration Steps


You should use the CloudFormation template below to properly set up data shipping. The template will create your S3 bucket for you.

Kevel's CloudFormation template for data shipping will create:

  • An S3 bucket for your Kevel data shipping logs
  • A bucket policy authorizing Kevel to create objects in the bucket and list the objects the bucket contains. ListBucket permission is required to ensure that all data shipping files are uploaded correctly.
  1. Let your account manager know that you're interested in data shipping and which AWS region you want your S3 bucket to be in. Your account should be on the Business or Enterprise plan.
  2. Choose a name for the CloudFormation stack: STACK_NAME, and a name for the new S3 bucket: BUCKET_NAME.
  3. Get our CloudFormation template and use the AWS CLI to create the CloudFormation stack:
$ wget
$ aws cloudformation create-stack \
  --stack-name $STACK_NAME \
  --parameters ParameterKey=BucketName,ParameterValue=$BUCKET_NAME \
  --template-body file://create-datashipping-s3-bucket.yaml
  #Check output for support team
  aws cloudformation describe-stacks --stack-name $STACK_NAME  | grep Output


Use brew install wget to install wget on Mac OS.

  1. Let Kevel support know when the bucket has been successfully created, or if you have run into any issues. To complete the integration, we need to know:



S3 bucket name (not the URL or another identifier)


The AWS region the S3 bucket is in


Your Kevel network ID



**The actual bucket name will receive the prefix 'kevel-dataship-'
above example will produce a S3 bucket named: 'kevel-dataship-mysite-rawdata'.
Contact support if another naming convention is needed.

Data shipping will return a JSON object of an event (impression, click, or conversion). An example impression object is below.

For impressions, each ad serving engine will deliver a file approximately once per minute. They are delivered as gzipped .log files.

For clicks and events data, each gzipped file will be delivered once per day at the end of the day.


If you use the AWS UI to download data shipping files from S3, they will not be gzipped, although their file extension suggests they are. This is because your browser is unzipping the file content as it is downloaded. Downloading from your S3 bucket via other methods will return a gzipped file.

JSON Object


Certain fields, such as Location, may not be included as part of the JSON at all if there is no data to associate with the fields.


      "browser":"Chrome Desktop",
   "Location": {
      "CountryCode": "US",
      "CountryName": "United States",
      "Region": "VA",
      "City": "Ashburn",
      "PostalCode": "20147",
      "MetroCode": 511,
      "DmaCode": 511,
      "AreaCode": 703

   "RtbBids": 4,