Huawei Adsの実装方法－準備編

# Huawei Adsの実装方法－準備編

(1) Huaweu Developerを登録します。

(2) AppGallery Connectでアプリのプロジェクトを登録します。
<img width="300" alt="スクリーンショット 2020-10-01 155726.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704548/7ad86f57-75ef-2aa1-7f8a-89ba53ec0ae1.png">
<img width="300" alt="スクリーンショット 2020-10-01 155747.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704548/910d9b63-0bf4-90fd-3aba-168b4eb26310.png">
<img width="300" alt="スクリーンショット 2020-10-01 155822.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704548/890cd9ee-09ad-3e72-d9fb-7b1d95d48c45.png">
<img width="300" alt="スクリーンショット 2020-10-01 155911.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704548/50d68b1d-4b5f-d185-2ecc-3b03c4175ad7.png">
<img width="300" alt="スクリーンショット 2020-10-01 155946.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704548/25cf901a-7e9f-fbde-9eeb-63504bb9a821.png">

(3) keytoolで生成したSHA256をAppGallery Connectのアプリプロジェクトに登録します。
<img width="300" alt="スクリーンショット 2020-10-01 160111.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704548/60cc348f-e029-8b02-8291-b16df40dd33d.png">

## HMS SDKを導入
(1) プロジェクトのbuild.gradleを開き、mavenとclasspathを追加します。
<img width="200" alt="スクリーンショット 2020-10-01 162820.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704548/7ee345a1-2c6d-9857-deed-776060a09de4.png">

```gradle:build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    ...
    repositories {
        google()
        jcenter()

        // こちらの行を追加
        maven {url 'http://developer.huawei.com/repo/'}
    }
    ...
}

allprojects {
    repositories {
        google()
        jcenter()

        // こちらの行を追加
        maven { url 'http://developer.huawei.com/repo/' }
    }
}
```

(2) モジュールのbuild.gradleを開き、次のようにを追加します。
<img width="200" alt="スクリーンショット 2020-10-01 162842.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704548/7cd74ac6-a36a-dbdd-30ea-fb24c14f0408.png">

```gradle:build.gradle
dependencies {
    ...
    // Ads Kit（広告表示）を使う場合はこちらの行を追加してください。バージョンは下記のサイトで確認できます
    // https://developer.huawei.com/consumer/en/doc/HMSCore-Guides-V5/publisher-service-version-change-history-0000001050066909-V5
    implementation 'com.huawei.hms:ads-lite:13.4.37.300'

    // Ads Kit（OAIDとパーソナライズド広告）を使う場合はこちらの行を追加してください。バージョンは下記のサイトで確認できます
    // https://developer.huawei.com/consumer/en/doc/HMSCore-Guides-V5/identifier-service-version-change-history-0000001050066927-V5
    implementation 'com.huawei.hms:ads-identifier:3.4.37.300'

    // Ads Kit（install referrer）を使う場合はこちらの行を追加してください。バージョンは下記のサイトで確認できます
    // https://developer.huawei.com/consumer/en/doc/HMSCore-Guides-V5/identifier-service-version-change-history-0000001050066927-V5
    implementation 'com.huawei.hms:ads-installreferrer:3.4.37.300'
    ...
}
```

(3) proguard-rules.proを開き、次のようにを追加します。
<img width="200" alt="スクリーンショット 2020-10-01 162901.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704548/01ff236e-58c6-0000-165a-99daa78f64e8.png">

```java:proguard-rules.pro
-keep class com.huawei.openalliance.ad.** { *; }
-keep class com.huawei.hms.ads.** { *; }
-keep interface com.huawei.hms.ads.** {*; }
```

(4) targetSdkVersion 28以上の場合、AndroidMainfest.xmlを開き、次のようにを追加します。

```xml:AndroidMainfest.xml
<application
    ...
    android:usesCleartextTraffic="true"
    >
    ...
</application>
```

(5) SDKを次のように、ApplicationまたはActivityの中で初期化します。

```kotlin:MainActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
    ...
    HwAds.init(applicationContext)
    ...
}
```

