외부 솔루션 연동
에어브릿지 연동
https //www airbridge io/ko 를 사용하면 유저가 어떤 광고 채널과 캠페인을 통해 앱 설치를 하였는지 유입 경로 분석이 가능합니다 그리고 이러한 설치 유입 경로를 플레어레인에 연동함으로써, 유입 경로별 최적의 crm 마케팅을 수행할 수 있습니다 연동 가능 데이터 에어브릿지에서 제공하는 어트리뷰션 데이터는 다음과 같습니다 본 가이드에서는 4개의 데이터를 연동하는 것을 서술합니다만, 데이터가 모두 수집된 상태라면 모두 연동하는 것 또한 가능합니다 true 304,100center unhandled content type center unhandled content type center unhandled content type center unhandled content type center unhandled content type center unhandled content type center unhandled content type center unhandled content type center unhandled content type center unhandled content type center unhandled content type center unhandled content type center unhandled content type center unhandled content type center unhandled content type center unhandled content type center unhandled content type center unhandled content type center unhandled content type center unhandled content type center unhandled content type center unhandled content type 데이터 연동 방법 에어브릿지 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); } }); 연동된 데이터 조회 연동 이후 기기의 태그를 확인해보면 해당 기기의 앱 설치 유입 채널을 나타내는 태그의 연동 결과를 확인할 수 있습니다 연동한 태그를 바탕으로 세그먼트 타겟팅이나 자동화 진입 조건으로 활용할 수 있으며, 연동된 값에 대한 정확한 의미는 에어브릿지 가이드를 참고 바랍니다