Android SDK集成说明

开始之前

我们支持Android系统版本Version 4.1 (API Level 16) 及以上。请确保满足以下要求:

使用Android Studio 2.0 版本及以上

Target Android API level 28

MinSdkVersion level 16 及以上

1. 概述

本手册介绍如何将京媒SDK集成到您的Android应用中。

京媒SDK支持开屏、信息流等丰富的广告类型。

注意:
针对 2.0.0 以前升级用户,广告接口更改,详情见接口升级说明文档
针对 2.1.0 及以后版本 ,京媒SDK默认支持AndroidX版本,接入时请注意是否为AndroidX项目

2. Ads ID

在进行SDK集成之前,您得先有一个 京媒合作平台 的账号,然后注册您的应用、创建广告位等操作,得到集成所必要的信息:APP_ID 和 Slot ID。

APP_ID: APP_ID 是给开发者应用分配的唯一标识,您可以在京媒合作平台创建应用后即可获取APP_ID。

Slot ID: 是广告位的唯一标识。开发者可以创建多个广告位。 京媒SDK广告位类型支持开屏、插屏、横幅、信息流四种广告类型。

3. 添加SDK到开发项目中

方式一:整包接入

下载SDK后,解压将本SDK压缩包内的jad_yun_sdk_x.x.x.aar复制到Application Module/libs文件夹(没有的话须手动创建), 并将以下代码添加到您app的build.gradle中:

repositories {
    flatDir {
        dirs 'libs'
    }
}
depedencies {
    implementation(name: 'jad_yun_sdk_x.x.x', ext: 'aar')
}

方式二:分包接入

将开屏、信息流、媒体渲染5种广告类型的组件化,您可以按实际业务场景接入所需的广告组件。 下载SDK后,解压将本SDK压缩包内您需要的aar复制到Application Module/libs文件夹(没有的话须手动创建), 并将以下代码添加到您app的build.gradle中:

repositories {
    flatDir {
        dirs 'libs'
    }
}
depedencies {
    implementation(name: 'jad_yun_core_x.x.x', ext: 'aar')         //必选
    implementation(name: 'jad_yun_splash_x.x.x', ext: 'aar')       //可选,京东渲染开屏
    implementation(name: 'jad_yun_feed_x.x.x', ext: 'aar')         //可选,京东渲染信息流
    implementation(name: 'jad_yun_native_x.x.x', ext: 'aar')       //可选,媒体渲染广告(开屏、信息流)

}

``

方式三:自动接入

添加仓库:在project级别的build.gradle文件中添加Maven的引用

 allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

添加依赖:在主module的build.gradle文件添加SDK依赖

//方式1. 单广告位按需接入
dependencies {
    implementation 'com.github.JAD-FE-TEAM.JADYunAndroid:jad_yun_core:x.x.x'   //必选,核心功能
    implementation 'com.github.JAD-FE-TEAM.JADYunAndroid:jad_yun_splash:x.x.x' //可选,开屏广告
    implementation 'com.github.JAD-FE-TEAM.JADYunAndroid:jad_yun_feed:x.x.x'   //可选,信息流广告
    implementation 'com.github.JAD-FE-TEAM.JADYunAndroid:jad_yun_native:x.x.x' //可选,媒体渲染广告
}

//方式2. 全广告位接入
dependencies {
    implementation 'com.github.JAD-FE-TEAM.JADYunAndroid:jad_yun_sdk:x.x.x'
}

4. AndroidManifest.xml配置

接下来需要添加配置到您的AndroidManifest.xml 文件中.

<!--必要权限 用户SDK可访问网络-->
<uses-permission android:name="android.permission.INTERNET"/>

<!--可选权限-->
<!--用于SDK可获取网络状态变化,更及时的更新媒体广告位配置-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--用于SDK,在媒体允许的情况下,获取IMEI 标识用户的唯一性,有助于广告填充-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!--用于SDK,在媒体允许的情况下,获取使用Wi-Fi等WLAN无线网,有助于广告精准投放-->
 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!--用于SDK,在媒体允许的情况下,获取位置信息,更精确的推送最有价值的广告-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!--用于京东渲染广告图片缓存 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--建议添加“query_all_package”权限,京东广告将通过此权限在Android R系统上判定广告对应的应用是否在用户的app上安装,
避免投放错误的广告,以此提高用户的广告体验。若添加此权限,需要在您的用户隐私文档中声明!-->
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />

注意: 广告SDK不强制获取以上权限,即使没有获取可选权限SDK也能正常运行;获取以上权限将帮助优化投放广告精准度和广告填充率,提高收益。

5. Proguard

-keep class com.jd.ad.sdk.** { *; }

6. 初始化SDK