# [HUAWEI Ads Publisher Console](https://developer.huawei.com/consumer/en/service/ads/publisher/html/index.html#/mainContent/dashbordContent)
(1) [HUAWEI Ads Publisher Console](https://developer.huawei.com/consumer/en/service/ads/publisher/html/index.html#/mainContent/dashbordContent)を開きます。
(2) [My apps] -> [Add app]を選びます。
<img width="800" alt="image.png" src="https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20210105155602.98287428057123933159944862579919:50520105084520:2800:CA6D648DD23B8FEDB22FCB0C64245E682031A66EA1E2FFD9D3E1831F5BA265C5.png">
(3) アプリの情報を設定し、[Submit]を押します。
<img width="600" alt="image.png" src="https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20210105155602.71351287668617459571168358208021:50520105084520:2800:3C0B043238ADE8CFAB5A3BA0B1549965BEE5FFE55E098162150628142609F008.png">
(4) [Add ad unit]を押します。
<img width="800" alt="image.png" src="https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20210105155602.74175555985800054665204733940873:50520105084520:2800:EDF9285A4B6C6AF89B5413EE2FF5A0253A6640EF187F0B18A0D7840CDB4F96DB.png">
(5) 広告設定を済ませて保存します。
<img width="800" alt="image.png" src="https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20210105155603.12261089326147151325393655534315:50520105084520:2800:FEDFFDA72EC6ECA1CBA99F423624B913F66B1A9F9829CCF252F8F8D6291E842B.png">
<img width="800" alt="image.png" src="https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20210105155603.10408850355794982838013119843086:50520105084520:2800:6176CEAF1BBBB2B87F7295956DAEC9BF1B4C3CEBF40940CE3E7D7EB0DB5FAFFF.png">

### Ad slot ID
[My Apps]に戻って、対象アプリを開けば、Ad slot IDがわかります。
<img width="800" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704548/b207b15e-b02a-4732-c222-8d2e96b2a15b.png">

# Huawei Adsシリーズ
- [Huawei Adsの機能のまとめ](https://qiita.com/Rei_2020/items/87804f2057d4b143fc12)
- [Huawei Adsの実装方法－準備編](https://qiita.com/Rei_2020/items/9f9eb35f781051eba811)
- [Huawei Adsの実装方法－広告用識別子（OAID）編](https://qiita.com/Rei_2020/items/f5446a2bbbb4d5d3df67)
- [Huawei Adsの実装方法－インストールリファラー編](https://qiita.com/Rei_2020/items/977eabb3a514ba5c2476)
- [Huawei Adsの実装方法－バナー広告編](https://qiita.com/Rei_2020/items/308ebf626c1423a7cb1f)
- [Huawei Adsの実装方法－ネイティブ広告編](https://qiita.com/Rei_2020/items/f60976c23c1268261d5f)
- [Huawei Adsの実装方法－リワード広告編](https://qiita.com/Rei_2020/items/06744db6572c1603b0bd)
- [Huawei Adsの実装方法－インタースティシャル広告編](https://qiita.com/Rei_2020/items/3c9d9a19861a2d139737)
- [Huawei Adsの実装方法－スプラッシュ広告編](https://qiita.com/Rei_2020/items/5a138945d7b343602df1)

# GitHub
HMS Ads Kit Demo : [https://github.com/Rei2020GitHub/MyPublicProject/tree/master/AdsDemo](https://github.com/Rei2020GitHub/MyPublicProject/tree/master/AdsDemo)

# 参考
* HMS：[https://developer.huawei.com/consumer/jp/](https://developer.huawei.com/consumer/jp/)
* HMS Ads Kitの紹介：[https://developer.huawei.com/consumer/jp/hms/huawei-adskit/](https://developer.huawei.com/consumer/jp/hms/huawei-adskit/)
* HMS Ads Kitのドキュメント：[https://developer.huawei.com/consumer/jp/doc/development/HMSCore-Guides/publisher-service-introduction-0000001070671805](https://developer.huawei.com/consumer/jp/doc/development/HMSCore-Guides/publisher-service-introduction-0000001070671805)
* HUAWEI Ads Publisher Service：[https://developer.huawei.com/consumer/jp/monetize/](https://developer.huawei.com/consumer/jp/monetize/)
* HUAWEI Ads Publisher Serviceのドキュメント：[https://developer.huawei.com/consumer/jp/doc/distribution/monetize/advantage-0000001051201913](https://developer.huawei.com/consumer/jp/doc/distribution/monetize/advantage-0000001051201913)
* Huawei Developers：[https://forums.developer.huawei.com/forumPortal/en/home](https://forums.developer.huawei.com/forumPortal/en/home)
* Facebook Huawei Developersグループ：[https://www.facebook.com/Huaweidevs/](https://www.facebook.com/Huaweidevs/)