初步添加 ios 广告逻辑
This commit is contained in:
108
ios/Classes/Page/FAQRewardVideoPage.swift
Normal file
108
ios/Classes/Page/FAQRewardVideoPage.swift
Normal 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("视频播放结束")
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user