• API Reference

Self-Serve Data Upload

Upload data directly through the API and view the data together in reports.

Ad Spend Data

Directly upload impressions, clicks, and cost data for media sources that don't report spend by API.

Metric Data

Upload new metric data directly and view the status of your uploads.


Upload Ad Spend Data

POST

https://api.airbridge.io/self-serve-data/v1/ad-spend/requests

Request to upload ad spend data in CSV format.

The Content-Type in the Request Header uses multipart/form-data.

header-multipart
Content-Type: multipart/form-data; charset=utf-8

CSV file format and schema

Content rules and schema of ad spend CSV files

Sample CSV File

🚧 Case Sensitivity

Please be aware that data in columns with a type defined as 'string' is case-sensitive.

Note that Airbridge records mobile OS names as 'Android' and 'iOS'. When uploading your data, it's essential to use 'Android' and 'iOS' for OS names. Failure to do so may result in separate rows in the dashboard when data is grouped by results. Please adhere to this naming convention for consistency and accurate data representation.

Overwrite (correct) Previously Ingested Ad Spend

Previously ingested ad spend can be overwritten by using CSV files that contain data with the identical key of data previously ingested.

The key is formed from the 'date', 'channel', and 'campaign' fields. If the keys match, data ingested last overwrites data previously ingested.

[Example A]

1. 2022-08-03: Upload data for date, channel, campaign, and ad_group.

2. 2022-08-04: Upload data for date, channel and campaign.

3. Result: Spend data from '2022-08-03' was overwritten by spend data from '2022-08-04' because '2022-08-04' was last ingested and the identical key is the same. (ad group is overwritten null)

[Example B]

1. 2022-08-03: Upload data for date, channel and campaign.

2. 2022-08-04: Upload data for date, channel, campaign and ad_group.

3. Result: Spend data from '2022-08-03' was overwritten by spend data from '2022-08-04' because '2022-08-04' was last ingested and the identical key is the same.

[Example C]

1. 2022-08-03: Upload data for date, channel, campaign and ad_group

2. 2022-08-04: Upload data for date, channel, campaign and ad_group

3. Result: Based on the values 'date', 'channel', and 'campaign', the data was overwritten by '2022-08-04'

Delete Previously Ingested Ad Spend

To delete previously uploaded cost data, re-upload the clicks, impressions, and cost metrics for the same identity key with all values set to 0.

Note

  • Only be used as an API token for Owner, In-house Marketer permission accounts.

  • A maximum of 10000 rows are allowed in a CSV file for a single request.

  • The maximum size of a CSV file in a single request is 1 MB.

  • Column values of type string are limited to at least one character and up to 256 characters.

  • Ensure there are no spaces before or after the column name and value.

Request

Headers

Accept-Language
string

You can specify the language to use for API requests and responses. It follows the ISO-639-1 format.

Content-Type
string

Represents the media type of the resource. Defaults to application/json.

Authorization
string

The key value to use for API requests. Instructions for getting API keys are in "how to generate API Keys".

Request
curl -X POST 'https://api.airbridge.io/self-serve-data/v1/ad-spend/requests' \ -H 'Accept-Language: ko' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer {AIRBRIDGE-API-TOKEN}'

Response

200SUCCESS

Response
{ "reason": null, "status": "uploaded", "createdAt": "2023-01-01T09:00:00", "requestId": "08844672-62d8-4da8-9d48-e14961651e0c", "updatedAt": "2023-01-01T09:00:00", "prevStatus": null}

Get Ad Spend Data Upload Progress

GET

https://api.airbridge.io/self-serve-data/v1/ad-spend/requests/{request_id}

Request status

The status of an asynchronous request can be checked with task.status in the API request result.

Request

Headers

Accept-Language
string

You can specify the language to use for API requests and responses. It follows the ISO-639-1 format.

Content-Type
string

Represents the media type of the resource. Defaults to application/json.

Authorization
string

The key value to use for API requests. Instructions for getting API keys are in "how to generate API Keys".

Path Params

request_id
Requiredstring

The request_id returned by the result of the 'Upload Data' API.

Request
curl -X GET 'https://api.airbridge.io/self-serve-data/v1/ad-spend/requests/08844672-62d8-4da8-9d48-e14961651e0c' \ -H 'Accept-Language: ko' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer {AIRBRIDGE-API-TOKEN}'

Response

200SUCCESS

200SUCCESS

Response
{ "reason": "{\"date\": [\"invalid date\"]}", "status": "failed", "createdAt": "2022-08-24T11:54:18", "requestId": "846b78f9-1b6f-4ede-a253-619ca68fcebf", "updatedAt": "2022-08-24T11:54:17", "prevStatus": "uploaded"}
Response
{ "reason": null, "status": "succeeded", "createdAt": "2023-01-01T09:00:00", "requestId": "08844672-62d8-4da8-9d48-e14961651e0c", "updatedAt": "2022-01-01T09:00:00", "prevStatus": "ingested"}

