Airbridge 集成
借助 Airbridge,您可以分析是哪些广告渠道和广告系列促使用户安装了您的应用。将这些安装获客路径集成到 FlareLane 后,您就能针对每条获客路径开展经过优化的 CRM 营销。
Airbridge 提供以下归因数据。本指南介绍其中四项数据的集成方法,但如果您已经收集了全部数据,也可以同样集成其余数据。
| Key | 说明 |
|---|---|
| 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) { // Handling Exception... } } }) .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 官方文档。
