Android接入

1.添加repositories

// ...
repositories {// ...mavenCentral()
}
// ...

2.添加dependencies

dependencies {// ...// Get the latest version from https://mvnrepository.com/artifact/com.appsflyer/af-android-sdkimplementation 'com.appsflyer:af-android-sdk:6.9.0'
}

3.AndroidManifest.xml中添加权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

检查AD_ID权限2022 年初,Google 宣布改变 Google Play 服务的行为和获取 Android 广告 ID。针对 Android 13 (API 33) 及更高版本的应用程序必须在其文件中声明 Google Play 服务正常权限才能访问设备的广告 ID。

<uses-permission android:name="com.google.android.gms.permission.AD_ID" />

4.AppsFlyer SDK ProGuard 规则

-keep class com.appsflyer.** { *; }

5.接入代码

package org.cocos2dx.plugin;import android.content.Context;
import android.util.Log;import com.appsflyer.AFInAppEventParameterName;
import com.appsflyer.AFInAppEventType;
import com.appsflyer.AppsFlyerLib;
import com.appsflyer.attribution.AppsFlyerRequestListener;import java.util.HashMap;
import java.util.Map;public class AppsflyerWrapper  {private static AppsflyerWrapper _instance = null;public static AppsflyerWrapper getInstance() {if (_instance == null) {_instance = new AppsflyerWrapper();}return  _instance;}private final String AF_DEV_KEY = "your ap_dev_key";private final String LOG_TAG = "AppsflyerWrapper";private  Context sContext;public void initAppsflyer(Context context) {Log.d(LOG_TAG, "initAppsflyer");sContext = context;AppsFlyerLib.getInstance().init(AF_DEV_KEY, null, context);AppsFlyerLib.getInstance().start(context, AF_DEV_KEY, new AppsFlyerRequestListener() {@Overridepublic void onSuccess() {Log.d(LOG_TAG, "Launch sent successfully, got 200 response code from server");}@Overridepublic void onError(int i, String s) {Log.d(LOG_TAG, "Launch failed to be sent:\n" +"Error code: " + i + "\n"+ "Error description: " + s);}});}// 发送应用内事件// 已定义的事件类型在 AFInAppEventType 中可查看public void logEvent() {Map<String, Object> eventValues = new HashMap<String, Object>();//eventValues.put(AFInAppEventParameterName.PRICE, 1234.56);//eventValues.put(AFInAppEventParameterName.CONTENT_ID,"1234567");AppsFlyerLib.getInstance().logEvent(sContext,AFInAppEventType.LOGIN, eventValues, new AppsFlyerRequestListener() {@Overridepublic void onSuccess() {Log.d(LOG_TAG, "Event sent successfully");}@Overridepublic void onError(int i, String s) {Log.d(LOG_TAG, "Event failed to be sent:\n" +"Error code: " + i + "\n"+ "Error description: " + s);}});}
}

iOS接入

1.添加依赖库

(File ->  Add Packages)输入 https://github.com/AppsFlyerSDK/AppsFlyerFramework

选择AppsFlyerFramework添加到项目工程即可

2.初始化SDK/启动SDK

导入依赖库、 初始化需要Apple App ID 和 AppsFlyer dev key2个配置参数,启动有2种方式,不带回调start和带回调的startWithCompletionHandler。直接上代码

// 导入依赖库
#import <AppsFlyerLib/AppsFlyerLib.h>// 在didFinishLaunchingWithOptions中初始化SDK
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {// ...[[AppsFlyerLib shared] setAppsFlyerDevKey:@"<AF_DEV_KEY>"];[[AppsFlyerLib shared] setAppleAppID:@"<APPLE_APP_ID>"];// ...return YES;
}// 在applicationDidBecomeActive中启动SDK
- (void)applicationDidBecomeActive:(UIApplication *)application {// ...//[[AppsFlyerLib shared] start];[[AppsFlyerLib shared] startWithCompletionHandler:^(NSDictionary<NSString *,id> *dictionary, NSError *error) {if (error) {NSLog(@"%@", error);return;}if (dictionary) {NSLog(@"%@", dictionary);return;}}];
}

3.记录应用内事件

logEvent方法可用于记录应用内事件,并将其发送到AppsFlyer进行处理。

  • 第一个参数(eventName)是事件名称
  • 第二个参数(eventValues)是事件参数NSDictionary
- (void)logEvent:(NSString *)eventName withValues:(NSDictionary * _Nullable)values;

logEventWithEventName同样可记录事件

  • 第一个参数(eventName)是事件名称
  • 第二个参数(eventValues)是事件参数NSDictionary
  • 第三个参数(completionHandler)是一个可选的完成处理程序
- (void)logEventWithEventName:(NSString *)eventName eventValues:(NSDictionary<NSString * , id> * _Nullable)eventValues completionHandler:(void (^ _Nullable)(NSDictionary<NSString *, id> * _Nullable dictionary, NSError * _Nullable error))completionHandler;

记录应用内事件的时候发生错误,错误代码和字符串说明如下,请参考

