• APIリファレンス

Tracking Link

An Airbridge tracking link is an all-in-one link that serves as both a linking tool to redirect users and a tracking tool for attribution.

When they are clicked on, tracking links enable users to reach their desired destination in the app regardless of the platform, channel, or device operating system. It also helps to analyze and attribute the source of user conversions such as link click, post-click install, and post-install purchase.

It is advised to use the "Tracking link API token" when creating tracking links from the client server.


POST

https://api.airbridge.io/v1/tracking-links

Request to create Tracking Link.

rate limit : 50 tracking link per second

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".

channel
必須string
campaignParams
object
isReengagement
enum
ENUM VALUES
OFF

OFF is the default setting. The touchpoint can be attributed to both install events and post-install events (in-app events).

ON-TRUE

ON-TRUE is used for re-engagement campaigns for installed users. The touchpoint generated by the tracking link is attributed only to the deeplink open and the following in-app events, not to the install event.

ON-FALSE

ON-FALSE is used for user acquisition campaigns targeting uninstalled users. The touchpoint generated by the tracking link is attributed only to the install event and the following in-app events, not to the 'deeplink open' event.

deeplinkUrl
stringnullable
deeplinkOption
object
fallbackPaths
object
ogTag
object
customShortId
string
Request
curl -X POST 'https://api.airbridge.io/v1/tracking-links' \ -H 'Accept-Language: ko' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer {AIRBRIDGE-API-TOKEN}' \ -d '{"channel":"my-channel","campaignParams":{"campaign":"2022_FW_Sale_Festival","ad_group":"UA","ad_creative":"Coat_840x600"},"isReengagement":"ON-TRUE","deeplinkOption":{"showAlertForInitialDeeplinkingIssue":true},"fallbackPaths":{"option":{"iosCustomProductPageId":"5ae82ffe-1f08-428d-b352-ac1c3a22aa1e","googlePlayCustomStoreListing":"custom-store-listing"}},"ogTag":{"title":"30% Off Winter Apparel for 3 Days Only","description":"Get great deals on apparel to keep you warm this winter","imageUrl":"https://static.airbridge.io/images/2021_airbridge_og_tag.png"}}'
Payload
{ "channel": "my-channel", "campaignParams": { "campaign": "2022_FW_Sale_Festival", "ad_group": "UA", "ad_creative": "Coat_840x600" }, "isReengagement": "ON-TRUE", "deeplinkOption": { "showAlertForInitialDeeplinkingIssue": true }, "fallbackPaths": { "option": { "iosCustomProductPageId": "5ae82ffe-1f08-428d-b352-ac1c3a22aa1e", "googlePlayCustomStoreListing": "custom-store-listing" } }, "ogTag": { "title": "30% Off Winter Apparel for 3 Days Only", "description": "Get great deals on apparel to keep you warm this winter", "imageUrl": "https://static.airbridge.io/images/2021_airbridge_og_tag.png" }}

200SUCCESS

Tracking Link was successfully created.

404ERROR

There is no such app. Please check the request token again.

422ERROR

There are some invalid values in request.

429ERROR

rate limit exceeded

Response
{ "data": { "trackingLink": { "id": 10000, "link": { "click": "http://abr.ge/@airbridge/my-channel?...", "impression": "http://abr.ge/@airbridge/my-channel?...", "serverToServerClick": null }, "shortId": "6nwx4w", "shortUrl": "http://abr.ge/6nwx4w", "channelType": "custom", "trackingTemplateId": "706f9839a7b50d87ab917dbb1b9fa7f3" } }}
Response
{ "type": "about:blank", "title": "Not Found", "detail": "There is no such app.", "status": 404, "traceId": "1-000000-000000000000000"}
Response
{ "detail": [ { "loc": [ "string" ], "msg": "string", "type": "string" } ]}
Response
{ "type": "Rate limit exceeded", "title": null, "status": 429, "traceId": "1-6768fb4d-0833f0c4639017b1613ac244"}

GET

https://api.airbridge.io/v1/tracking-links/{id}

Get the details of a tracking link.

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".

id
必須string

The ID of the Tracking Link.

idType
string
Request
curl -X GET 'https://api.airbridge.io/v1/tracking-links/10000?idType=id' \ -H 'Accept-Language: ko' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer {AIRBRIDGE-API-TOKEN}'

200SUCCESS

400ERROR

There is an error in the field provided, or there is no such resource.

422ERROR

A field is missing or has an error.

