애플리케이션(Kotlin)에 삽입 광고를 통합하여 광고 키트 시작하기



## 소개
이 기사에서는 애플리케이션에 Huawei Ads Kit를 통합하는 방법을 배울 수 있습니다. 전면 광고를 사용하겠습니다. 전면 광고는 앱의 인터페이스를 덮는 전체 화면 광고입니다. 이러한 광고는 사용자 경험을 방해하지 않으면서 사용자가 앱을 시작, 일시중지 또는 종료할 때 표시됩니다.

## 광고 키트
Huawei Ads Kit는 Huawei 장치의 방대한 사용자 기반과 Huawei의 광범위한 데이터 기능을 활용하여 게시자 서비스를 제공하여 트래픽을 수익화할 수 있도록 지원합니다.
HMS 광고 키트에는 7가지 유형의 광고 키트가 있습니다. 이제 이 애플리케이션에서 전면 광고를 구현할 수 있습니다.

## 요구 사항
  • 모든 운영 체제(MacOS, Linux 및 Windows).
  • HMS 4.0.2.300 이상이 설치된 Huawei 전화가 있어야 합니다.
  • Android Studio, Jdk 1.8, SDK 플랫폼 26 및 Gradle 4.6이 설치된 노트북 또는 데스크탑이 있어야 합니다.
  • 최소 API 레벨 21이 필요합니다.
  • EMUI 9.0.0 이상 버전 장치가 필요합니다.

  • ## HMS 종속성 통합
  • 먼저 Huawei 개발자로 등록하고 Huawei 개발자 웹사이트에서 신원 확인을 완료하려면 등록 a Huawei ID 를 참조하십시오.
  • android studio에서 프로젝트 생성, 참조 Creating an Android Studio Project.
  • SHA-256 인증서 지문을 생성합니다.
  • SHA-256 인증서 지문을 생성합니다. 보기 > 도구 창 > Gradle > 서명 보고서 > SHA256 코드를 선택합니다.
    또는 SHA256 CODE에 설명된 대로 cmd를 사용하십시오.
  • AppGallery Connect에서 앱을 생성합니다.
  • 앱 정보에서 agconnect-services.json 파일을 다운로드하고 앱 디렉토리 아래의 Android 프로젝트에 복사하여 붙여넣습니다.
  • SHA-256 인증서 지문을 입력하고 저장을 클릭합니다.
  • build.gradle(Project) 파일에 아래의 maven URL을 buildscript, 종속성 및 allprojects 저장소 아래에 추가합니다. Add Configuration을 참조하십시오.maven { url 'http://developer.huawei.com/repo/' }
    classpath 'com.huawei.agconnect:agcp:1.6.0.300'
  • build.gradle(Module) 파일에 아래의 Plugin과 의존성을 추가한다.apply plugin: 'com.huawei.agconnect'//화웨이 AGCimplementation 'com.huawei.agconnect:agconnect-core:1.6.0.300'//광고 키트Implementation 'com.huawei.hms:ads-lite:13.4.40.301'
  • 이제 gradle을 동기화하십시오.
  • Manifestfile.xml 파일에 필요한 권한을 추가하십시오.

  • <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <!--check wifi state--> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    


  • 프로젝트에서 progaurd를 사용하는 경우 progaurd-rules.pro 파일에 아래 코드를 복사하여 붙여넣습니다.

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


    개발

    이 예에서는 두 활동 사이에 전면 광고를 배치합니다. MainActivity(이 예의 첫 번째 활동)에서 "CLICK TO START TRANSACTION"버튼을 클릭하면 전면 광고가 먼저 표시된 다음 핀(이 예의 두 번째 활동)이 해당 위치에 표시됩니다.
  • 전면 광고 개체를 만듭니다.

  • Create an InterstitialAd object and use the setAdId() method of the InterstitialAd class to set a test ad unit ID
    
    private var interstitialAd: InterstitialAd? = null
    var nextPageBtn: Button? = null
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    nextPageBtn = findViewById(R.id.btTrans)
      interstitialAd = InterstitialAd(this)
            interstitialAd.setAdId(adId)
            interstitialAd.setAdListener(adListener)
    }
    


  • 광고를 로드합니다.

  • Call the loadAd() method of the InterstitialAd object to load an ad. 
    private fun loadInterstitialAd() {
        ...
        // Load an interstitial ad.
        val adParam = AdParam.Builder().build()
        interstitialAd!!.loadAd(adParam)
        ...
    }
    


  • 광고를 표시합니다.

  • Call the isLoaded() method to check whether an ad has been loaded. If the ad has been loaded, call the show(Activity activity) method of the InterstitialAd object to display the ad.
    private fun showInterstitial() {
            // Display an interstitial ad.
            if (interstitialAd != null && interstitialAd.isLoaded()) {
                interstitialAd.show()
            } else {
                startActivity(Intent(this@MainActivity, pin::class.java))
            }
        }
    
    


  • 광고 이벤트를 수신합니다.

  • Call the setAdListener(AdListener adListener) method of the InterstitialAd class to add the ad event listener AdListener for the InterstitialAd object, and implement the methods in AdListener to listen to ad events.
    fun adEvent() {
        adListener = object : AdListener() {
            fun onAdLoaded() {
                // Called when an ad is loaded successfully.
                super.onAdLoaded()
                Toast.makeText(this@MainActivity, "Ad loaded", Toast.LENGTH_SHORT).show()
                // Display an interstitial ad.
                showInterstitial()
            }
    
            fun onAdFailed(errorCode: Int) {
                // Called when an ad fails to be loaded.
                Toast.makeText(
                    this@MainActivity, "Ad load failed with error code: $errorCode",
                    Toast.LENGTH_SHORT
                ).show()
                Log.d(
                    TAG,
                    "Ad load failed with error code: $errorCode"
                )
                startActivity(Intent(this@MainActivity, pin::class.java))
            }
    
            fun onAdClosed() {
                // Called when an ad is closed
                super.onAdClosed()
                Log.d(TAG, "onAdClosed")
                startActivity(Intent(this@MainActivity, pin::class.java))
            }
    
            fun onAdClicked() {
                // Called when an ad is clicked.
                Log.d(TAG, "onAdClicked")
                super.onAdClicked()
                adListener.onAdClosed()
            }
    
            fun onAdOpened() {
    // Called when an ad is opened.
                Log.d(TAG, "onAdOpened")
                super.onAdOpened()
            }
    
            fun onAdLeave() {
                // Called when an ad leaves an app.
                ...
            }
            fun onAdLeave() {
                // Called when an ad leaves an app.
                ...
            }
        }
    }
    Activity_mail.xml
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        tools:context=".MainActivity"
        android:id="@+id/activity_main"
        android:background="@color/purple_200">
    
        <Button
            android:id="@+id/btTrans"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/click_to_start_transaction"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            tools:layout_editor_absoluteY="327dp" />
    
        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/welcome_to_world_s_best_bank"
            android:textSize="20dp" />
    
        <ImageView
            android:id="@+id/imageView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:srcCompat="@drawable/hello" />
    </RelativeLayout>
    
    


    응용 프로그램에 따라 UI를 조정합니다.

    결과







    팁과 요령
  • minSDK 버전을 24 이상으로 설정하십시오. 그렇지 않으면 AndriodManifest 병합 문제가 발생합니다.
  • 앱 폴더에 agconnect-services.json 파일을 추가했는지 확인하십시오.
  • 반드시 SHA-256 지문을 추가했는지 확인하십시오.
  • 모든 종속성이 올바르게 추가되었는지 확인하십시오.

  • 결론
    이 기사에서는 애플리케이션에서 Ads Kit의 통합에 대해 배웠습니다. 개발자에게 양질의 광고 콘텐츠를 사용자에게 제공할 수 있는 다양한 기능을 제공합니다.
    참조
    광고 키트: Documentation

    좋은 웹페이지 즐겨찾기