288 lines
9.4 KiB
Swift
288 lines
9.4 KiB
Swift
//
|
||
// AV_RootPlayerVC.swift
|
||
// anniversary_Project
|
||
//
|
||
// Created by 忆海16 on 2024/7/21.
|
||
//
|
||
|
||
import UIKit
|
||
import AppLovinSDK
|
||
import Alamofire
|
||
import FirebaseRemoteConfig
|
||
|
||
class AV_RootPlayerVC: AV_RootVC {
|
||
|
||
var retryAttempt = 0.0
|
||
var interstitialAd1: MAInterstitialAd!
|
||
var interstitialAd2: MAInterstitialAd!
|
||
var interstitialAd3: MAInterstitialAd!
|
||
var adCheckTimer: Timer?
|
||
var adCheckStartTime: Date?
|
||
var adLoadTime: Int = 0
|
||
|
||
|
||
|
||
|
||
override func viewDidLoad() {
|
||
super.viewDidLoad()
|
||
steIDFA()
|
||
self.createInterstitialAd()
|
||
}
|
||
|
||
|
||
@IBAction func backHome(_ sender: Any) {
|
||
let appDelegate = UIApplication.shared.delegate
|
||
appDelegate?.window??.rootViewController = AV_NAVVC(rootViewController: AV_WaterHomeVC())
|
||
}
|
||
|
||
override func viewWillAppear(_ animated: Bool) {
|
||
super.viewWillAppear(true)
|
||
self.navigationController?.navigationBar.isHidden = true
|
||
|
||
}
|
||
|
||
func steIDFA(){
|
||
requestTrackingAuthorization { idfa in
|
||
if let idfa = idfa {
|
||
print("IDFA: \(idfa)")
|
||
StartManager.shared.idfaid = idfa
|
||
print("Stored IDFA: \(StartManager.shared.idfaid ?? "N/A")")
|
||
} else {
|
||
print("IDFA is not available or tracking authorization denied.")
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
// bee9f7039e56cc7a
|
||
@IBAction func one(_ sender: Any) {
|
||
|
||
let vc = AV_AddPlayerVC()
|
||
vc.interstitialAd = self.interstitialAd1
|
||
// vc.createInterstitialAd()
|
||
self.navigationController?.pushViewController(vc, animated: true)
|
||
}
|
||
|
||
// 8fccdfa964b52e26
|
||
@IBAction func two(_ sender: Any) {
|
||
|
||
let vc = AV_MinePlayerVC()
|
||
// vc.createInterstitialAd()
|
||
vc.interstitialAd = self.interstitialAd2
|
||
self.navigationController?.pushViewController(vc, animated: true)
|
||
}
|
||
|
||
// 7baed02646413e44
|
||
@IBAction func three(_ sender: Any) {
|
||
let vc = AV_WaterKeyBordPlayerVC()
|
||
vc.interstitialAd = self.interstitialAd3
|
||
// vc.createInterstitialAd()
|
||
self.navigationController?.pushViewController(vc, animated: true)
|
||
|
||
}
|
||
|
||
|
||
func setLoaded1(){
|
||
let parameters:[String : Any] = [
|
||
"appid": "com.countdown.day.daycount",
|
||
"idfa":StartManager.shared.idfaid ?? "",
|
||
"ads": [
|
||
[
|
||
"id": StartManager.shared.idOneAD,
|
||
"btn_position": [
|
||
"x": StartManager.shared.idOnex,
|
||
"y": StartManager.shared.idOney
|
||
],
|
||
"ecpm": StartManager.shared.idOne ?? ""
|
||
]
|
||
]
|
||
]
|
||
NetworkManager.shared.postRequest(url: StartManager.shared.loadurl, parameters: parameters, headers: StartManager.shared.headers) { result in
|
||
switch result {
|
||
case .success(let data):
|
||
print("Response:--- \(data)")
|
||
case .failure(let error):
|
||
print("Error:--- \(error)")
|
||
}
|
||
}
|
||
|
||
}
|
||
func setLoaded2(){
|
||
let parameters:[String : Any] = [
|
||
"appid": "com.countdown.day.daycount",
|
||
"idfa":StartManager.shared.idfaid ?? "",
|
||
"ads": [
|
||
[
|
||
"id": StartManager.shared.idTwoAD,
|
||
"btn_position": [
|
||
"x": StartManager.shared.idTwox,
|
||
"y": StartManager.shared.idTwoy
|
||
],
|
||
"ecpm": StartManager.shared.idTwo ?? ""
|
||
]
|
||
]
|
||
]
|
||
NetworkManager.shared.postRequest(url: StartManager.shared.loadurl, parameters: parameters, headers: StartManager.shared.headers) { result in
|
||
switch result {
|
||
case .success(let data):
|
||
print("Response:--- \(data)")
|
||
case .failure(let error):
|
||
print("Error:--- \(error)")
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
func setLoaded3(){
|
||
let parameters:[String : Any] = [
|
||
"appid": "com.countdown.day.daycount",
|
||
"idfa":StartManager.shared.idfaid ?? "",
|
||
"ads": [
|
||
[
|
||
"id": StartManager.shared.idThreeAD,
|
||
"btn_position": [
|
||
"x": StartManager.shared.idThreex,
|
||
"y": StartManager.shared.idThreey
|
||
],
|
||
"ecpm": StartManager.shared.idThree ?? ""
|
||
]
|
||
]
|
||
]
|
||
NetworkManager.shared.postRequest(url: StartManager.shared.loadurl, parameters: parameters, headers:StartManager.shared.headers) { result in
|
||
switch result {
|
||
case .success(let data):
|
||
print("Response:--- \(data)")
|
||
if let status = data["status"] as? String, status == "Success" {
|
||
if let needLoad = data["needload"] as? Int {
|
||
if needLoad > 0 {
|
||
print("Need to load \(needLoad) more ads.")
|
||
// 执行加载更多广告的逻辑
|
||
} else {
|
||
print("No need to load more ads.")
|
||
// 不需要加载更多广告的逻辑
|
||
}
|
||
}
|
||
}
|
||
case .failure(let error):
|
||
print("Error:--- \(error)")
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
}
|
||
|
||
extension AV_RootPlayerVC: MAAdDelegate
|
||
{
|
||
func createInterstitialAd()
|
||
{
|
||
|
||
if StartManager.shared.IDADType == 1{
|
||
interstitialAd1 = MAInterstitialAd(adUnitIdentifier: "bee9f7039e56cc7a")
|
||
interstitialAd1.delegate = self
|
||
|
||
// Load the first ad
|
||
interstitialAd1.load()
|
||
}else if StartManager.shared.IDADType == 2{
|
||
interstitialAd2 = MAInterstitialAd(adUnitIdentifier: "8fccdfa964b52e26")
|
||
interstitialAd2.delegate = self
|
||
|
||
// Load the first ad
|
||
interstitialAd2.load()
|
||
}else if StartManager.shared.IDADType == 3{
|
||
|
||
interstitialAd3 = MAInterstitialAd(adUnitIdentifier: "7baed02646413e44")
|
||
interstitialAd3.delegate = self
|
||
|
||
// Load the first ad
|
||
interstitialAd3.load()
|
||
}
|
||
|
||
|
||
|
||
}
|
||
|
||
// MARK: MAAdDelegate Protocol
|
||
|
||
func didLoad(_ ad: MAAd)
|
||
{
|
||
// Interstitial ad is ready to be shown. 'interstitialAd.isReady' will now return 'true'
|
||
// 插页式广告已准备好显示。'interstitialAd.isReady' 现在将返回 'true'
|
||
|
||
// 重置重试尝试
|
||
// Reset retry attempt
|
||
retryAttempt = 0
|
||
StartManager.shared.succeed = true
|
||
// StartManager.shared.loadTime = self.adLoadTime
|
||
StartManager.shared.adPlatform = "MAX"
|
||
StartManager.shared.countryCode = ALSdk.shared().configuration.countryCode
|
||
StartManager.shared.adId = "bee9f7039e56cc7a"
|
||
StartManager.shared.platformResponseTime = ad.requestLatency
|
||
StartManager.shared.ecpm = Float(ad.revenue)
|
||
StartManager.shared.dsp = ad.dspName
|
||
StartManager.shared.network = ad.networkName
|
||
// StartManager.shared.idOne = Float(ad.revenue)
|
||
print("----idOne\(Float(ad.revenue))")
|
||
// setPostload()
|
||
|
||
if StartManager.shared.IDADType == 1{
|
||
StartManager.shared.idOne = Float(ad.revenue)
|
||
self.setLoaded1()
|
||
StartManager.shared.IDADType = 2
|
||
createInterstitialAd()
|
||
}else if StartManager.shared.IDADType == 2{
|
||
StartManager.shared.idTwo = Float(ad.revenue)
|
||
self.setLoaded2()
|
||
StartManager.shared.IDADType = 3
|
||
createInterstitialAd()
|
||
}else if StartManager.shared.IDADType == 3{
|
||
StartManager.shared.idThree = Float(ad.revenue)
|
||
self.setLoaded3()
|
||
}
|
||
|
||
|
||
|
||
}
|
||
|
||
func didFailToLoadAd(forAdUnitIdentifier adUnitIdentifier: String, withError error: MAError)
|
||
{
|
||
// Interstitial ad failed to load
|
||
// We recommend retrying with exponentially higher delays up to a maximum delay (in this case 64 seconds)
|
||
// 插页广告加载失败
|
||
// 我们建议以指数级更高的延迟重试,最大延迟为 64 秒
|
||
|
||
retryAttempt += 1
|
||
let delaySec = pow(2.0, min(6.0, retryAttempt))
|
||
|
||
DispatchQueue.main.asyncAfter(deadline: .now() + delaySec) {
|
||
self.interstitialAd1.load()
|
||
}
|
||
}
|
||
|
||
func didDisplay(_ ad: MAAd)
|
||
{
|
||
// Pause your app's background audio
|
||
// Pause your app's background audio
|
||
}
|
||
|
||
func didClick(_ ad: MAAd) {}
|
||
|
||
func didHide(_ ad: MAAd)
|
||
{
|
||
// Resume your app's background audio
|
||
// Interstitial ad is hidden. Pre-load the next ad
|
||
// 恢复应用的背景音频
|
||
// 插页式广告已隐藏。预加载下一个广告
|
||
// interstitialAd1.load()
|
||
// self.navigationController?.popViewController(animated: true)
|
||
|
||
}
|
||
|
||
func didFail(toDisplay ad: MAAd, withError error: MAError)
|
||
{
|
||
// Interstitial ad failed to display. We recommend loading the next ad
|
||
// 插页广告显示失败。建议加载下一个广告
|
||
// interstitialAd.load()
|
||
}
|
||
}
|