本指南向您介绍如何将HUAWEI Ads SDK集成到APP中,是展示广告和获得收入的第一步,一旦集成了SDK,就可以选择一种广告类型(如原生广告或激励视频广告),按照相应的步骤实现。
您需要安装4.0.0及以上版本的HMS Core(APK)。如果未安装,则无法使用HUAWEI Ads SDK的相关接口。
在项目级build.gradle文件中配置maven仓地址:

- buildscript {
- repositories {
- google()
- jcenter()
- maven { url 'https://developer.huawei.com/repo/' }
- }
- ...
- }
- allprojects {
- repositories {
- google()
- jcenter()
- maven { url 'https://developer.huawei.com/repo/' }
- }
- }
在应用级的build.gradle文件中添加编译依赖:

将{version} 替换为实际的SDK版本号,修改如下:
- dependencies {
- implementation 'com.huawei.hms:ads-lite:13.4.30.301'
- }
保存build.gradle文件,点击“Sync Now”等待同步完成。

步骤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”。

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

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

修改AndroidManifest.xml文件
如果您的工程中的AndroidManifest.xml配置的minSdkVersion小于19,建议修改为19,或者删除SDK各个工程下AndroidManifest.xml 中以下的配置,避免编译错误的问题。
- <uses-sdk
- android:minSdkVersion="19"
- android:targetSdkVersion="29" />
由于Eclipse的xml文件不支持$符号,将ads-base工程下AndroidManifest.xml文件中的“${applicationId}”替换成您的应用包名。
- <application>
- ...
- <activity android:name="com.huawei.openalliance.ad.activity.PPSLauncherActivity"
- android:theme="@android:style/Theme.Translucent.NoTitleBar"
- android:exported="true">
- <intent-filter>
- <action android:name="android.intent.action.VIEW"/>
- <category android:name="android.intent.category.DEFAULT"/>
- <category android:name="android.intent.category.BROWSABLE"/>
- <data android:scheme="hwpps" android:host="${applicationId}"/>
- </intent-filter>
- </activity>
- ...
- </application>
在开发工程的project.properties文件添加或修改如下:
- target=android-29
- manifestmerger.enabled=true
在targetSdkVersion 28及以上的手机上允许http网络请求,建议在AndroidManifest.xml做以下配置:
- <application
- ...
- android:usesCleartextTraffic="true"
- >
- ...
- </application>
开发者编译APK前需要配置不要混淆HUAWEI Ads SDK,避免功能异常。
Android Studio开发环境里的配置文件是“proguard-rules.pro”,Eclipse开发环境里的配置文件是“proguard-project.txt”。
1. 打开Android工程的混淆配置文件。
2. 加入排除HMS SDK的混淆配置。
- -keep class com.huawei.openalliance.ad.** { *; }
- -keep class com.huawei.hms.ads.** { *; }
建议在应用启动的时候调用HwAds.init()接口初始化HUAWEI Ads SDK,开发者需要自行实现AdSampleApplication类。
示例代码如下:
在AndroidManifest.xml添加Application名称。
- <application
- android:name=".AdSampleApplication"
- ...
- >
- ...
- </application>
实现AdSampleApplication类,并初始化SDK。
- ...
- import com.huawei.hms.ads.HwAds;
- ...
- public class AdSampleApplication extends Application {
- @Override
- public void onCreate() {
- super.onCreate();
- HwAds.init(this);
- }
- ...
- }
当然,也可以在Activity中初始化SDK。
示例代码如下:
- ...
- import com.huawei.hms.ads.HwAds;
- ...
- public class MainActivity extends Activity {
- private BannerView bannerView;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- // 初始化HUAWEI Ads SDK.
- HwAds.init(this);
- ...
- }
- }