콘텐츠 상세 - 배너 광고 추가

This commit is contained in:
klaus 2023-09-14 03:14:48 +09:00
parent f6cbaffd3b
commit 26e43bd548
5 changed files with 61 additions and 1 deletions

View File

@ -52,6 +52,12 @@ android {
buildConfigField 'String', 'BOOTPAY_APP_ID', '"64c35be1d25985001dc50c87"'
buildConfigField 'String', 'AGORA_APP_ID', '"e34e40046e9847baba3adfe2b8ffb4f6"'
buildConfigField 'String', 'AGORA_APP_CERTIFICATE', '"15cadeea4ba94ff7b091c9a10f4bf4a6"'
buildConfigField 'String', 'ADMOB_FREE_CONTENT_BANNER_UNIT_ID', '"ca-app-pub-1299501215847962/8351317711"'
// manifest
manifestPlaceholders["ADMOB_APP_ID"] = "ca-app-pub-1299501215847962~1110535210"
resValue 'string', 'admob_free_content_banner_unit_id', 'ca-app-pub-1299501215847962/8351317711'
}
debug {
@ -63,6 +69,12 @@ android {
buildConfigField 'String', 'BOOTPAY_APP_ID', '"6242a7772701800023f68b2e"'
buildConfigField 'String', 'AGORA_APP_ID', '"b96574e191a9430fa54c605528aa3ef7"'
buildConfigField 'String', 'AGORA_APP_CERTIFICATE', '"ae18ade3afcf4086bd4397726eb0654c"'
buildConfigField 'String', 'ADMOB_FREE_CONTENT_BANNER_UNIT_ID', '"ca-app-pub-3940256099942544/6300978111"'
// manifest
manifestPlaceholders["ADMOB_APP_ID"] = "ca-app-pub-1299501215847962~3769074871"
resValue 'string', 'admob_free_content_banner_unit_id', 'ca-app-pub-3940256099942544/6300978111'
}
}
compileOptions {
@ -148,4 +160,6 @@ dependencies {
annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'
implementation "com.michalsvec:single-row-calednar:1.0.0"
implementation 'com.google.android.gms:play-services-ads:22.3.0'
}

View File

@ -135,5 +135,9 @@
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="@string/default_notification_channel_id" />
<!-- [END fcm_default_channel] -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="${ADMOB_APP_ID}" />
</application>
</manifest>

View File

@ -1,10 +1,14 @@
package kr.co.vividnext.sodalive.app
import android.app.Application
import android.content.Context
import android.content.pm.ApplicationInfo
import android.content.pm.PackageManager
import android.os.Build
import androidx.appcompat.app.AppCompatDelegate
import com.google.android.gms.ads.MobileAds
import com.google.android.gms.common.ConnectionResult
import com.google.android.gms.common.GoogleApiAvailability
import com.orhanobut.logger.AndroidLogAdapter
import com.orhanobut.logger.Logger
import kr.co.vividnext.sodalive.BuildConfig
@ -26,6 +30,12 @@ class SodaLiveApp : Application() {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
SharedPreferenceManager.init(applicationContext)
if (isGooglePlayServicesAvailable(this)) {
MobileAds.initialize(this) {
Logger.e("ADMOB 초기화 - ${it.adapterStatusMap}")
}
}
}
private fun isDebuggable(): Boolean {
@ -47,4 +57,10 @@ class SodaLiveApp : Application() {
return debuggable
}
private fun isGooglePlayServicesAvailable(context: Context): Boolean {
val googleApiAvailability = GoogleApiAvailability.getInstance()
val resultCode = googleApiAvailability.isGooglePlayServicesAvailable(context)
return resultCode == ConnectionResult.SUCCESS
}
}

View File

@ -20,6 +20,7 @@ import coil.load
import coil.transform.CircleCropTransformation
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.google.android.gms.ads.AdRequest
import com.google.gson.Gson
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.audio_content.AudioContentPlayService
@ -95,6 +96,7 @@ class AudioContentDetailActivity : BaseActivity<ActivityAudioContentDetailBindin
override fun onResume() {
super.onResume()
binding.adView.resume()
val intentFilter = IntentFilter(Constants.ACTION_AUDIO_CONTENT_RECEIVER)
registerReceiver(audioContentReceiver, intentFilter)
@ -104,8 +106,14 @@ class AudioContentDetailActivity : BaseActivity<ActivityAudioContentDetailBindin
}
override fun onPause() {
super.onPause()
unregisterReceiver(audioContentReceiver)
binding.adView.pause()
super.onPause()
}
override fun onDestroy() {
binding.adView.destroy()
super.onDestroy()
}
override fun setupView() {
@ -262,6 +270,12 @@ class AudioContentDetailActivity : BaseActivity<ActivityAudioContentDetailBindin
}
}
private fun setupAdMob() {
val adRequest = AdRequest.Builder().build()
binding.adView.visibility = View.VISIBLE
binding.adView.loadAd(adRequest)
}
private fun donation(can: Int, message: String) {
viewModel.donation(audioContentId, can, message) {
viewModel.getAudioContentDetail(audioContentId = audioContentId) { finish() }
@ -390,6 +404,8 @@ class AudioContentDetailActivity : BaseActivity<ActivityAudioContentDetailBindin
isAlertPreview = it.creator.creatorId != SharedPreferenceManager.userId &&
!it.existOrdered &&
it.price > 0
if ((!it.existOrdered && it.price > 0) || it.price <= 0) setupAdMob()
}
viewModel.isContentPlayLoopLiveData.observe(this) {

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
@ -168,6 +169,15 @@
tools:src="@drawable/btn_player_repeat" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.gms.ads.AdView
android:id="@+id/ad_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="13.3dp"
android:visibility="gone"
ads:adSize="SMART_BANNER"
ads:adUnitId="@string/admob_free_content_banner_unit_id" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"