Response
{ "data": { "link": { "click": "https://go.ab180.co/@ablog/my-channel?...", "impression": null, "serverToServerClick": null }, "email": "contact@ab180.co", "ogTag": { "title": "AB180", "imageUrl": "http://static.airbridge.io/images/og_tags/50ca2e8d-07b2-4a0e-8294-f00ddb8e59ae.png", "description": "Discovering Metrics That Matter!" }, "company": null, "shortId": "ri4lnp", "shortUrl": "https://go.ab180.co/ri4lnp", "createdAt": "2023-01-01T00:00:00+09:00", "channelName": "my-channel", "channelType": "custom", "deeplinkUrl": null, "deeplinkOption": { "showAlertForInitialDeeplinkingIssue": false }, "fallbackPaths": { "ios": "itunes-appstore", "option": { "iosCustomProductPageId": null }, "android": "google-play", "desktop": "https://airbridge.io" }, "campaignParams": { "campaign": "123", "adCreative": "asdf", "adGroup": "zxcv", "content": null, "term": "poiu", "subId": null, "subId1": null, "subId2": null, "subId3": null }, "isReengagement": "OFF" }}
Response
{ "type": "about:blank", "title": "Not Found", "detail": "Resource not found.", "status": 404, "traceId": "1-6450a21d-2b02e4d533589b625d875399"}
Response
{ "detail": [ { "loc": [ "string" ], "msg": "string", "type": "string" } ]}

PATCH

https://api.airbridge.io/v1/tracking-links/{id}/og-tag

Supported HTTP Methods: PUT, PATCH

Update the Open Graph of the tracking link.

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".

id
必須string

The ID of the Tracking Link.

idType
string
title
必須string
description
必須string
imageUrl
必須string
ogTag.websiteCrawl
enum
ENUM VALUES
desktop

The Open Graph of the desktop fallbackPath is crawled and used. The values set for title, description, and imageUrl will be ignored.

Request
curl -X PATCH 'https://api.airbridge.io/v1/tracking-links/10000/og-tag' \ -H 'Accept-Language: ko' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer {AIRBRIDGE-API-TOKEN}' \ -d '{"idType":"id","title":"30% Off Winter Apparel for 3 Days Only","description":"Get great deals on apparel to keep you warm this winter","imageUrl":"https://static.airbridge.io/images/2021_airbridge_og_tag.png"}'
Payload
{ "idType": "id", "title": "30% Off Winter Apparel for 3 Days Only", "description": "Get great deals on apparel to keep you warm this winter", "imageUrl": "https://static.airbridge.io/images/2021_airbridge_og_tag.png"}

200SUCCESS

400ERROR

The image URL used an incorrect URL type.

404ERROR

There is an error in the field provided, or there is no such resource.

Response
{}
Response
{ "instance": [ { "loc": [ "imageUrl" ], "msg": "Invalid URL", "type": "validation_error" } ], "detail": "invalid_request", "status": 400, "title": "Bad Request", "traceId": "1-67c6a5e8-1f93748e2c8c732e71767b98", "type": "about:blank"}
Response
{ "type": "about:blank", "title": "Not Found", "detail": "Resource not found.", "status": 404, "traceId": "1-6450a21d-2b02e4d533589b625d875399"}

PATCH

https://api.airbridge.io/v1/tracking-links/{id}/routing

Supported HTTP Methods: PUT, PATCH

Update the destination and fallback path for the Tracking Link.

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".

id
必須string

The ID of the Tracking Link.

idType
string
deeplinkUrl
stringnullable
deeplinkOption
objectnullable
fallbackPaths
object
Request
curl -X PATCH 'https://api.airbridge.io/v1/tracking-links/10000/routing' \ -H 'Accept-Language: ko' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer {AIRBRIDGE-API-TOKEN}' \ -d '{"idType":"id","deeplinkOption":{"showAlertForInitialDeeplinkingIssue":true}}'
Payload
{ "idType": "id", "deeplinkOption": { "showAlertForInitialDeeplinkingIssue": true }}

200SUCCESS

404ERROR

There is an error in the field provided, or there is no such resource.

Response
{}
Response
{ "type": "about:blank", "title": "Not Found", "detail": "Resource not found.", "status": 404, "traceId": "1-6450a21d-2b02e4d533589b625d875399"}

GET

https://api.airbridge.io/v2/tracking-links

Retrieves a list of generated tracking links.

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".

from
必須string

The start date for tracking link list query.

to
必須string

The end date for tracking list query.

next_cursor
numbernullable

A cursor used to retrieve the next page of data

size
number

The number of items to retrieve.

Note that up to 1000 can be set.

keyword
string

The keyword to search for.

channel_name
string

Filter channel.

sort_key
enum

Sort standard. The default is createdAt

ENUM VALUES
createdAt

Sort by created at.

sort_type
enum

Sort by. (Default: ASC)

ENUM VALUES
DESC

Descending.

ASC

Ascending.

Request
curl -X GET 'https://api.airbridge.io/v2/tracking-links?from=2023-04-01&to=2023-04-02&next_cursor=123456789&size=10&sort_key=createdAt&sort_type=ASC' \ -H 'Accept-Language: ko' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer {AIRBRIDGE-API-TOKEN}'

