Android 앱(Kotlin)에 Huawei Ads Kit의 보상형 광고 기능 통합
소개
이 기사에서는 Huawei Ads Kit의 보상형 광고 기능을 Android 앱에 통합하는 방법을 알아볼 수 있습니다. 따라서 보상형 광고는 사용자가 인앱 보상을 받는 대가로 시청할 수 있는 전체 화면 동영상 광고입니다.
광고 키트
Huawei Ads는 개발자에게 양질의 광고 콘텐츠를 사용자에게 제공할 수 있는 광범위한 기능을 제공합니다. 이는 대상 고객에게 쉽게 도달하고 사용자 생산성을 측정할 수 있는 가장 좋은 방법입니다. 무료 앱을 게시하고 그것으로 돈을 벌고 싶을 때 매우 유용합니다.
HMS 광고 키트에는 7가지 유형의 광고 키트가 있습니다. 이제 이 애플리케이션에서 보상형 광고를 구현할 수 있습니다.
요구 사항
HMS 종속성을 통합하는 방법
참고: 프로젝트 이름은 사용자가 만든 이름에 따라 다릅니다.
maven { url 'http://developer.huawei.com/repo/' }
classpath 'com.huawei.agconnect:agcp:1.6.0.300'
apply plugin: id 'com.huawei.agconnect'
// Huawei AGC
implementation 'com.huawei.agconnect:agconnect-core:1.6.0.300'
// Huawei Ads Kit
implementation 'com.huawei.hms:ads-lite:13.4.51.300'
// Ads Kit
<uses-permission android:name="android.permission.INTERNET" />
개발로 이동하자
빈 활동으로 Android 스튜디오에서 프로젝트를 생성하여 코딩을 시작하겠습니다.
MainActivity.kt에서 광고에 대한 비즈니스 로직을 찾을 수 있습니다.
class MainActivity : AppCompatActivity() {
companion object {
private const val PLUS_SCORE = 1
private const val MINUS_SCORE = 5
private const val RANGE = 2
}
private var rewardedTitle: TextView? = null
private var scoreView: TextView? = null
private var reStartButton: Button? = null
private var watchAdButton: Button? = null
private var rewardedAd: RewardAd? = null
private var score = 1
private val defaultScore = 10
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
title = getString(R.string.reward_ad)
rewardedTitle = findViewById(R.id.text_reward)
rewardedTitle!!.setText(R.string.reward_ad_title)
// Load a rewarded ad.
loadRewardAd()
// Load a score view.
loadScoreView()
// Load the button for watching a rewarded ad.
loadWatchButton()
// Load the button for starting a game.
loadPlayButton()
}
// Load a rewarded ad.
private fun loadRewardAd() {
if (rewardedAd == null) {
rewardedAd = RewardAd(this@MainActivity, getString(R.string.ad_id_reward))
}
val rewardAdLoadListener: RewardAdLoadListener = object : RewardAdLoadListener() {
override fun onRewardAdFailedToLoad(errorCode: Int) {
showToast("onRewardAdFailedToLoad errorCode is :$errorCode");
}
override fun onRewardedLoaded() {
showToast("onRewardedLoaded")
}
}
rewardedAd!!.loadAd(AdParam.Builder().build(), rewardAdLoadListener)
}
// Display a rewarded ad.
private fun rewardAdShow() {
if (rewardedAd!!.isLoaded) {
rewardedAd!!.show(this@MainActivity, object : RewardAdStatusListener() {
override fun onRewardAdClosed() {
showToast("onRewardAdClosed")
loadRewardAd()
}
override fun onRewardAdFailedToShow(errorCode: Int) {
showToast("onRewardAdFailedToShow errorCode is :$errorCode")
}
override fun onRewardAdOpened() {
showToast("onRewardAdOpened")
}
override fun onRewarded(reward: Reward) {
// You are advised to grant a reward immediately and at the same time, check whether the reward
// takes effect on the server. If no reward information is configured, grant a reward based on the
// actual scenario.
val addScore = if (reward.amount == 0) defaultScore else reward.amount
showToast("Watch video show finished , add $addScore scores")
score += addScore
setScore(score)
loadRewardAd()
}
})
}
}
// Set a Score
private fun setScore(score: Int) {
scoreView!!.text = "Score:$score"
}
// Load the button for watching a rewarded ad
private fun loadWatchButton() {
watchAdButton = findViewById(R.id.show_video_button)
watchAdButton!!.setOnClickListener(View.OnClickListener { rewardAdShow() })
}
// Load the button for starting a game
private fun loadPlayButton() {
reStartButton = findViewById(R.id.play_button)
reStartButton!!.setOnClickListener(View.OnClickListener { play() })
}
private fun loadScoreView() {
scoreView = findViewById(R.id.score_count_text)
scoreView!!.text = "Score:$score"
}
// Used to play a game
private fun play() {
// If the score is 0, a message is displayed, asking users to watch the ad in exchange for scores.
if (score == 0) {
Toast.makeText(this@MainActivity, "Watch video ad to add score", Toast.LENGTH_SHORT).show()
return
}
// The value 0 or 1 is returned randomly. If the value is 1, the score increases by 1. If the value is 0, the
// score decreases by 5. If the score is a negative number, the score is set to 0.
val random = Random().nextInt(RANGE)
if (random == 1) {
score += PLUS_SCORE
Toast.makeText(this@MainActivity, "You win!", Toast.LENGTH_SHORT).show()
} else {
score -= MINUS_SCORE
score = if (score < 0) 0 else score
Toast.makeText(this@MainActivity, "You lose!", Toast.LENGTH_SHORT).show()
}
setScore(score)
}
private fun showToast(text: String) {
runOnUiThread {
Toast.makeText(this@MainActivity, text, Toast.LENGTH_SHORT).show()
}
}
}
activity_main.xml에서 UI 화면을 만들 수 있습니다.
<?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="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/text_reward"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:textAlignment="center"
android:textSize="20sp"
android:text="This is rewarded ads sample"/>
<Button
android:id="@+id/play_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/text_reward"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="Play" />
<Button
android:id="@+id/show_video_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/play_button"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="Watch Video" />
<TextView
android:id="@+id/score_count_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/show_video_button"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"
android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>
데모
팁과 요령
결론
이 기사에서는 Huawei Analytics Kit와 Ads Kit를 Book Reading 앱에 통합하는 방법을 배웠습니다. 그래서 저는 이 책 읽기 앱에 대한 일련의 기사를 제공할 것이며, 다음 기사에서는 다른 Huawei 키트를 통합할 것입니다.
이 기사를 읽으셨기를 바랍니다. 도움이 되셨다면 좋아요와 댓글 부탁드립니다.
참조
광고 키트 - Rewarded Ads
광고 키트 – Training Video
Reference
이 문제에 관하여(Android 앱(Kotlin)에 Huawei Ads Kit의 보상형 광고 기능 통합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/hmscommunity/search-the-hospitals-using-huawei-map-kit-site-kit-and-location-kit-in-patient-tracking-android-app-kotlin-part-5-5cio텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)