Upload Metric Data

POST

https://api.airbridge.io/self-serve-data/v1/metric/requests

Request to upload metric data in CSV format.

The Content-Type in the Request Header uses multipart/form-data.

header-multipart
Content-Type: multipart/form-data; charset=utf-8

CSV file format and schema

Content rules and schema of ad spend CSV files

Sample CSV File

🚧 Case Sensitivity

Please be aware that data in columns with a type defined as 'string' is case-sensitive.

Note that Airbridge records mobile OS names as 'Android' and 'iOS'. When uploading your data, it's essential to use 'Android' and 'iOS' for OS names. Failure to do so may result in separate rows in the dashboard when data is grouped by results. Please adhere to this naming convention for consistency and accurate data representation.

Overwrite Previously Ingested Metric Data

Previously ingested metric data can be overwritten by using CSV files that contain data with the identical key of data previously ingested.

The key is formed from the 'date', 'channel', and 'event_category' fields. If the keys match, data ingested last overwrites data previously ingested.

[Example A]

1. 2022-08-03: Upload for date, channel, campaign and ad_group.

2. 2022-08-04: Upload for date, channel and campaign.

3. Result: Spend data from '2022-08-03' was overwritten by data from '2022-08-04' because '2022-08-04' was last ingested and the identical key is the same. (ad group is overwritten null)

[Example B]

1. 2022-08-03: Upload for date, channel and campaign.

2. 2022-08-04: Upload for date, channel, campaign and ad_group.

3. Result: Based on the values 'date', 'channel', and 'campaign', the data was overwritten by '2022-08-04' (ad_group value are also updated.)

[Example C]

1. 2022-08-03: Upload for date, channel, campaign and ad_group.

2. 2022-08-04: Upload for date, channel, campaign and ad_group.

3. Result: Based on the values 'date', 'channel', and 'campaign', the data was overwritten by '2022-08-04'

Archive Data

If you want a previously uploaded metric to be invisible in a report, please request it through your CSM.

Note

  • Only be used as an API token for Owner, In-house Marketer permission accounts.

  • The order of the columns in the CSV file does not affect the upload functionality.

  • The maximum size of a CSV file in a single request is 1 MB.

  • Column values of type string are limited to at least one character and up to 256 characters.

  • Ensure there are no spaces before or after the column name and value.

  • event_category can accept alphabets and numbers.

  • event_category cannot contain , " \.

  • New data registered during upload (e.g. self_serve_test_campaign for campaign) will not be visible in the selection options when using a filter. You can use it by entering it in freeform.

  • If the CSV file has rows where both the groupBy and the event category are the same, the data is displayed in the report as summed values for the same row.

  • Upload data

  • Display report

Request

Headers

Accept-Language
string

You can specify the language to use for API requests and responses. It follows the ISO-639-1 format.

Content-Type
string

Represents the media type of the resource. Defaults to application/json.

Authorization
string

The key value to use for API requests. Instructions for getting API keys are in "how to generate API Keys".

Request
curl -X POST 'https://api.airbridge.io/self-serve-data/v1/metric/requests' \ -H 'Accept-Language: ko' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer {AIRBRIDGE-API-TOKEN}'

Response

200SUCCESS

Response
{ "reason": null, "status": "uploaded", "createdAt": "2023-01-01T09:00:00", "requestId": "08844672-62d8-4da8-9d48-e14961651e0c", "updatedAt": "2023-01-01T09:00:00", "prevStatus": null}

Get Metric Data Upload Progress

GET

https://api.airbridge.io/self-serve-data/v1/metric/requests/{request_id}

Request status

The status of an asynchronous request can be checked with task.status in the API request result.

Request

Headers

Accept-Language
string

You can specify the language to use for API requests and responses. It follows the ISO-639-1 format.

Content-Type
string

Represents the media type of the resource. Defaults to application/json.

Authorization
string

The key value to use for API requests. Instructions for getting API keys are in "how to generate API Keys".

Path Params

request_id
Requiredstring

The request_id returned by the result of the 'Upload Data' API.

Request
curl -X GET 'https://api.airbridge.io/self-serve-data/v1/metric/requests/08844672-62d8-4da8-9d48-e14961651e0c' \ -H 'Accept-Language: ko' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer {AIRBRIDGE-API-TOKEN}'

Response

200SUCCESS

200SUCCESS

Response
{ "reason": null, "status": "succeeded", "createdAt": "2023-01-01T09:00:00", "requestId": "08844672-62d8-4da8-9d48-e14961651e0c", "updatedAt": "2023-01-01T09:00:00", "prevStatus": "ingested"}
Response
{ "reason": "{\"date\": [\"invalid date\"]}", "status": "failed", "createdAt": "2022-08-24T11:54:18", "requestId": "846b78f9-1b6f-4ede-a253-619ca68fcebf", "updatedAt": "2022-08-24T11:54:17", "prevStatus": "uploaded"}