Airbridge連携
Airbridgeを使うと、どの広告チャネルやキャンペーンがユーザーのアプリインストールにつながったかを分析できます。こうしたインストールの獲得経路をFlareLaneに連携することで、獲得経路ごとに最適化したCRMマーケティングを実施できます。
利用できるデータ
Section titled “利用できるデータ”Airbridgeは次のアトリビューションデータを提供します。本ガイドではこのうち4つのデータの連携を説明しますが、すべてのデータが収集されている場合は、それらすべてを連携することも可能です。
| キー | 説明 |
|---|---|
| attributedChannel | チャネル |
| attributedCampaign | キャンペーン |
| attributedAdGroup | 広告グループ |
| attributedAdCreative | 広告クリエイティブ |
| attributedContent | コンテンツ |
| attributedTerm | キーワード |
| attributedSubPublisher | サブパブリッシャー |
| attributedSubSubPublisher1 | サブサブパブリッシャー1 |
| attributedSubSubPublisher2 | サブサブパブリッシャー2 |
| attributedSubSubPublisher3 | サブサブパブリッシャー3 |
データを連携する方法
Section titled “データを連携する方法”Airbridge SDKを通じて獲得経路(アトリビューション)データを取得し、そのデータをタグとしてFlareLaneに連携します。
Android SDK
Section titled “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) { // 例外処理... } } }) .build(); Airbridge.initializeSDK(this, option); }}iOS SDK
Section titled “iOS SDK”import FlareLaneimport Airbridge
@mainclass 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
Section titled “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
Section titled “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); }});連携したデータを確認する
Section titled “連携したデータを確認する”連携後は、デバイスのタグを確認することで結果を確認できます。これらは、そのデバイスのアプリインストールの獲得チャネルを示すタグです。
連携したこれらのタグは、セグメントのターゲティングや自動化の登録条件として活用できます。連携された各値の正確な意味については、Airbridgeのドキュメントをご参照ください。
