에어브릿지 트래킹 링크를 활용하여 프로모션 공유 캠페인, 친구 초대 캠페인 같은 리퍼럴 캠페인의 성과를 측정할 수 있습니다. 또한 다른 유저에게 서비스를 추천한 유저를 파악하고 보상을 지급할 수 있습니다.
아래는 트래킹 링크를 공유 링크로 활용한 리퍼럴 캠페인의 일반적인 유저 시나리오입니다.
유저 A가 ‘서비스 공유하기’나 ‘친구 초대하기’ 버튼과 같은 CTA 버튼을 클릭합니다. 트래킹 링크 생성 API를 통해 생성된 트래킹 링크가 유저가 전달할 수 있는 공유 링크로 제공됩니다. 이 공유 링크에는 CTA 버튼을 클릭한 유저 A를 식별할 수 있는 유저 ID가 포함됩니다.
유저 A가 이메일, 메신저 등을 통해 유저 B에게 공유 링크를 전달합니다.
유저 B가 공유 링크를 클릭합니다.
앱 미설치 상태: 유저 B는 앱을 다운로드 할 수 있는 앱마켓 페이지로 이동합니다. 디퍼드 딥링크 기능을 활용하면 유저 B가 앱을 설치한 후 실행할 때 앱 내 특정 페이지로 보낼 수 있습니다.
앱 설치 상태: 유저 B는 앱을 실행하게 됩니다. 딥링크 기능을 활용하면 유저 B를 앱 내 특정 페이지로 보낼 수 있습니다.
4. 유저 B가 앱을 실행하거나 특정 이벤트를 수행하면 유저 A에게 보상을 지급할 수 있습니다.
아래 순서에 따라 트래킹 링크를 공유 링크로 활용해 보세요.
1. 유저가 CTA 버튼을 클릭하면 개발된 파라미터에 따라 트래킹 링크 생성 API로 요청됩니다. CTA 버튼을 클릭한 유저의 유저 ID가 새로 생성된 트래킹 링크에 포함되도록 개발해야 합니다. 이처럼 개발해야 리퍼럴 캠페인에 참여한 유저를 식별하여 성과를 기록하고 해당 유저에게 보상을 지급할 수 있습니다.
아래는 트래킹 링크 API로 요청하기 위해 미리 입력해야 하는 파라미터 항목입니다. 개발에 관한 충분한 이해도가 필요할 수 있으니 개발자에게 도움을 요청하세요.
파라미터 |
설명 |
---|---|
| 캠페인 성과를 인정할 채널 이름을 입력합니다. 해당 채널은 커스텀 채널로 기록됩니다. |
campaignP | 캠페인과 관련해 추가로 기록할 정보를 |
| 유저를 보낼 앱 내 특정 페이지의 주소를 입력합니다. |
아래는 트래킹 링크 생성 API 요청과 관련된 예시 코드입니다.
$ curl -d '{
{
"channel": "in_app_referral",
"campaignParams": {
"campaign": "referral-01",
"ad_group": "referral",
"ad_creative": "invitation"
},
"isReengagement": "ON-TRUE",
"deeplinkUrl": "ablog://good-product-growth-team?referrer_id=1668",
"deeplinkOption": {
"showAlertForInitialDeeplinkingIssue": true
},
"fallbackPaths": {
"option": {
"ios": "itunes-appstore",
"android": "google-play"
}
},
"ogTag": {
...
}
}
}' -X POST "'https://api.airbridge.io/v1/tracking-links" -H "Authorization:{AIRBRIDGE-API-TOKEN} -H "Content-Type: application/json
아래는 트래킹 링크 API 요청과 관련된 예시 코드의 정보입니다.
channel
: 광고 채널의 이름이 입력된 파라미터입니다. 예시 코드에 따라 리퍼럴 캠페인 성과가 발생한 광고 채널의 이름은 에어브릿지 리포트 또는 원본 데이터에서 in_app_referral
로 표시됩니다.
campaignParams
: 리퍼럴 캠페인과 관련한 정보가 입력된 파라미터입니다. 예시 코드에 따라 캠페인 이름(campaign)은 referral-01
, 광고 그룹 이름(ad_group)과 광고 소재 이름(ad_creative)은 각각 referral
과 invitation
으로 에어브릿지 리포트 또는 원본 데이터에서 표시됩니다.
deeplinkURL
: 해당 트래킹 링크를 클릭한 유저를 보내는 앱 내 페이지의 주소가 입력된 파라미터입니다. 트래킹 링크를 클릭한 유저는 ablog://good-product-growth-team
로 이동하게 됩니다. 예시 코드에 따라 트래킹 링크에 적용된 CTA 버튼을 클릭한 유저의 유저 ID는 1668입니다. 유저 ID가 1700인 유저가 CTA 버튼을 클릭한다면 해당 파라미터의 값은 ablog://good-product-growth-team?referrer_id=1700
입니다.
2. CTA 버튼을 클릭한 유저가 주변에 전달할 수 있는 공유 링크를 제공합니다. 트래킹 링크 생성 API에서 응답으로 받은 trackingLink.shortURL
파라미터 값을 공유 링크로 제공하는 것을 권장합니다. 아래는 trackingLink.shortURL
파라미터 값의 형식입니다.
{abr.ge
또는 커스텀 도메인}/{shortID}
기본 도메인인 abr.ge
대신 원하는 도메인을 사용하고 싶다면 커스텀 도메인을 설정하세요.
아래는 트래킹 링크 생성 API 응답과 관련된 예시 코드입니다.
{
"data": {
"trackingLink": {
"id": 77281,
"link": {
"click": new-tracking-link
},
"shortID": short-id,
"shortURL": new-short-tracking-link
"trackingTemplateID": template-id,
"channelType": "custom"
}
},
"at": 1585104275
}
CTA 버튼을 클릭한 유저에게 trackingLink.shortURL
파라미터의 값을 공유 링크로 제공하세요.
3. 딥링크 콜백을 설정하면 CTA 버튼을 클릭한 유저의 유저 ID를 수집할 수 있습니다. 이 유저 ID를 활용하여 유저에게 보상을 지급할 수 있습니다.
onSuccess
함수의 URI를 파싱하도록 에어브릿지 가이드에 따라 설정하세요.
referrer_id
: CTA 버튼을 클릭한 유저의 유저 ID입니다.
Airbridge.getDeeplink(getIntent(), new AirbridgeCallback<Uri>() {
@Override
public void onSuccess(Uri uri) {
try {
Map<String, String> queryParameterMap = new HashMap<>();
for (String key : uri.getQueryParameterNames()) {
String value = uri.getQueryParameter(key);
if (value != null) {
queryParameterMap.put(key, value);
}
}
// Parsing referrerID
String referrerId = queryParameterMap.get("referrer_id");
// Show proper content using url (ablog://good-product-growth-team?referrer_id=1700) and referrerID (1700)
if (referrerId != null) {
}
} catch (Throwable e) {
// Handle exceptions here
}
}
...
Airbridge.getDeeplink(intent, object : AirbridgeCallback<Uri> {
override fun onSuccess(result: Uri) {
try {
val queryParameterMap = mutableMapOf<String, String>()
result.queryParameterNames.forEach { key ->
val value = result.getQueryParameter(key)
if (value != null) {
queryParameterMap[key] = value
}
}
// Parsing referrerID
// Show proper content using url (ablog://good-product-growth-team?referrer_id=1700) and referrerID (1700)
queryParameterMap["referrer_id"]?.let { referrerId ->
}
} catch (e: Throwable) {
// Handle exceptions here
}
}
...
deeplinkURL
파라미터를 파싱하도록 에어브릿지 가이드에 따라 설정하세요.
referrer_id
: 공유하기를 클릭한 유저의 정보입니다.
[AirBridge.deeplink setDeeplinkCallback:^(NSString * _Nonnull deeplinkURLString) {
// Parsing url
NSURL *url = [NSURL URLWithString:deeplinkURLString];
// Parsing referrerID
NSMutableDictionary <NSString *, NSString *>* queryItems = [NSMutableDictionary new];
for (NSURLQueryItem *item in [NSURLComponents componentsWithURL:url resolvingAgainstBaseURL:NO].queryItems) {
[queryItems setValue:item.value forKey:item.name];
}
// Show proper content using url (ablog://good-product-growth-team?referrer_id=1700) and referrerID (1700)
NSString *referrerID = [queryItems valueForKey:@"referrer_id"];
if (referrerID != nil) {
}
}];
AirBridge.deeplink().setDeeplinkCallback { deeplinkURLString in
// Parsing url
guard
let deeplinkURL = URL(string: deeplinkURLString),
let queryItems = URLComponents(url: deeplinkURL, resolvingAgainstBaseURL: false)?.queryItems
else { return }
// Parsing referrerID
var uniqueQueryItems: [String: String] = [:]
queryItems.forEach { item in
uniqueQueryItems[item.name] = item.value
}
// Show proper content using url (ablog://good-product-growth-team?referrer_id=1700) and referrerID (1700)
if let referrerID = uniqueQueryItems["referrer_id"] {
}
}
리퍼럴 캠페인의 성과를 측정하기 위해서는 ‘공유하기’ 버튼 클릭같이 리퍼럴 캠페인과 관련한 유저 행동을 에어브릿지 이벤트로 수집해야 합니다. 스탠다드 이벤트인 공유(airbridge.share) 이벤트로 수집하거나, 커스텀 이벤트로 새로 정의하여 수집할 수 있습니다.
이미 에어브릿지 SDK로 리퍼럴 캠페인과 관련한 유저 행동을 이벤트로 수집하고 있다면 추가 조치가 필요하지 않습니다. 하지만, 유저 행동을 이벤트로 수집하고 있지 않는다면, 에어브릿지 SDK에 이벤트 전송을 추가로 설정한 후에 SDK 테스트 및 앱 배포를 진행해야 합니다. 이벤트 전송 설정을 위한 방법은 아래 개발자 가이드를 참고하세요.
리퍼럴 캠페인의 성과는 에어브릿지 리포트와 원본 데이터에서 확인할 수 있습니다. 아래는 에어브릿지 리포트에서 성과 확인에 활용할 수 있는 메트릭 또는 그룹바이입니다.
메트릭 또는 그룹바이 | 설명 |
---|---|
channel | 리퍼럴 캠페인 성과가 발생한 광고 채널의 이름입니다. |
campaign | 리퍼럴 캠페인 성과가 발생한 캠페인 이름입니다. |
ad group | 리퍼럴 캠페인 성과가 발생한 광고 그룹의 이름입니다. |
ad creative | 리퍼럴 캠페인 성과가 발생한 광고 소재의 이름입니다. |
아래 사항을 주의해 주세요.
정확한 리퍼럴 캠페인 분석을 위해 트래킹 링크 생성 API에 요청할 때 캠페인 파라미터(campaignParams)를 입력하는 것을 권장합니다.
유저 ID는 유저가 서비스에 가입할 때 제공한 정보 또는 계정을 기준으로 유저를 식별할 수 있는 고유 ID를 활용해 주세요. 이는 에어브릿지에서 관리하지 않습니다.
도움이 되었나요?