Commit 3cb03996 authored by wanglei's avatar wanglei

[pangle]激励广告

parent 60b29712
......@@ -39,25 +39,29 @@ object GlobalConfig {
*/
const val KEY_SOLAR = ""
// 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_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_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_REWARD get() = if (BuildConfig.DEBUG) "ca-app-pub-3940256099942544/5224354917" else "ca-app-pub-3940256099942544/5224354917"
// max广告位id
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_NATIVE get() = if (BuildConfig.DEBUG) "cc0cc5b36a2608ca" else "cc0cc5b36a2608ca"
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_REWARD get() = if (BuildConfig.DEBUG) "" else ""
// // 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_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_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_REWARD get() = if (BuildConfig.DEBUG) "ca-app-pub-3940256099942544/5224354917" else "ca-app-pub-3940256099942544/5224354917"
//
//
// // max广告位id
// 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_NATIVE get() = if (BuildConfig.DEBUG) "cc0cc5b36a2608ca" else "cc0cc5b36a2608ca"
// 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_REWARD get() = if (BuildConfig.DEBUG) "" else ""
inline val ID_PANGLE_APPLICATION get() = "8025677"
inline val ID_PANGLE_OPEN get() = "890000078"
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(
// var isInBlackList: Boolean = false,
val ut: Int = 0,
var vpnCanUse: Boolean = true,
// var vpnCanUse: Boolean = true,
val adConfigBean: AdConfigBean = AdConfigBean(),
val popupConfigBean: PopupConfigBean = PopupConfigBean(),
val vipConfigBean: VipConfigBean = VipConfigBean(),
// val vipConfigBean: VipConfigBean = VipConfigBean(),
val noEventKey: List<String> = listOf(),
val getConfigInterval: Int = 4,//请求配间隔小时
val guideMode: Int = 0,//引导页模式
// val guideMode: Int = 0,//引导页模式
) {
......
......@@ -4,6 +4,7 @@ import android.app.Activity
import android.content.Context
import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
import androidx.annotation.LayoutRes
//import com.applovin.sdk.AppLovinMediationProvider
//import com.applovin.sdk.AppLovinSdk
......@@ -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.MaxOpenMgr
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.PangleOpenMgr
import com.base.appzxhy.utils.AppPreferences
import com.base.appzxhy.utils.LogEx
import com.base.appzxhy.business.pangle.PangleRewardMgr
import com.base.appzxhy.utils.ToastUtils.toast
import com.bytedance.sdk.openadsdk.api.init.PAGConfig
import com.bytedance.sdk.openadsdk.api.init.PAGSdk
import com.bytedance.sdk.openadsdk.api.init.PAGSdk.PAGInitCallback
//import com.google.android.gms.ads.MobileAds
import com.google.android.gms.ads.identifier.AdvertisingIdClient
//import com.google.android.gms.ads.initialization.AdapterStatus
import java.util.Collections
import java.util.concurrent.Executors
/**
* 广告管理类
......@@ -73,6 +72,13 @@ object AdsMgr {
PangleInterMgr()
}
private val pangleBannerMgr by lazy {
PangleBannerMgr()
}
private val pangleRewardMgr by lazy {
PangleRewardMgr()
}
/**
* 是否初始化
*/
......@@ -268,6 +274,22 @@ object AdsMgr {
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 {
*
* @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) {
parent.visibility = View.GONE
return
......@@ -324,5 +346,7 @@ object AdsMgr {
// if (adsConfigBean.adSwitch) {
// adBannerMgr.show(parent, collapsible, adClose)
// }
pangleBannerMgr.showBanner(parent)
}
}
\ No newline at end of file
......@@ -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
}
override fun onCreate(savedInstanceState: Bundle?) {
// initUMP()
super.onCreate(savedInstanceState)
handleIntentExtras()
}
......@@ -248,17 +247,18 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>(ActivitySplashBinding
when {
!isGuided -> {
isGuided = true
when (ConfigBean.configBean.guideMode) {
0 -> {
// when (ConfigBean.configBean.guideMode) {
// 0 -> {
// goToAc(GuideExperienceActivity::class.java)
// }
//
// 1 -> {
// goToAc(GuideCleanActivity::class.java)
// }
//
// else -> goToAc(MainActivity::class.java)
// }
goToAc(GuideExperienceActivity::class.java)
}
1 -> {
goToAc(GuideCleanActivity::class.java)
}
else -> goToAc(MainActivity::class.java)
}
finish()
}
......
......@@ -30,5 +30,23 @@
android:layout_marginVertical="@dimen/dp_3"
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>
\ 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