외부 솔루션 연동
에어브릿지 연동
에어브릿지(airbridge) 를 사용하면 유저가 어떤 광고 채널과 캠페인을 통해 앱 설치를 하였는지 유입 경로 분석이 가능합니다 그리고 이러한 설치 유입 경로를 플레어레인에 연동함으로써, 유입 경로별 최적의 crm 마케팅을 수행할 수 있습니다 연동 가능 데이터 에어브릿지에서 제공하는 어트리뷰션 데이터는 다음과 같습니다 본 가이드에서는 4개의 데이터를 연동하는 것을 서술합니다만, 데이터가 모두 수집된 상태라면 모두 연동하는 것 또한 가능합니다 키 설명 attributedchannel 채널 attributedcampaign 캠페인 attributedadgroup 광고 그룹 attributedadcreative 광고 소재 attributedcontent 콘텐츠 attributedterm 키워드 attributedsubpublisher 하위매체 attributedsubsubpublisher1 하하위매체 1 attributedsubsubpublisher2 하하위매체 2 attributedsubsubpublisher3 하하위매체 3 데이터 연동 방법 에어브릿지 sdk를 통해 유입 경로(어트리뷰션) 데이터를 조회할 수 있으며, 그 데이터를 플레어레인의 태그로 연동해주면 됩니다 코드 연동 순서 주의 플레어레인 sdk 초기화 후 태그 연동 코드가 삽입되어야 하는 순서에 주의해주세요! android sdk class mainapplication application() { override fun oncreate() { super oncreate() flarelane initwithcontext(this, "project id", true) val option = airbridgeoptionbuilder("your app name", "your app sdk token") setonattributionreceived(object onattributionresultreceivelistener { override fun onattributionresultreceived(result map\<string, string>) { val tags = jsonobject() result\["attributedchannel"]? let { tags put("attributedchannel", it) } result\["attributedcampaign"]? let { tags put("attributedcampaign", it) } result\["attributedadgroup"]? let { tags put("attributedadgroup", it) } result\["attributedadcreative"]? let { tags put("attributedadcreative", it) } if (tags length() > 0) { flarelane settags(applicationcontext, tags) } } }) build() airbridge initializesdk(this, option) } } public class mainapplication extends application { @override public void oncreate() { super oncreate(); flarelane initwithcontext(this, "project id", true); airbridgeoption option = new airbridgeoptionbuilder("your app name", "your app sdk token") setonattributionreceived(new onattributionresultreceivelistener() { @override public void onattributionresultreceived(@nonnull map\<string, string> result) { jsonobject tags = new jsonobject(); try { if (result get("attributedchannel") != null) { tags put("attributedchannel", result get("attributedchannel")); } if (result get("attributedcampaign") != null) { tags put("attributedcampaign", result get("attributedcampaign")); } if (result get("attributedadgroup") != null) { tags put("attributedadgroup", result get("attributedadgroup")); } if (result get("attributedadcreative") != null) { tags put("attributedadcreative", result get("attributedadcreative")); } if (tags length() > 0) { flarelane settags(getapplicationcontext(), tags); } } catch (jsonexception e) { // handling exception } } }) build(); airbridge initializesdk(this, option); } } ios sdk import flarelane import airbridge @main class appdelegate uiresponder, uiapplicationdelegate { func application( application uiapplication, didfinishlaunchingwithoptions launchoptions \[uiapplication launchoptionskey any]?) > bool { flarelane initwithlaunchoptions(launchoptions, projectid "project id", requestpermissiononlaunch true) let option = airbridgeoptionbuilder(name "your app name", token "your app sdk token") setonattributionreceived({ attribution in var tags \[string any] = \[ ] if let attributedchannel = attribution\["attributedchannel"] { tags\["attributedchannel"] = attributedchannel } if let attributedcampaign = attribution\["attributedcampaign"] { tags\["attributedcampaign"] = attributedcampaign } if let attributedadgroup = attribution\["attributedadgroup"] { tags\["attributedadgroup"] = attributedadgroup } if let attributedadcreative = attribution\["attributedadcreative"] { tags\["attributedadcreative"] = attributedadcreative } if !tags isempty { flarelane settags(tags tags) } }) build() airbridge initializesdk(option option) return true }#import "appdelegate h" @import flarelane; \#import \<airbridge/airbridge h> @implementation appdelegate \ (bool)application (uiapplication )application didfinishlaunchingwithoptions (nsdictionary )launchoptions { \[flarelane initwithlaunchoptions\ launchoptions projectid @"project id" requestpermissiononlaunch\ yes]; airbridgeoptionbuilder optionbuilder = \[\[airbridgeoptionbuilder alloc] initwithname @"your app name" token @"your app sdk token"]; \[optionbuilder setonattributionreceived ^(nsdictionary\<nsstring ,nsstring > attribution) { nsmutabledictionary tags = \[\[nsmutabledictionary alloc] init]; if (attribution\[@"attributedchannel"]) { \[tags setobject\ attribution\[@"attributedchannel"] forkey @"attributedchannel"]; } if (attribution\[@"attributedcampaign"]) { \[tags setobject\ attribution\[@"attributedcampaign"] forkey @"attributedcampaign"]; } if (attribution\[@"attributedadgroup"]) { \[tags setobject\ attribution\[@"attributedadgroup"] forkey @"attributedadgroup"]; } if (attribution\[@"attributedadcreative"]) { \[tags setobject\ attribution\[@"attributedadcreative"] forkey @"attributedadcreative"]; } if (tags count > 0) { \[flarelane settagswithtags\ tags]; } }]; airbridgeoption option = \[optionbuilder build]; \[airbridge initializesdkwithoption\ option]; return yes; } react native sdk flarelane initialize('project id'); airbridge setonattributionreceived(attribution => { const tags {\[key string] string} = {}; if (attribution attributedchannel) { tags attributedchannel = attribution attributedchannel; } if (attribution attributedcampaign) { tags attributedcampaign = attribution attributedcampaign; } if (attribution attributedadgroup) { tags attributedadgroup = attribution attributedadgroup; } if (attribution attributedadcreative) { tags attributedadcreative = attribution attributedadcreative; } if (object keys(tags) length > 0) { flarelane settags(tags); } }); flutter sdk flarelane shared initialize("project id", requestpermissiononlaunch true); airbridge setonattributionreceived((result) { map\<string, string> tags = {}; if (result\['attributedchannel'] != null) { tags\['attributedchannel'] = result\['attributedchannel']!; } if (result\['attributedcampaign'] != null) { tags\['attributedcampaign'] = result\['attributedcampaign']!; } if (result\['attributedadgroup'] != null) { tags\['attributedadgroup'] = result\['attributedadgroup']!; } if (result\['attributedadcreative'] != null) { tags\['attributedadcreative'] = result\['attributedadcreative']!; } if (tags isnotempty) { flarelane shared settags(tags); } }); 연동된 데이터 조회 연동 이후 기기의 태그를 확인해보면 해당 기기의 앱 설치 유입 채널을 나타내는 태그의 연동 결과를 확인할 수 있습니다 연동한 태그를 바탕으로 세그먼트 타겟팅이나 자동화 진입 조건으로 활용할 수 있으며, 연동된 값에 대한 정확한 의미는 에어브릿지 가이드를 참고 바랍니다