1.序言

最近广告小游戏对隐私协议卡的比较严,taptap官方提出整改建议是,在用户同意隐私协议后在加载穿山甲的广告。研究了一下:

2.大概思路是

修改原本的 UnionApplication.java脚本

//手动加载初始化说明:
//将本脚本文件的内容替换到 UnionApplication.java 里面
//然后将下面的代码 放到你启动广告sdk的方法里面
//
// AndroidJavaObject jo = new AndroidJavaObject("com.bytedance.ad.sdk.mediation.UnionApplication");
// jo.Call<string>("init_ad");
//package com.bytedance.ad.sdk.mediation;import android.app.Application;
import android.content.Context;
import android.support.multidex.MultiDex;
import android.widget.Toast;import com.bytedance.msdk.api.TTAdConfig;
import com.bytedance.msdk.api.TTAdConstant;
import com.bytedance.msdk.api.TTMediationAdSdk;
import com.bytedance.msdk.api.UserInfoForSegment;
import com.unity3d.player.UnityPlayer;public class UnionApplication  extends Application {@Overridepublic void onCreate() {super.onCreate();//TTMediationAdSdk.initialize(this, buildConfig());}public  String init_ad() {TTMediationAdSdk.initialize(UnityPlayer.currentActivity.getApplicationContext(), buildConfig());//Toast.makeText(UnityPlayer.currentActivity.getApplicationContext(), "用户同意隐私协议,启动SDK加载", Toast.LENGTH_LONG).show();return  "初始化广告";}private static TTAdConfig buildConfig() {UserInfoForSegment userInfo = new UserInfoForSegment();userInfo.setUserId("msdk demo");userInfo.setGender(UserInfoForSegment.GENDER_MALE);userInfo.setChannel("msdk channel");userInfo.setSubChannel("msdk sub channel");userInfo.setAge(999);userInfo.setUserValueGroup("msdk demo user value group");return new TTAdConfig.Builder().appId("5172046").appName("外卖人_android").openAdnTest(false)//开启第三方ADN测试时需要设置为true,会每次重新拉去最新配置,release 包情况下必须关闭.默认false.isPanglePaid(false)//是否为费用户.openDebugLog(true) //测试阶段打开,可以通过日志排查问题,上线时去除该调用.usePangleTextureView(true) //使用TextureView控件播放视频,默认为SurfaceView,当有SurfaceView冲突的场景,可以使用TextureView.setPangleTitleBarTheme(TTAdConstant.TITLE_BAR_THEME_DARK).allowPangleShowNotify(true) //是否允许sdk展示通知栏提示.allowPangleShowPageWhenScreenLock(true) //是否在锁屏场景支持展示广告落地页.setPangleDirectDownloadNetworkType(TTAdConstant.NETWORK_STATE_WIFI, TTAdConstant.NETWORK_STATE_3G) //允许直接下载的网络状态集合.needPangleClearTaskReset()//特殊机型过滤,部分机型出现包解析失败问题(大部分是三星)。参数取android.os.Build.MODEL.setUserInfoForSegment(userInfo) // 设置流量分组的信息.build();}@Overrideprotected void attachBaseContext(Context base) {super.attachBaseContext(base);MultiDex.install(base);}
}

他这个脚本是在 onCreate() 里面直接 在unity的activity创建的时候就加载广告sdk。会导致 用户没有同意隐私协议,广告sdk就已经在开始获取各种信息了,这不符合应用商店的要求。将其改为下面的:

//手动加载初始化说明:
//将本脚本文件的内容替换到 UnionApplication.java 里面
//然后将下面的代码 放到你启动广告sdk的方法里面
//
// AndroidJavaObject jo = new AndroidJavaObject("com.bytedance.ad.sdk.mediation.UnionApplication");
// jo.Call<string>("init_ad");
//package com.bytedance.ad.sdk.mediation;import android.app.Application;
import android.content.Context;
import android.support.multidex.MultiDex;
import android.widget.Toast;import com.bytedance.msdk.api.TTAdConfig;
import com.bytedance.msdk.api.TTAdConstant;
import com.bytedance.msdk.api.TTMediationAdSdk;
import com.bytedance.msdk.api.UserInfoForSegment;
import com.unity3d.player.UnityPlayer;public class UnionApplication  extends Application {@Overridepublic void onCreate() {super.onCreate();//TTMediationAdSdk.initialize(this, buildConfig());}public  String init_ad() {TTMediationAdSdk.initialize(UnityPlayer.currentActivity.getApplicationContext(), buildConfig());Toast.makeText(UnityPlayer.currentActivity.getApplicationContext(), "用户同意隐私协议,启动SDK加载", Toast.LENGTH_LONG).show();return  "初始化广告";}private static TTAdConfig buildConfig() {UserInfoForSegment userInfo = new UserInfoForSegment();userInfo.setUserId("msdk demo");userInfo.setGender(UserInfoForSegment.GENDER_MALE);userInfo.setChannel("msdk channel");userInfo.setSubChannel("msdk sub channel");userInfo.setAge(999);userInfo.setUserValueGroup("msdk demo user value group");return new TTAdConfig.Builder().appId("5172046").appName("外卖人_android").openAdnTest(false)//开启第三方ADN测试时需要设置为true,会每次重新拉去最新配置,release 包情况下必须关闭.默认false.isPanglePaid(false)//是否为费用户.openDebugLog(true) //测试阶段打开,可以通过日志排查问题,上线时去除该调用.usePangleTextureView(true) //使用TextureView控件播放视频,默认为SurfaceView,当有SurfaceView冲突的场景,可以使用TextureView.setPangleTitleBarTheme(TTAdConstant.TITLE_BAR_THEME_DARK).allowPangleShowNotify(true) //是否允许sdk展示通知栏提示.allowPangleShowPageWhenScreenLock(true) //是否在锁屏场景支持展示广告落地页.setPangleDirectDownloadNetworkType(TTAdConstant.NETWORK_STATE_WIFI, TTAdConstant.NETWORK_STATE_3G) //允许直接下载的网络状态集合.needPangleClearTaskReset()//特殊机型过滤,部分机型出现包解析失败问题(大部分是三星)。参数取android.os.Build.MODEL.setUserInfoForSegment(userInfo) // 设置流量分组的信息.build();}@Overrideprotected void attachBaseContext(Context base) {super.attachBaseContext(base);MultiDex.install(base);}
}

这里需要注意一个地方,就是 TTMediationAdSdk.initialize()的第一个参数,需要用 UnityPlayer.currentActivity.getApplicationContext(),如果还是用this,会出现空异常。

3.如何用unity访问这个代码

如果不理解unity和安卓交互的,可以先去学习下安卓和unity交互的基础.
这里改好了,剩下的就是 让unity 能够访问这个 方法了。直接用下面的代码即可,将这个代码 放在 用户同意你的隐私协议后执行,如果你的游戏有开始游戏按钮,推荐是开始游戏 按钮里面 执行这个代码
也可以放到 初始化数据的场景 里面的start方法里面去执行

AndroidJavaObject jo = new AndroidJavaObject("com.bytedance.ad.sdk.mediation.UnionApplication");
jo.Call<string>("init_ad");

穿山甲广告SDK手动初始化解决方案相关推荐

  1. Unity接入穿山甲广告SDK(以及GroMoreDemo)

    Unity接入穿山甲广告SDK(以及GroMoreDemo) 下载安装 穿山甲官网SDK下载链接(https://www.csjplatform.com/union/media/union/downl ...

  2. ios sdk 穿山甲_iOS 穿山甲广告 SDK 的使用

    信息流广告 自定义使用时,相关类的使用 BUAdSlot(广告位类,加载广告时需要设置的广告位描述信息) 传入广告的主要请求 ID,广告类型,位置等 BUMaterialMeta(广告数据的载体类,访 ...

  3. 踩坑!穿山甲广告Android SDK接入

    随着流量变现的兴起,越来越多的广告SDK汹涌而来,除了字节的穿山甲,还有腾讯的优量汇.百度的广告联盟,其他的例如AdView和万普世纪已经逐渐退出历史的舞台. 本篇文章将基于com.pangle.cn ...

  4. 无需上架,接入穿山甲广告和广点通广告 sdk

    我们都知道广告是商业流量变现最重要的方式之一,所以基本所有的游戏或者app都会接入广告sdk,而我们都知道穿山甲广告sdk和广点通广告sdk是国内收益相对比较高的,但是想接入穿山甲广告sdk,你的游戏 ...

  5. react-native穿山甲广告android

    1 sdk包导入 将穿山甲开发者平台 提供的open_ad_sdk.aar复制到Application Module/libs文件夹(没有的话须手动创建), 并将以下代码添加到您app的build.g ...

  6. Android 如何接入穿山甲广告?

    目录 下载SDK 集成SDK AndroidManifest配置 provider配置 运行环境配置 白名单配置 工具类 下载SDK 首先去穿山甲官网注册账号以及创建应用 点击进入平台 (我的是创建完 ...

  7. CocosCreator接入穿山甲广告1-激励视频

    首先进入文档后要先去下载它文档里的sdk,这个压缩包里面含有demo,没有头绪的朋友可以进入他的工程看下,也可在模拟器上运行一下它的demo看下效果.下载完后可以进入他工程下的libs的文件夹里把两个 ...

  8. Unity接入原生Android穿山甲广告

     最近要接入穿山甲广告,我把穿山甲广告相关的接入流程记录一下,说说最近踩过的坑,和怎么解决的问题.穿山甲Android原生广告我接入了激励视频广告,开屏广告,Banner广告,和插屏广告,我会在下文中 ...

  9. CocosCreator接入穿山甲广告(IOS)

    说明 接入穿山甲广告SDK 将Cocos Creator工程打包,在手机上运行,看能否正常运行游戏,保证游戏没有问题的前提下再引入SDK所需要的各种包 根据文档引入各种包,文档地址:https://p ...

最新文章

  1. 图论-最短路Dijkstra算法详解超详 有图解
  2. POST和GET有什么区别? [重复]
  3. T-SQL查询进阶--流程控制语句
  4. Java学习路线详解
  5. 前端技术以及工程化工具
  6. 并发编程之多线程基础-守护线程与非守护线程(四)
  7. SpringBoot进阶教程 | 第四篇:整合Mybatis实现多数据源
  8. java 终止方法_Java中终止线程的三种方法
  9. h5如何上传文件二进制流_Hadoop如何将TB级大文件的上传性能优化上百倍?
  10. Oracle日期函数总结
  11. rpg人物制作软件_RPG制作大师下载_RPG制作大师官方下载-太平洋下载中心
  12. Java中的三大特性 - 超详细篇
  13. 台式计算机键盘快捷键怎么设置,电脑快捷键设置修改 电脑键盘快捷键怎么更改...
  14. vue二维码生成与图片下载
  15. Lync2013扩展开发
  16. dr优先级默认_DR和BDR优先级
  17. 【STM32F429的DSP教程】第6章 ARM DSP源码和库移植方法(MDK5的AC5和AC6)
  18. (戒急用忍)本来是要展望2019的,没想到重点不由自主的写成了回顾前几年的事情了
  19. ESP32开发板连接TFT屏幕
  20. 144个stm32开发相关的问题,看你了解几个

热门文章

  1. 只需100 行代码,直接干掉文本编辑器中草稿箱功能
  2. 心爱的“妹妹”陈晓薇嫁张朝阳的N个理由
  3. 汇编语言的寻址地址方式 (长沙戴维营)
  4. Cisco RV320/RV042/RV130产品搭建专网网络
  5. Win7蓝屏后显示错误0x0000008E怎么样才能解决?
  6. 推荐电影一部: 反恐24小时。24Hours
  7. 一小时了解数据挖掘①:解析常见的大数据应用案例
  8. 1.证件办理-身份证异地办理流程(深圳)
  9. CUDA 10.1 发布;第 15 届谷歌编程夏令营导师机构公布
  10. 微博客传播特性及盈利模式分析