本指南向您介紹如何將HUAWEI Ads SDK集成到App中,這是展示廣告和獲得收入的第一步,一旦集成了SDK,就可以選擇一種廣告類型(如原生廣告或激勵視頻廣告),按照相應的步驟實現(xiàn)。
前提條件
·HUAWEI Ads SDK依賴HMS Core(APK)4.0.0.300及以上版本。如果設備上未安裝HMS Core(APK)4.0.0.300及以上版本,則無法使用HUAWEI Ads SDK的相關接口。
·在開發(fā)應用前需要在華為開發(fā)者聯(lián)盟網(wǎng)站上注冊成為開發(fā)者并完成實名認證,具體方法可參見帳號注冊認證。
·參見創(chuàng)建項目和在項目中添加應用完成應用的創(chuàng)建。
導入HUAWEI Ads SDK
華為提供了Maven倉集成方式的HUAWEI Ads SDK包。在開始開發(fā)前,您需要將HUAWEI Ads SDK集成到您的Android Studio開發(fā)環(huán)境中。
1.在項目級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/' }
}
}
2.在應用級的build.gradle文件中添加編譯依賴。
將{version}替換為實際的版本號,版本號索引請參見版本更新說明,修改如下:
dependencies {
implementation 'com.huawei.hms:ads-lite:13.4.35.300'
}
3.在完成以上的配置后,點擊工具欄中的gradle同步圖標,完成“build.gradle”文件的同步,將相關依賴下載到本地。
說明
如果出現(xiàn)錯誤,請檢查網(wǎng)絡連接是否正常,以及檢查“build.gradle”文件是否正確。
配置網(wǎng)絡權限
在targetSdkVersion 28及以上的手機上允許HTTP網(wǎng)絡請求,建議在AndroidManifest.xml做以下配置。
<application
...
android:usesCleartextTraffic="true"
>
...
</application>
配置混淆腳本
您編譯APK前需要配置混淆配置文件,避免混淆HUAWEI Ads SDK導致功能異常。
打開Android工程應用級根目錄下的“proguard-rules.pro”混淆配置文件,加入排除HUAWEI Ads SDK的混淆配置。
-keep class com.huawei.openalliance.ad.**{*;}
-keep class com.huawei.hms.ads.**{*;}
初始化SDK
建議在應用啟動的時候調(diào)用HwAds.init()接口初始化HUAWEI Ads SDK,您需要自行實現(xiàn)AdSampleApplication類。
示例代碼如下:
在AndroidManifest.xml添加Application名稱。
<application
android:name=".AdSampleApplication"
...
>
...
</application>
實現(xiàn)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);
...
}
}