에어브릿지 트래킹 링크를 활용하여 프로모션 공유 캠페인, 친구 초대 캠페인 같은 레퍼럴 마케팅의 성과를 측정할 수 있습니다. 또한 다른 유저에게 서비스를 추천하는 유저를 파악하고 보상을 지급할 수 있습니다.
트래킹 링크를 공유 링크로 활용한 레퍼럴 캠페인의 일반적인 유저 시나리오는 아래와 같습니다.
유저 A가 ‘공유하기’나 ‘친구 초대하기’ 버튼과 같은 CTA 버튼을 클릭합니다. 트래킹 링크 생성 API 호출을 통해 생성된 트래킹 링크가 유저가 주변에 전달할 수 있는 공유 링크로 제공됩니다. 이 공유 링크에는 CTA 버튼을 클릭한 유저 A를 식별할 수 있는 유저 ID가 포함됩니다.
유저 A가 이메일, 메신저 등을 통해 유저 B에게 공유 링크를 전달합니다.
유저 B가 공유 링크를 클릭합니다.
앱 미설치 상태: 유저 B는 앱을 다운로드 할 수 있는 앱마켓 페이지로 이동합니다. 디퍼드 딥링크 기능을 활용하면 유저 B가 앱을 설치한 후 실행할 때 앱 내 특정 페이지로 보낼 수 있습니다.
앱 설치 상태: 유저 B는 앱을 실행하게 됩니다. 딥링크 기능을 활용하면 유저 B를 앱 내 특정 페이지로 보낼 수 있습니다.
4. 유저 B가 앱을 실행하거나 특정 이벤트를 수행하면 유저 A에게 보상을 지급할 수 있습니다.
아래 순서에 따라 트래킹 링크를 공유 링크로 활용하세요. 개발에 관한 충분한 이해도가 필요할 수 있으니 개발자에게 도움을 요청하세요.
유저가 CTA 버튼을 클릭하면 아래 설정에 따라 트래킹 링크 API를 호출하도록 합니다. CTA 버튼을 클릭한 유저의 유저 ID가 새로 생성되는 트래킹 링크에 포함되도록 개발해야 레퍼럴 캠페인에 참여한 유저를 식별하여 성과를 기록하고 해당 유저에게 보상을 지급할 수 있습니다.
파라미터 |
설명 |
---|---|
| 레퍼럴 마케팅 성과를 기록하고자 하는 채널 이름을 입력하세요. 해당 채널은 커스텀 채널로 기록됩니다. |
| 캠페인 파라미터로 |
| 앱 내 특정 페이지 주소를 입력하고 CTA 버튼을 클릭한 유저의 유저 ID가 기록되도록 하세요. |
트래킹 링크 API 호출에 대한 자세한 설명은 아래 예시를 참고하세요.
$ curl -d '{
"trackingData": {
"channel": "in_app_referral",
"params": {
"campaign": "referral-01",
"ad_group": "referral",
"ad_creative": "invitation"
}
},
"routingData": {
"fallbackData": {
"ios": "itunes-appstore",
"android": "google-play",
"desktop": "google-play"
},
"deeplinkData": {
"deeplinkUrl": "ablog://good-product-growth-team?referrer_id=1668"
}
},
"contentData": {
"openGraph": {
...
}
}
}' -X POST "'https://api.airbridge.io/v1/tracking-links" -H "Authorization:{AIRBRIDGE-API-TOKEN} -H "Content-Type: application/json
위 API 호출 정보는 다음 정보를 담고 있습니다.
channel
: 채널 이름을 수집하는 파라미터입니다. 에어브릿지 리포트 또는 원본 데이터에서 성과를 확인할 수 있는 채널 이름은 in_app_referral
입니다.
params
: 캠페인 정보를 수집하는 파라미터입니다. 캠페인 이름(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
파라미터의 값은 아래와 같은 형식으로 이루어져있습니다.
{기본 또는 커스텀 도메인}/{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를 호출하는 과정에서 보다 자세한 캠페인 분석을 위해 캠페인 파라미터(params)를 설정하는 것을 권장합니다.
유저 ID는 유저가 가입한 정보 또는 계정을 기준으로 유저를 식별할 수 있는 고유한 ID를 활용하세요. 이는 에어브릿지에서 관리하지 않습니다.
도움이 되었나요?