目录

本指南向您介绍如何将HUAWEI Ads SDK集成到APP中,是展示广告和获得收入的第一步,一旦集成了SDK,就可以选择一种广告类型(如原生广告或激励视频广告),按照相应的步骤实现。

1. 前提条件

2. 导入HUAWEI Ads SDK

在项目级build.gradle文件中配置maven仓地址:

  1. buildscript {
  2.    repositories {
  3.        google()
  4.        jcenter()
  5.        maven { url 'https://developer.huawei.com/repo/' }
  6.    }
  7.    ...
  8. }
  9. allprojects {
  10.    repositories {
  11.        google()
  12.        jcenter()
  13.        maven { url 'https://developer.huawei.com/repo/' }
  14.    }
  15. }

在应用级的build.gradle文件中添加编译依赖:

将{version} 替换为实际的SDK版本号,修改如下:

  1. dependencies {
  2.    implementation 'com.huawei.hms:ads-lite:13.4.30.301'
  3. }

保存build.gradle文件,点击“Sync Now”等待同步完成。

下载SDK

步骤1 下载并解压adssdk-eclipse-{version}.zip,解压后将生成8个Eclipse Library工程,如下表所示:

工程名

提供的能力

需求场景。

ads-base

HMS Ads SDK 基础功能包

该工程必须集成。

ads-banner

提供Banner广告能力

需要集成Banner广告能力时,集成该工程以及ads-base, ads-native工程。

ads-consent

提供征求用户意见能力

需要征求用户意见时,集成该工程以及ads-base工程。

ads-lang

提供多语言能力

需要使用多语言能力时,集成该工程以及ads-base工程。

ads-native

提供原生广告能力

需要集成原生广告时,集成该工程以及ads-base工程。

ads-reward

提供激励广告能力

需要集成激励广告时,集成该工程以及ads-base工程。

ads-interstitial

提供插屏广告能力

需要集成插屏广告时,集成该工程以及ads-base工程。

ads-splash

提供开屏广告能力

需要集成开屏广告时,集成该工程以及ads-base工程。

步骤2 将所有SDK工程导入到您的工作空间。

a. 选择菜单“File > Import”,选择“Android > Existing Android Code Into Workspace”,点击“Next”。

b. 点击“Browse”,选择工程所在的文件夹目录。在“Projects”下显示待导入的工程,默认全部勾选,点击“Finish”。

注意:
待导入的工程必须和工作空间在相同的磁盘空间里,例如都在“D:\”。如果不在,您可以选择“Copy projects into workspace”,将工程文件复制到工作空间。

添加工程依赖关系

步骤1 右键点击您的工程,选择“Properties”。

步骤2 在左侧选择“Android”,点击“Add”,选择已导入空间的工程,点击“OK”。

步骤3 同时为ads-banner工程和ads-native工程设置ads-base工程依赖,如下图所示:

修改AndroidManifest.xml文件

如果您的工程中的AndroidManifest.xml配置的minSdkVersion小于19,建议修改为19,或者删除SDK各个工程下AndroidManifest.xml 中以下的配置,避免编译错误的问题。

  1. <uses-sdk
  2.    android:minSdkVersion="19"
  3.    android:targetSdkVersion="29" />
注意:
您的工程安装在低于Android API Level 19 的手机上时会请求不到广告。

由于Eclipse的xml文件不支持$符号,将ads-base工程下AndroidManifest.xml文件中的“${applicationId}”替换成您的应用包名。

  1. <application>
  2.    ...
  3.    <activity android:name="com.huawei.openalliance.ad.activity.PPSLauncherActivity"
  4.        android:theme="@android:style/Theme.Translucent.NoTitleBar"
  5.        android:exported="true">
  6.        <intent-filter>
  7.            <action android:name="android.intent.action.VIEW"/>
  8.            <category android:name="android.intent.category.DEFAULT"/>
  9.            <category android:name="android.intent.category.BROWSABLE"/>
  10.            <data android:scheme="hwpps" android:host="${applicationId}"/>
  11.        </intent-filter>
  12.    </activity>
  13.    ...
  14. </application>

修改project.properties文件

在开发工程的project.properties文件添加或修改如下:

  1. target=android-29
  2. manifestmerger.enabled=true
说明:
ADT必须是17以上版本。

3. 配置网络权限

在targetSdkVersion 28及以上的手机上允许http网络请求,建议在AndroidManifest.xml做以下配置:

  1. <application
  2.    ...
  3.    android:usesCleartextTraffic="true"
  4.    >
  5.    ...
  6. </application>

4. 配置混淆脚本

开发者编译APK前需要配置不要混淆HUAWEI Ads SDK,避免功能异常。

Android Studio开发环境里的配置文件是“proguard-rules.pro”,Eclipse开发环境里的配置文件是“proguard-project.txt”。

    1. 打开Android工程的混淆配置文件。

    2. 加入排除HMS SDK的混淆配置。

  1. -keep class com.huawei.openalliance.ad.** { *; }
  2. -keep class com.huawei.hms.ads.** { *; }

5. 初始化SDK

建议在应用启动的时候调用HwAds.init()接口初始化HUAWEI Ads SDK,开发者需要自行实现AdSampleApplication类。

示例代码如下:

在AndroidManifest.xml添加Application名称。

  1. <application
  2.    android:name=".AdSampleApplication"
  3.    ...
  4.    >
  5.    ...
  6. </application>

实现AdSampleApplication类,并初始化SDK。

  1. ...
  2. import com.huawei.hms.ads.HwAds;
  3. ...
  4. public class AdSampleApplication extends Application {
  5.    @Override
  6.    public void onCreate() {
  7.        super.onCreate();
  8.        HwAds.init(this);
  9.    }
  10.    ...
  11. }

当然,也可以在Activity中初始化SDK。

示例代码如下:

  1. ...
  2. import com.huawei.hms.ads.HwAds;
  3. ...
  4. public class MainActivity extends Activity {
  5.    private BannerView bannerView;
  6.    @Override
  7.    protected void onCreate(Bundle savedInstanceState) {
  8.        super.onCreate(savedInstanceState);
  9.        setContentView(R.layout.activity_main);
  10.        // 初始化HUAWEI Ads SDK.
  11.        HwAds.init(this);
  12.        ...
  13.    }
  14. }