初步添加 ios 广告逻辑

This commit is contained in:
Jin857
2024-10-23 17:03:18 +08:00
parent 578c1974c5
commit 2345b719dd
29 changed files with 946 additions and 67 deletions

View File

@@ -0,0 +1,108 @@
//
// FAQRewardVideoPage.swift
// Pods
//
// Created by Jin on 10/23/24.
//
import UIKit
import Flutter
//
class FAQRewardVideoPage: FAQBaseAdPage, GDTRewardedVideoAdDelegate {
// 广
var rvad: GDTRewardVideoAd?
//
var customData: String?
//
var userId: String?
// 广
override func loadAd(call: FlutterMethodCall) {
guard let arguments = call.arguments as? [String: Any],
let customData = arguments["customData"] as? String,
let userId = arguments["userId"] as? String,
let playMuted = arguments["playMuted"] as? Bool else {
return
}
self.customData = customData
self.userId = userId
// 广
self.rvad = GDTRewardVideoAd(placementId: self.posId)
self.rvad?.delegate = self
self.rvad?.videoMuted = playMuted
// serverSideVerificationOptions
let ssv = GDTServerSideVerificationOptions()
ssv.userIdentifier = self.userId
ssv.customRewardString = self.customData
self.rvad?.serverSideVerificationOptions = ssv
self.rvad?.load()
}
// MARK: - GDTRewardVideoAdDelegate
func gdt_rewardVideoAdDidLoad(_ rewardedVideoAd: GDTRewardVideoAd) {
print(#function)
if let controller = UIApplication.shared.keyWindow?.rootViewController {
self.rvad?.show(fromRootViewController: controller)
// 广
self.sendEventAction(onAdLoaded)
}
}
func gdt_rewardVideoAdVideoDidLoad(_ rewardedVideoAd: GDTRewardVideoAd) {
print(#function)
}
func gdt_rewardVideoAdWillVisible(_ rewardedVideoAd: GDTRewardVideoAd) {
print(#function)
// 广
self.sendEventAction(onAdPresent)
}
func gdt_rewardVideoAdDidExposed(_ rewardedVideoAd: GDTRewardVideoAd) {
print(#function)
print("广告已曝光")
// 广
self.sendEventAction(onAdExposure)
}
func gdt_rewardVideoAdDidClose(_ rewardedVideoAd: GDTRewardVideoAd) {
print(#function)
print("广告已关闭")
// 广
self.sendEventAction(onAdClosed)
}
func gdt_rewardVideoAdDidClicked(_ rewardedVideoAd: GDTRewardVideoAd) {
print(#function)
print("广告已点击")
// 广
self.sendEventAction(onAdClicked)
}
func gdt_rewardVideoAd(_ rewardedVideoAd: GDTRewardVideoAd, didFailWithError error: Error) {
print(#function)
print("ERROR: \(error.localizedDescription)")
// 广
self.sendErrorEvent(errCode: (error as NSError).code, errMsg: error.localizedDescription)
}
func gdt_rewardVideoAdDidRewardEffective(_ rewardedVideoAd: GDTRewardVideoAd, info: [AnyHashable: Any]) {
print(#function)
if let transId = info["GDT_TRANS_ID"] as? String {
print("播放达到激励条件 transid: \(transId)")
//
let event = FAQAdRewardEvent(adId: self.posId, transId: transId, customData: self.customData!, userId: self.userId!)
self.sendEvent(event)
}
}
func gdt_rewardVideoAdDidPlayFinish(_ rewardedVideoAd: GDTRewardVideoAd) {
print(#function)
print("视频播放结束")
}
}