建议开发者在Application#onCreate()方法中调用以下代码来初始化京媒SDK

        //初始化SDK配置
        JADYunSdkConfig config = new JADYunSdkConfig
                .Builder()
                .setAppId(Constants.APP_ID) //媒体在平台申请的 APP ID
                .setEnableLog(BuildConfig.DEBUG) //测试阶段打开,可以通过日志排查问题,上线时去除该调用
                .setPrivateController(createPrivateController()) //隐私信息控制设置,此项必须设置!!
                .setSupportMultiProcess(true)//是否支持多进程,true表示支持,默认不支持,若不支持多进程场景,无需设置该配置
                .build();

        //初始化SDK
        JADYunSdk.init(this, config);

        //同步初始化SDK
        JADYunSdk.syncInit(this, config, new JADInitCallback() {
            /**
             * 初始化成功
             */
            @Override
            public void onInitSuccess() {

            }
            /**
             * 初始化失败
             */
            @Override
            public void onInitFailure(int code, String msg) {

            }
        });

        //异步初始化SDK
        JADYunSdk.asyncInit(this, config, new JADInitCallback() {
            /**
             * 初始化成功
             */
            @Override
            public void onInitSuccess() {

            }
            /**
             * 初始化失败
             */
            @Override
            public void onInitFailure(int code, String msg) {

            }
        });

7.初始化接口说明

    /**
     * @param context Context 上下文
     * @param config 初始化配置信息
     */
    public static void init(@NonNull Context context, @NonNull JADYunSdkConfig config);

    /**
     * 同步初始化方法
     *
     * @param context      上下文对象
     * @param sdkConfig    初始化配置
     * @param initCallback 同步初始化回调
     */
    public static void syncInit(@NonNull Context context, @NonNull JADYunSdkConfig sdkConfig, JADInitCallback initCallback);

     /**
     * 异步初始化方法
     *
     * @param context      上下文对象
     * @param sdkConfig    初始化配置
     * @param initCallback 异步初始化回调
     */
    public static void asyncInit(@NonNull Context context, @NonNull JADYunSdkConfig sdkConfig, JADInitCallback initCallback);

    /**
     * 初始化是否成功
     */
    public static boolean isInitSuccess();

8.隐私信息控制开关

请媒体用户设置OAID参数, 否则可能影响广告填充
1、OAID的获取请查看移动安全联盟文档, 将获取的OAID值按照如下进行设置:
2、设置其他控制权限(位置,IMEI等)

JADYunSdkConfig config = new JADYunSdkConfig.Builder()
                ...
                .setPrivateController(new JADPrivateController() {
                    @Override
                    public String getOaid() {
                        return mIdSupplier.getOAID();
                    }

                    @Override
                    public boolean isCanUsePhoneState() {
                        return true;
                    }
                })
                ...

3、隐私信息控制类说明: 重要!!重要!!

创建隐私信息控制类的实例,媒体可以自主控制是否提供权限给广告SDK使用
为了保证广告的填充率,注意oaid和imei的配置:
(1)oaid配置项必须实现,并传入有效值
(2)imei的配置与isCanUsePhoneState有关(isCanUsePhoneState配置项默认为true)
当isCanUsePhoneState 配置为false,不允许SDK主动获取imei,但是需要接入方主动传入imei
当isCanUsePhoneState 配置为true,允许SDK主动获取imei,但必须保证接入方已经动态申请了 Manifest.permission.READ_PHONE_STATE,否则SDK会获取失败
其他采用可以采用默认配置(可以不用实现相关方法,默认都是支持SDK主动获取的)

    private JADPrivateController createPrivateController() {
        return new JADPrivateController() {
            /**
             * 是否允许SDK主动使用手机硬件参数,如:imei
             *
             * @return true可以使用,false禁止使用。默认为true
             */
            public boolean isCanUsePhoneState() {
                return true;
            }

            /**
             * 当 isCanUsePhoneState=false 时,
             * 可传入 imei 信息,sdk使用您传入的 imei 信息
             *
             * @return imei信息
             */
            public String getImei() {
                return "";
            }

            /**
             * 开发者可以传入oaid
             *
             * @return oaid
             */
            @Override
            public String getOaid() {
                return mIdSupplier != null ? mIdSupplier.getOAID() : "";
            }

            /**
             * 是否允许SDK主动使用地理位置信息
             *
             * @return true可以获取,false禁止获取。默认为true
             */
            public boolean isCanUseLocation() {
                return true;
            }

            /**
             * 当isCanUseLocation=false时,可传入地理位置信息,sdk使用您传入的地理位置信息
             *
             * @return 地理位置参数
             */
            public JADLocation getLocation() {
                return new JADLocation();
            }

            /**
             * 是否允许SDK主动使用IP信息
             * @return true可以使用,false禁止使用。默认为true
             */
            @Override
            public boolean isCanUseIP() {
                return true;
            }

            /**
             * 当 isCanUseIP=false 时,
             * 可传入 IP 信息,SDK使用您传入的 IP 信息
             *
             * @return IP
             */
            @Override
            public String getIP() {
                return "";
            }

        };
    }

9.重点说明

为了广告SDK正常使用,请对所有广告SDK 接口的调用, 都放在主线程中,如广告的创建,广告的加载等

注意: 1.集成移动安全联盟SDK需要将 supplierconfig.json 拷贝到项目 assets 目录下 2.appid 只与 VAID(开发者匿名设备标识符) 的获取有关,用于判断是否为同一开发者,如不需获取 vaid 可 不填写。目前只需设置 vivo 的 appid。 3.其他注意事项可参考移动广告联盟SDK F&Q文档

恭喜您完成了京媒SDK的集成。接下来请在您的应用中完集成开屏、信息流广告。

© JD.COM all right reserved,powered by Gitbook该文档最后更新: 2024-04-25 21:12:16

results matching ""

    No results matching ""