Commit 3cb03996 authored by wanglei's avatar wanglei

[pangle]激励广告

parent 60b29712
...@@ -39,25 +39,29 @@ object GlobalConfig { ...@@ -39,25 +39,29 @@ object GlobalConfig {
*/ */
const val KEY_SOLAR = "" const val KEY_SOLAR = ""
// admob广告位id // // admob广告位id
inline val ID_ADMOB_APPLICATION get() = if (BuildConfig.DEBUG) "ca-app-pub-3940256099942544~3347511713" else "ca-app-pub-3940256099942544~3347511713" // inline val ID_ADMOB_APPLICATION get() = if (BuildConfig.DEBUG) "ca-app-pub-3940256099942544~3347511713" else "ca-app-pub-3940256099942544~3347511713"
inline val ID_ADMOB_INTER get() = if (BuildConfig.DEBUG) "ca-app-pub-3940256099942544/1033173712" else "ca-app-pub-3940256099942544/1033173712" // inline val ID_ADMOB_INTER get() = if (BuildConfig.DEBUG) "ca-app-pub-3940256099942544/1033173712" else "ca-app-pub-3940256099942544/1033173712"
inline val ID_ADMOB_NATIVE get() = if (BuildConfig.DEBUG) "ca-app-pub-3940256099942544/2247696110" else "ca-app-pub-3940256099942544/2247696110" // inline val ID_ADMOB_NATIVE get() = if (BuildConfig.DEBUG) "ca-app-pub-3940256099942544/2247696110" else "ca-app-pub-3940256099942544/2247696110"
inline val ID_ADMOB_OPEN get() = if (BuildConfig.DEBUG) "ca-app-pub-3940256099942544/9257395921" else "ca-app-pub-3940256099942544/9257395921" // inline val ID_ADMOB_OPEN get() = if (BuildConfig.DEBUG) "ca-app-pub-3940256099942544/9257395921" else "ca-app-pub-3940256099942544/9257395921"
inline val ID_ADMOB_BANNER get() = if (BuildConfig.DEBUG) "ca-app-pub-3940256099942544/9214589741" else "ca-app-pub-3940256099942544/9214589741" // inline val ID_ADMOB_BANNER get() = if (BuildConfig.DEBUG) "ca-app-pub-3940256099942544/9214589741" else "ca-app-pub-3940256099942544/9214589741"
inline val ID_ADMOB_REWARD get() = if (BuildConfig.DEBUG) "ca-app-pub-3940256099942544/5224354917" else "ca-app-pub-3940256099942544/5224354917" // inline val ID_ADMOB_REWARD get() = if (BuildConfig.DEBUG) "ca-app-pub-3940256099942544/5224354917" else "ca-app-pub-3940256099942544/5224354917"
//
//
// max广告位id // // max广告位id
inline val KEY_MAX get() = if (BuildConfig.DEBUG) "GGPreND6SRmCt1zJgn5faiLGD8c2PVGPLgPpSg7cHanVTud1DhtuI9MmteTqlEviaJ57WnxW68kQDaATJ5z3cW" else "GGPreND6SRmCt1zJgn5faiLGD8c2PVGPLgPpSg7cHanVTud1DhtuI9MmteTqlEviaJ57WnxW68kQDaATJ5z3cW" // inline val KEY_MAX get() = if (BuildConfig.DEBUG) "GGPreND6SRmCt1zJgn5faiLGD8c2PVGPLgPpSg7cHanVTud1DhtuI9MmteTqlEviaJ57WnxW68kQDaATJ5z3cW" else "GGPreND6SRmCt1zJgn5faiLGD8c2PVGPLgPpSg7cHanVTud1DhtuI9MmteTqlEviaJ57WnxW68kQDaATJ5z3cW"
inline val ID_MAX_INTER get() = if (BuildConfig.DEBUG) "3a9efc39d536ffe6" else "3a9efc39d536ffe6" // inline val ID_MAX_INTER get() = if (BuildConfig.DEBUG) "3a9efc39d536ffe6" else "3a9efc39d536ffe6"
inline val ID_MAX_NATIVE get() = if (BuildConfig.DEBUG) "cc0cc5b36a2608ca" else "cc0cc5b36a2608ca" // inline val ID_MAX_NATIVE get() = if (BuildConfig.DEBUG) "cc0cc5b36a2608ca" else "cc0cc5b36a2608ca"
inline val ID_MAX_OPEN get() = if (BuildConfig.DEBUG) "ad4efa4a0bc2a585" else "ad4efa4a0bc2a585" // inline val ID_MAX_OPEN get() = if (BuildConfig.DEBUG) "ad4efa4a0bc2a585" else "ad4efa4a0bc2a585"
inline val ID_MAX_BANNER get() = if (BuildConfig.DEBUG) "" else "" // inline val ID_MAX_BANNER get() = if (BuildConfig.DEBUG) "" else ""
inline val ID_MAX_REWARD get() = if (BuildConfig.DEBUG) "" else "" // inline val ID_MAX_REWARD get() = if (BuildConfig.DEBUG) "" else ""
inline val ID_PANGLE_APPLICATION get() = "8025677" inline val ID_PANGLE_APPLICATION get() = "8025677"
inline val ID_PANGLE_OPEN get() = "890000078" inline val ID_PANGLE_OPEN get() = "890000078"
inline val ID_PANGLE_INTER get() = "980088188" inline val ID_PANGLE_INTER get() = "980088188"
inline val ID_PANGLE_REWARDED get() = "980088192"
inline val ID_PANGLE_BANNER_300X250 get() = "980088196"
inline val ID_PANGLE_BANNER_320X50 get() = "980099802"
} }
\ No newline at end of file
...@@ -8,13 +8,13 @@ data class ConfigBean( ...@@ -8,13 +8,13 @@ data class ConfigBean(
// var isInBlackList: Boolean = false, // var isInBlackList: Boolean = false,
val ut: Int = 0, val ut: Int = 0,
var vpnCanUse: Boolean = true, // var vpnCanUse: Boolean = true,
val adConfigBean: AdConfigBean = AdConfigBean(), val adConfigBean: AdConfigBean = AdConfigBean(),
val popupConfigBean: PopupConfigBean = PopupConfigBean(), val popupConfigBean: PopupConfigBean = PopupConfigBean(),
val vipConfigBean: VipConfigBean = VipConfigBean(), // val vipConfigBean: VipConfigBean = VipConfigBean(),
val noEventKey: List<String> = listOf(), val noEventKey: List<String> = listOf(),
val getConfigInterval: Int = 4,//请求配间隔小时 val getConfigInterval: Int = 4,//请求配间隔小时
val guideMode: Int = 0,//引导页模式 // val guideMode: Int = 0,//引导页模式
) { ) {
......
...@@ -4,6 +4,7 @@ import android.app.Activity ...@@ -4,6 +4,7 @@ import android.app.Activity
import android.content.Context import android.content.Context
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.FrameLayout
import androidx.annotation.LayoutRes import androidx.annotation.LayoutRes
//import com.applovin.sdk.AppLovinMediationProvider //import com.applovin.sdk.AppLovinMediationProvider
//import com.applovin.sdk.AppLovinSdk //import com.applovin.sdk.AppLovinSdk
...@@ -23,19 +24,17 @@ import com.base.appzxhy.bean.config.ConfigBean.Companion.configBean ...@@ -23,19 +24,17 @@ import com.base.appzxhy.bean.config.ConfigBean.Companion.configBean
//import com.base.appzxhy.business.ads.applovin.MaxNativeMgr //import com.base.appzxhy.business.ads.applovin.MaxNativeMgr
//import com.base.appzxhy.business.ads.applovin.MaxOpenMgr //import com.base.appzxhy.business.ads.applovin.MaxOpenMgr
import com.base.appzxhy.business.helper.EventUtils import com.base.appzxhy.business.helper.EventUtils
import com.base.appzxhy.business.pangle.PangleBannerMgr
import com.base.appzxhy.business.pangle.PangleInterMgr import com.base.appzxhy.business.pangle.PangleInterMgr
import com.base.appzxhy.business.pangle.PangleOpenMgr import com.base.appzxhy.business.pangle.PangleOpenMgr
import com.base.appzxhy.utils.AppPreferences import com.base.appzxhy.business.pangle.PangleRewardMgr
import com.base.appzxhy.utils.LogEx
import com.base.appzxhy.utils.ToastUtils.toast import com.base.appzxhy.utils.ToastUtils.toast
import com.bytedance.sdk.openadsdk.api.init.PAGConfig import com.bytedance.sdk.openadsdk.api.init.PAGConfig
import com.bytedance.sdk.openadsdk.api.init.PAGSdk import com.bytedance.sdk.openadsdk.api.init.PAGSdk
import com.bytedance.sdk.openadsdk.api.init.PAGSdk.PAGInitCallback import com.bytedance.sdk.openadsdk.api.init.PAGSdk.PAGInitCallback
//import com.google.android.gms.ads.MobileAds //import com.google.android.gms.ads.MobileAds
import com.google.android.gms.ads.identifier.AdvertisingIdClient
//import com.google.android.gms.ads.initialization.AdapterStatus //import com.google.android.gms.ads.initialization.AdapterStatus
import java.util.Collections
import java.util.concurrent.Executors
/** /**
* 广告管理类 * 广告管理类
...@@ -73,6 +72,13 @@ object AdsMgr { ...@@ -73,6 +72,13 @@ object AdsMgr {
PangleInterMgr() PangleInterMgr()
} }
private val pangleBannerMgr by lazy {
PangleBannerMgr()
}
private val pangleRewardMgr by lazy {
PangleRewardMgr()
}
/** /**
* 是否初始化 * 是否初始化
*/ */
...@@ -268,6 +274,22 @@ object AdsMgr { ...@@ -268,6 +274,22 @@ object AdsMgr {
pangleInterMgr.show(activity, showCallBack) pangleInterMgr.show(activity, showCallBack)
} }
/**
* 展示激励
*/
fun showReward(
activity: Activity,
showCallBack: AdsShowCallBack? = null,
) {
eventAdUt()
if (!adsConfigBean.isAdShow) {
showCallBack?.failed()
return
}
pangleRewardMgr.show(activity, showCallBack)
}
/** /**
* 展示原生广告 * 展示原生广告
* *
...@@ -311,7 +333,7 @@ object AdsMgr { ...@@ -311,7 +333,7 @@ object AdsMgr {
* *
* @param parent 展示广告的父布局容器 * @param parent 展示广告的父布局容器
*/ */
fun showBanner(parent: ViewGroup, collapsible: Boolean = true, adClose: (() -> Unit)? = null) { fun showBanner(parent: FrameLayout, collapsible: Boolean = true, adClose: (() -> Unit)? = null) {
if (!adsConfigBean.isAdShow) { if (!adsConfigBean.isAdShow) {
parent.visibility = View.GONE parent.visibility = View.GONE
return return
...@@ -324,5 +346,7 @@ object AdsMgr { ...@@ -324,5 +346,7 @@ object AdsMgr {
// if (adsConfigBean.adSwitch) { // if (adsConfigBean.adSwitch) {
// adBannerMgr.show(parent, collapsible, adClose) // adBannerMgr.show(parent, collapsible, adClose)
// } // }
pangleBannerMgr.showBanner(parent)
} }
} }
\ No newline at end of file
...@@ -47,6 +47,18 @@ class PangleActivity : AppCompatActivity() { ...@@ -47,6 +47,18 @@ class PangleActivity : AppCompatActivity() {
}) })
} }
binding.showReward.setOnClickListener {
AdsMgr.showReward(this, showCallBack = object : AdsShowCallBack() {
override fun next() {
}
})
}
binding.showBanner.setOnClickListener {
AdsMgr.showBanner(binding.flBanner)
}
} }
......
package com.base.appzxhy.business.pangle
import android.view.Gravity
import android.widget.FrameLayout
import com.base.appzxhy.GlobalConfig.ID_PANGLE_BANNER_300X250
import com.base.appzxhy.GlobalConfig.ID_PANGLE_BANNER_320X50
import com.bytedance.sdk.openadsdk.api.banner.PAGBannerAd
import com.bytedance.sdk.openadsdk.api.banner.PAGBannerAdInteractionListener
import com.bytedance.sdk.openadsdk.api.banner.PAGBannerAdLoadListener
import com.bytedance.sdk.openadsdk.api.banner.PAGBannerRequest
import com.bytedance.sdk.openadsdk.api.banner.PAGBannerSize.BANNER_W_300_H_250
import com.bytedance.sdk.openadsdk.api.banner.PAGBannerSize.BANNER_W_320_H_50
class PangleBannerMgr {
fun showBanner(fl: FrameLayout) {
fl.removeAllViews()
val bannerRequest = PAGBannerRequest(BANNER_W_320_H_50)
PAGBannerAd.loadAd(ID_PANGLE_BANNER_320X50, bannerRequest, object : PAGBannerAdLoadListener {
override fun onError(code: Int, message: String?) {
fl.removeAllViews()
}
override fun onAdLoaded(bannerAd: PAGBannerAd?) {
bannerAd ?: return
val mPAGBannerAd = bannerAd
mPAGBannerAd.setAdInteractionListener(object : PAGBannerAdInteractionListener {
override fun onAdShowed() {
}
override fun onAdClicked() {
}
override fun onAdDismissed() {
}
})
val params = FrameLayout.LayoutParams(
FrameLayout.LayoutParams.MATCH_PARENT,
FrameLayout.LayoutParams.WRAP_CONTENT
)
params.gravity = Gravity.CENTER
fl.addView(mPAGBannerAd.bannerView, params)
}
})
}
}
\ No newline at end of file
package com.base.appzxhy.business.pangle
import android.app.Activity
import com.base.appzxhy.GlobalConfig
import com.base.appzxhy.business.ads.AdsShowCallBack
import com.base.appzxhy.utils.LogEx
import com.bytedance.sdk.openadsdk.api.reward.PAGRewardItem
import com.bytedance.sdk.openadsdk.api.reward.PAGRewardedAd
import com.bytedance.sdk.openadsdk.api.reward.PAGRewardedAdInteractionListener
import com.bytedance.sdk.openadsdk.api.reward.PAGRewardedAdLoadListener
import com.bytedance.sdk.openadsdk.api.reward.PAGRewardedRequest
class PangleRewardMgr {
private val TAG = "PangleRewardMgr"
private var mPAGRewardedAd: PAGRewardedAd? = null
private var showCallBack: AdsShowCallBack? = null
fun load(callback: ((flag: Boolean) -> Unit)? = null) {
PAGRewardedAd.loadAd(
GlobalConfig.ID_PANGLE_REWARDED,
PAGRewardedRequest(),
object : PAGRewardedAdLoadListener {
override fun onError(code: Int, message: String?) {
LogEx.logDebug(TAG, "loadAd onError code=$code message=$message")
callback?.invoke(false)
}
override fun onAdLoaded(ad: PAGRewardedAd?) {
LogEx.logDebug(TAG, "onAdLoaded")
mPAGRewardedAd = ad
callback?.invoke(true)
}
})
}
fun show(activity: Activity, showCallBack: AdsShowCallBack?) {
if (activity.isFinishing || activity.isDestroyed) {
return
}
this.showCallBack = showCallBack
if (mPAGRewardedAd == null) {
LogEx.logDebug(TAG, "mPAGRewardedAd load")
load {
if (it) {
showReadyAd(activity)
} else {
showCallBack?.adFailed()
}
}
} else {
LogEx.logDebug(TAG, "mPAGRewardedAd ready")
showReadyAd(activity)
}
}
private fun showReadyAd(ac: Activity) {
if (ac.isFinishing || ac.isDestroyed) {
return
}
if (mPAGRewardedAd == null) {
showCallBack?.failed()
return
}
LogEx.logDebug(TAG, "ttAppOpenAd show")
mPAGRewardedAd?.setAdInteractionListener(object : PAGRewardedAdInteractionListener {
override fun onAdShowed() {
showCallBack?.show()
mPAGRewardedAd = null
load()
}
override fun onAdClicked() {
}
override fun onAdDismissed() {
showCallBack?.close()
}
override fun onUserEarnedReward(p0: PAGRewardItem?) {
}
override fun onUserEarnedRewardFail(p0: Int, p1: String?) {
}
})
mPAGRewardedAd?.show(ac)
}
}
\ No newline at end of file
...@@ -67,7 +67,6 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(ActivitySplashBinding ...@@ -67,7 +67,6 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(ActivitySplashBinding
} }
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
// initUMP()
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
handleIntentExtras() handleIntentExtras()
} }
...@@ -248,17 +247,18 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(ActivitySplashBinding ...@@ -248,17 +247,18 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(ActivitySplashBinding
when { when {
!isGuided -> { !isGuided -> {
isGuided = true isGuided = true
when (ConfigBean.configBean.guideMode) { // when (ConfigBean.configBean.guideMode) {
0 -> { // 0 -> {
goToAc(GuideExperienceActivity::class.java) // goToAc(GuideExperienceActivity::class.java)
} // }
//
1 -> { // 1 -> {
goToAc(GuideCleanActivity::class.java) // goToAc(GuideCleanActivity::class.java)
} // }
//
else -> goToAc(MainActivity::class.java) // else -> goToAc(MainActivity::class.java)
} // }
goToAc(GuideExperienceActivity::class.java)
finish() finish()
} }
......
...@@ -30,5 +30,23 @@ ...@@ -30,5 +30,23 @@
android:layout_marginVertical="@dimen/dp_3" android:layout_marginVertical="@dimen/dp_3"
android:text="展示插页" /> android:text="展示插页" />
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/showReward"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="@dimen/dp_3"
android:text="展示激励" />
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/showBanner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="@dimen/dp_3"
android:text="展示banner" />
<FrameLayout
android:id="@+id/flBanner"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout> </LinearLayout>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment