Skip to main content

Overview

The Report API lets you query performance data by campaign, product, unit, and creative, as well as backfill ad revenue data.

Prerequisites

  • An API key with report:read permission is required
  • See the Open API guide for key generation instructions

Basic Information

ItemValue
Base URLhttps://lake.adrop.io
AuthenticationAPI key in x-api-key header
Content-Typeapplication/json
Max Query Range30 days

Campaign Report

Query performance data with cross-tabulation by campaign, product, unit, and creative.

Request

POST /report

Request Parameters

ParameterTypeRequiredDescription
tabstringYesPrimary grouping dimension (campaign, product, unit, creative)
segmentstringYesCross-tabulation dimension. Must be a valid combination with tab.
startDatestringYesStart date (YYYY-MM-DD)
endDatestringYesEnd date (YYYY-MM-DD). Max 30 days from start date
rollupsstring[]NoTime granularity options. date adds daily breakdown, time adds hourly breakdown
filtersobject[]NoFilter results by specific IDs

Valid tab × segment Combinations

tabAvailable segments
campaigncampaign, unit, creative
productcampaign, product, unit, creative
unitcampaign, product, unit, creative
creativeunit, creative

Filter Format

{
  "filters": [
    {
      "field": "campaign",
      "value": ["CAMPAIGN_ID_1", "CAMPAIGN_ID_2"]
    }
  ]
}
field accepts campaign, product, unit, or creative. value is an array of matching IDs. When multiple filters are set, only data matching ALL conditions is returned.

Example Request

curl -X POST https://lake.adrop.io/report \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tab": "campaign",
    "segment": "unit",
    "startDate": "2026-03-01",
    "endDate": "2026-03-07",
    "rollups": ["date"]
  }'

Response

{
  "summary": {
    "impressions": 125000,
    "impressions_d": 100000,
    "impressions_v": 25000,
    "clicks": 3750,
    "clicks_d": 3000,
    "clicks_v": 750,
    "dismisses": 200,
    "ctr": 0.03,
    "ctr_d": 0.03,
    "ctr_v": 0.03
  },
  "items": [
    {
      "tab": "01J...",
      "segment": "01J...",
      "date_tz": "2026.03.01.",
      "id": "01J...",
      "title": "Campaign A",
      "campaign": "01J...",
      "campaign_name": "Campaign A",
      "campaign_status": "active",
      "unit": "01J...",
      "unit_name": "Banner Top",
      "impressions": 5000,
      "impressions_d": 4000,
      "impressions_v": 1000,
      "clicks": 150,
      "clicks_d": 120,
      "clicks_v": 30,
      "dismisses": 10,
      "ctr": 0.03,
      "ctr_d": 0.03,
      "ctr_v": 0.03
    }
  ]
}

Response Fields

summary contains grand totals, items contains individual detail rows.

Common Fields

FieldTypeDescription
tabstringPrimary dimension ID
segmentstringCross-tabulation dimension ID (when tab ≠ segment)
date_tzstringDate (when rollups includes date)
hour_tzstringHour range, e.g. “09-10” (when rollups includes time)
idstringEntity ID
titlestringEntity name

Performance Metrics

FieldTypeDescription
impressionsnumberTotal impressions (display + video)
impressions_dnumberDisplay impressions
impressions_vnumberVideo impressions
clicksnumberTotal clicks (display + video)
clicks_dnumberDisplay clicks
clicks_vnumberVideo clicks
dismissesnumberDismiss count
ctrnumberClick-through rate (clicks / impressions). 0.027 = 2.7%
ctr_dnumberDisplay CTR
ctr_vnumberVideo CTR

Campaign Info (when tab or segment is campaign)

FieldTypeDescription
campaignstringCampaign ID
campaign_namestringCampaign name
campaign_statusstringCampaign status
start_timestringCampaign start time
end_timestringCampaign end time
target_impressionsnumberTarget impressions
target_clicksnumberTarget clicks
advertiser_namestringAdvertiser name
agency_namestringAgency name
agency_emailstringAgency email

Product/Unit/Creative Info

FieldTypeDescription
product / product_namestringProduct ID / name
unit / unit_namestringUnit ID / name
creative / creative_namestringCreative ID / name
creative_statusstringCreative status

Cost/Settlement Info

FieldTypeDescription
supply_amountnumberSupply amount (budget)
refund_amountnumberRefund amount
commissionnumberCommission
settlementnumberFinal settlement (supply - commission - refund)
payment_typestringPayment type (card, bank, etc.)
pricing_typestringPricing type (CPM, CPC, CPP, etc.)
pricenumberUnit price
costnumberActual cost
currencystringCurrency code (USD, KRW, etc.)

Backfill Report

Query backfill ad revenue data broken down by unit and date. All monetary values are in USD.

Request

POST /report/backfill

Request Parameters

ParameterTypeRequiredDescription
startDatestringYesStart date (YYYY-MM-DD)
endDatestringYesEnd date (YYYY-MM-DD). Max 30 days from start date

Example Request

curl -X POST https://lake.adrop.io/report/backfill \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "startDate": "2026-03-01",
    "endDate": "2026-03-07"
  }'

Response

{
  "summary": {
    "impressions": 50000,
    "clicks": 1500,
    "ctr": 0.03,
    "cpc": 0.12,
    "cpm": 2.5,
    "revenue": 125.0,
    "showRate": 0.85
  },
  "items": [
    {
      "unit": "01J...",
      "unit_name": "Banner Top",
      "date": "2026-03-01",
      "impressions": 8000,
      "showRate": 0.85,
      "clicks": 240,
      "ctr": 0.03,
      "cpc": 0.12,
      "cpm": 2.5,
      "revenue": 20.0
    }
  ]
}

Response Fields

FieldTypeDescription
unitstringUnit ID
unit_namestringUnit name
datestringDate (YYYY-MM-DD)
impressionsnumberImpression count
showRatenumberShow rate (impressions / fills). 0.85 = 85%
clicksnumberClick count
ctrnumberClick-through rate. 0.027 = 2.7%
cpcnumberCost per click (USD)
cpmnumberCost per mille (USD)
revenuenumberRevenue (USD)

Error Codes

HTTP StatusDescription
400Bad request. Date range exceeds 30 days, invalid tab × segment combination, etc.
401API key is missing or invalid
403Missing report:read permission
502Internal service error. Please retry later

Limitations

  • Maximum query range per request is 30 days.
  • Date format must be YYYY-MM-DD (ISO 8601).
  • Per-key rate limits are not currently enforced but may be introduced in the future.