200SUCCESS

nextCursor

  • Type: number (nullable)

  • Description: A cursor used to retrieve the next page of data. Pass the returned nextCursor value as the next_cursor parameter in the next API request to continue fetching data. If there is no more data available, null will be returned.

hasNext

  • Type: boolean

  • Description: Indicates whether additional data is available for the next page. Returns true if more data exists, false if no additional data can be retrieved. Typically used in conjunction with nextCursor.

400ERROR

The field contains an error or is incorrectly formatted.

Response
{ "data": { "hasNext": true, "nextCursor": 55843942, "totalCount": 2, "trackingLinks": [ { "id": 55835049, "link": { "click": "https://abr.ge/@app_name/channel?og_tag_id=123&routing_short_id=id&tracking_template_id=template&ad_type=click", "impression": null, "serverToServerClick": null }, "email": "user@ab180.co", "ogTag": { "title": "AB180", "imageUrl": "http://static.airbridge.io/images/og_tags/50ca2e8d-07b2-4a0e-8294-f00ddb8e59ae.png", "description": "Discovering Metrics That Matter!" }, "company": null, "shortId": "short_id", "shortUrl": "https://abr.ge/short_id", "createdAt": "2024-02-26T19:35:02+09:00", "channelName": "channel", "channelType": "custom", "deeplinkUrl": "scheme://", "fallbackPaths": { "ios": "https://airbridge.io", "option": { "iosCustomProductPageId": null, "googlePlayCustomStoreListing": null }, "android": "https://airbridge.io", "desktop": "https://airbridge.io" }, "campaignParams": { "term": null, "subId": null, "subId1": null, "subId2": null, "subId3": null, "adGroup": null, "content": null, "campaign": null, "adCreative": null }, "deeplinkOption": { "showAlertForInitialDeeplinkingIssue": false }, "isReengagement": "OFF" }, { "id": 55835585, "link": { "click": "https://abr.ge/@app_name/test?campaign=test&routing_short_id=short&tracking_template_id=template&ad_type=click", "impression": null, "serverToServerClick": null }, "email": "user@ab180.co", "ogTag": { "title": "AB180", "imageUrl": "http://static.airbridge.io/images/og_tags/50ca2e8d-07b2-4a0e-8294-f00ddb8e59ae.png", "description": "Discovering Metrics That Matter!" }, "company": null, "shortId": "short_id2", "shortUrl": "https://abr.ge/short_id2", "createdAt": "2024-02-26T19:40:44+09:00", "channelName": "channel", "channelType": "custom", "deeplinkUrl": null, "fallbackPaths": { "ios": "itunes-appstore", "option": { "iosCustomProductPageId": null, "googlePlayCustomStoreListing": null }, "android": "google-play", "desktop": "https://airbridge.io" }, "campaignParams": { "term": null, "subId": null, "subId1": null, "subId2": null, "subId3": null, "adGroup": null, "content": null, "campaign": "test", "adCreative": null }, "deeplinkOption": { "showAlertForInitialDeeplinkingIssue": false }, "isReengagement": "OFF" } ] }, "resultMessage": "Here is your result."}
Response
{ "instance": [ { "loc": [ "size" ], "msg": "must be less than or equal to 1000", "type": "validation_error" } ], "detail": "invalid_request", "status": 400, "title": "Bad Request", "traceId": "1-68513579-369f49243aa5430b228cfa8a", "type": "about:blank"}

GET

https://api.airbridge.io/v1/tracking-links

Get a list of the Tracking Links.

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".

from
必須string

The start date for tracking link list query.

to
必須string

The end date for tracking list query.

skip
number

The number of items to skip.

size
number

The number of items to retrieve.

Note that up to 500 can be set.

keyword
string

The keyword to search for.

channel_name
string

Filter channel.

sort_key
enum

Sort standard. The default is createdAt

ENUM VALUES
createdAt

Sort by created at.

sort_type
enum

Sort by. (Default: DESC)

ENUM VALUES
DESC

Descending.

ASC

Ascending.

Request
curl -X GET 'https://api.airbridge.io/v1/tracking-links?from=2023-04-01&to=2023-04-02&skip=0&size=10&sort_key=createdAt&sort_type=DESC' \ -H 'Accept-Language: ko' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer {AIRBRIDGE-API-TOKEN}'

200SUCCESS

400ERROR

The field contains an error or is incorrectly formatted.

Response
{ "data": { "totalCount": 2, "trackingLinks": [ { "id": 10001 }, { "id": 10002 } ] }}
Response
{ "instance": [ { "loc": [ "size" ], "msg": "must be less than or equal to 1000", "type": "validation_error" } ], "detail": "invalid_request", "status": 400, "title": "Bad Request", "traceId": "1-68513579-369f49243aa5430b228cfa8a", "type": "about:blank"}