错误吗码 描述
10 超时,可检查参数minTimeBetweenSessions 
11 由于启用了停止追踪,事件不上传
40 网络错误,可查看错误信息
41 未设置AppsFlyer dev key
50 状态代码故障,查看回调中的错误信息

Android和iOS接入Appsflyer SDK相关推荐

  1. ios sdk 穿山甲_Creator iOS接入穿山甲SDK

    首先介绍一下 .m文件与.mm文件有什么区别 .m文件 支持C ,OC .mm文件 支持C,C++,OC OC 与 TS 互调,例子有很多,比如官方的例子里面就有 TS 调用OC的时候有个点 初学者可 ...

  2. cocos creator ios 接入 facebook sdk login

    主程序是cocos creator 发布ios时要接facebook登录的sdk cocos creator 发布ios版本后 按官方文档配置接入,碰到以下问题 执行 sudo gem install ...

  3. android打包jar包给unity使用接入高德sdk,实现定位。

    https://blog.csdn.net/unity_http/article/details/79929454 https://blog.csdn.net/why1happy/article/de ...

  4. (unity)新手接入Facebook登录,分享以及google登录,Android,IOS,OC接入篇

    最近接Android,IOS的Facebook登录,分享 以及Google登录,分享流程以及遇到的问题整理. 一. Android接入 google登录 第一步,前往 [ firebase] http ...

  5. 教你快速高效接入SDK——Unity统一接入渠道SDK(Android篇)

    U8SDK技术博客:http://www.uustory.com/,欢迎来坐坐. 百度传课已经停运,最新U8SDK视频教程已经转移至B站:U8SDK最新视频教程 U8SDK的设计之初,就是为了能够支持 ...

  6. untiy接入微信SDK实现iOS分享

    untiy接入微信SDK实现iOS分享功能 说明: 使用平台:mac电脑 Unity处理 进入微信开发者官网申请应用 2.下载微信的开发工具包sdk导入untiy的 Assest/Plugins/iO ...

  7. 深入浅出:移动端(Android 和 iOS)数据采集埋点 SDK

    随着大数据时代的到来,越来越多公司注意到数据带来的价值,开始自建或购买一些第三方的数据平台.从数据流的角度看,平台对于数据的处理,一般有以下几个步骤: 其中,数据采集工作是后面几个步骤的基础,数据采集 ...

  8. uniapp轻松集成极光推送自定义消息+通知 Android极光 IOS极光 两行代码集成极光SDK

    ###[前言] 极光推送(JPush)在为开发者提供基础推送服务的同时,还提供了用户精准标签.用户分群.地理围栏.应用内消息.智能发送策略.智能促活等服务能力,可有效提升消息的送达率.展示率和点击率, ...

  9. OCR--苹果ios安卓android身份证拍照扫描识别sdk

    一.ios安卓android身份证拍照扫描识别sdk应用背景 这些年,随着移动互联网的的发展,越来越多的企业都推出了自己的移动APP,这些APP多数都涉及到个人身份证信息的输入认证(即实名认证),如果 ...

最新文章

  1. NYOJ-232 How to eat more Banana
  2. 给在读研究生的一封信(强烈推荐)
  3. 使用ScheduledThreadPoolExecutor代替TimerTimerTask
  4. kaggle 相关知识汇总(转载+自己整理)
  5. Dapr + .NET 实战(九)本地调试
  6. 如何计算一只鸡的表面积?各大专业的奇葩解法
  7. LeetCode 881. 救生艇(贪心,双指针)
  8. 题解P3951【小凯的疑惑】
  9. python是什么意思啊-星号*在Python中是什么意思?
  10. 从大数据角度看你的信用借贷
  11. 微信小程序游戏——飞机大战
  12. python中缀表达式_中缀表达式变后缀表达式、后缀表达式(逆波兰)求值(python版本)...
  13. Alter table alter |change |modify 区别
  14. matlab cic设计,CIC滤波器设计
  15. 视频显示服务器无返回播放器,播放器没有办法播放
  16. 微信ipad协议简述
  17. 计算机二级无纸化考试vb各题分值,2014年计算机二级考试《VB》无纸化机考操作题题库(1)...
  18. linux mt命令,几种操作系统mt命令比较
  19. Nuendo学习之旅——音程和和弦
  20. 将渲染计算搬到云端,开启低成本、强交互、沉浸式体验

热门文章

  1. 城市建筑类毕业论文文献都有哪些?
  2. 利用html表单制作个人简历
  3. 小游戏推广项目,适合新手操作的网路项目
  4. Linux命令行修改配置(待续)
  5. 机房常用动力环境设备远程集中监控及告警方案
  6. 让我摘下星星送给你_想摘下星星给你,就摘下月亮给你。什么歌?
  7. 八年级计算机知识点总结,人教版|八年级上册各单元必考知识点汇总,收藏!...
  8. 2020年找呀找工作。。。
  9. 基于51单片机的自动窗帘控制系统
  10. 英超卡迪夫城新援飞机失联 搜救工作已经展开