从零集成腾讯广告SDK

从零集成腾讯广告SDK

话不多说直接干:
  1. 在我们工程的podfile里新增
pod 'GDTMobSDK'
  1. 在我们的项目里新增一个oc的.h文件用于import 需要用到的文件:
#import "GDTUnifiedInterstitialAd.h"
#import "GDTSplashAd.h"
#import "GDTSDKConfig.h"

在这里插入图片描述
3. 新增文件:GDTAdManager,这里我们用了两种广告类型(1.优量汇插屏, 2.优量汇开屏)复制代码:

import UIKit
//腾讯广告
class AdManagerGDTAdSplash: NSObject {
    private var splashAd: GDTSplashAd!
    var placementId: String?
    var success: (() -> Void)?
    var failure: (() -> Void)?
    
    init(_ placementId: String) {
        GDTSDKConfig.registerAppId("xxxxxxx")//申请的appid
        self.placementId = placementId
    }

    func showSplashAd(success: (() -> Void)? = nil, failure: (() -> Void)? = nil) {
        guard let placementId = self.placementId  else { return }
        self.success = success
        self.failure = failure
        splashAd =  GDTSplashAd.init(placementId: placementId)
        splashAd.delegate = self
        splashAd.fetchDelay = 3
        splashAd.load()
    }
}

extension AdManagerGDTAdSplash: GDTSplashAdDelegate {
//    MARK:GDTSplashAdDelegate
    func splashAdDidLoad(_ splashAd: GDTSplashAd!) {
        var window = UIApplication.shared.keyWindow
        
        if !H.isIOS12AndLow() {
            window = UIApplication.shared.windows.first
        }
        
        if splashAd.isAdValid() {
            splashAd.show(in: window, withBottomView: nil, skip: nil)
        }
    }

    func splashAdSuccessPresentScreen(_ splashAd: GDTSplashAd!) {
        print(#function)
    }
    
    func splashAdFail(toPresent splashAd: GDTSplashAd!, withError error: Error!) {
        print(#function,error ?? "")
        self.splashAd = nil
        self.failure?()
    }
    
    func splashAdExposured(_ splashAd: GDTSplashAd!) {
        print(#function)
    }
    
    func splashAdClicked(_ splashAd: GDTSplashAd!) {
        print(#function)
    }
    
    func splashAdApplicationWillEnterBackground(_ splashAd: GDTSplashAd!) {
        print(#function)
    }
    
    func splashAdWillClosed(_ splashAd: GDTSplashAd!) {
        print(#function)
    }
    
    func splashAdClosed(_ splashAd: GDTSplashAd!) {
        print(#function)
        self.splashAd = nil
        self.success?()
    }
    
    func splashAdDidPresentFullScreenModal(_ splashAd: GDTSplashAd!) {
        print(#function)
    }
    
    func splashAdWillDismissFullScreenModal(_ splashAd: GDTSplashAd!) {
        print(#function)
    }
    
    func splashAdDidDismissFullScreenModal(_ splashAd: GDTSplashAd!) {
        print(#function)
    }
}

class AdManagerGDTAd: NSObject {
    private var interstitial: GDTUnifiedInterstitialAd!
    var placementId: String?
    var success: (() -> Void)?
    var failure: (() -> Void)?

    init(_ placementId: String) {
        GDTSDKConfig.registerAppId("1111398218")
        self.placementId = placementId
    }
    
    func showInterstital(success: @escaping(() -> Void), failure: @escaping(() -> Void)) -> GDTUnifiedInterstitialAd {
        guard let placementId = self.placementId else { return self.interstitial }
        self.success = success
        
        if ((self.interstitial) != nil) {
            self.interstitial.delegate = nil
        }
        self.interstitial = GDTUnifiedInterstitialAd.init(placementId: placementId)
        self.interstitial.delegate = self
        self.interstitial.videoMuted = true // 设置视频是否Mute
        self.interstitial.loadFullScreenAd()// 加载插屏全屏视频广告
        return self.interstitial
    }
}

extension AdManagerGDTAd: GDTUnifiedInterstitialAdDelegate {
    func unifiedInterstitialSuccess(toLoad unifiedInterstitial: GDTUnifiedInterstitialAd) {
        
    }
    
    func unifiedInterstitialClicked(_ unifiedInterstitial: GDTUnifiedInterstitialAd) {
        
    }
    func unifiedInterstitialWillExposure(_ unifiedInterstitial: GDTUnifiedInterstitialAd) {
        
    }
    func unifiedInterstitialDidPresentScreen(_ unifiedInterstitial: GDTUnifiedInterstitialAd) {
        
    }
    func unifiedInterstitialDidDismissScreen(_ unifiedInterstitial: GDTUnifiedInterstitialAd) {
        self.success?()
    }
    func unifiedInterstitialAdDidPresentFullScreenModal(_ unifiedInterstitial: GDTUnifiedInterstitialAd) {
    }
    func unifiedInterstitialWillPresentScreen(_ unifiedInterstitial: GDTUnifiedInterstitialAd) {
        
    }
    func unifiedInterstitialWillLeaveApplication(_ unifiedInterstitial: GDTUnifiedInterstitialAd) {
        
    }
    func unifiedInterstitialFail(toLoad unifiedInterstitial: GDTUnifiedInterstitialAd, error: Error) {
        print("xxxxx=toload",error)
    }
    func unifiedInterstitialFail(toPresent unifiedInterstitial: GDTUnifiedInterstitialAd, error: Error) {
        print("xxxxx=topresent",error)
    }
    func unifiedInterstitialAdDidDismissFullScreenModal(_ unifiedInterstitial: GDTUnifiedInterstitialAd) {
        
    }
    func unifiedInterstitialAdWillPresentFullScreenModal(_ unifiedInterstitial: GDTUnifiedInterstitialAd) {
        
    }
    func unifiedInterstitialAdWillDismissFullScreenModal(_ unifiedInterstitial: GDTUnifiedInterstitialAd) {
       
    }
    func unifiedInterstitialAdViewDidPresentVideoVC(_ unifiedInterstitial: GDTUnifiedInterstitialAd) {
        
    }
    func unifiedInterstitialAdViewDidDismissVideoVC(_ unifiedInterstitial: GDTUnifiedInterstitialAd) {
        
    }
    func unifiedInterstitialAdViewWillPresentVideoVC(_ unifiedInterstitial: GDTUnifiedInterstitialAd) {
        
    }
    func unifiedInterstitialAdViewWillDismissVideoVC(_ unifiedInterstitial: GDTUnifiedInterstitialAd) {
        
    }
    func unifiedInterstitialAd(_ unifiedInterstitial: GDTUnifiedInterstitialAd, playerStatusChanged status: GDTMediaPlayerStatus) {
    }
}
  1. 如果是只集成了一种类型的广告,比如开屏,那我们就可以不用初始化AdManagerGDTAd,直接让上面的代码的placementId等于你申请的placementId例如"7091772179125733"
 init(_ placementId: String) {
       GDTSDKConfig.registerAppId("xxxxxxx")//申请的appid
       self.placementId = "xxxxxx" // 申请的placementId
   }
  1. 如果是不同类型的话,或者调用多次需要不同广告的话,我们需要在controller里初始化的时候输入一下代码:
// 优量汇插屏
   let adManagerGDTAdCalc = AdManagerGDTAd.init("7091772179125733")
   let adManagerGDTAdDetail = AdManagerGDTAd.init("4011278119295553")
   // 优量汇开屏
   let adManagerGDTAdSplashCalc = AdManagerGDTAdSplash("6021872260330766")
   let adManagerGDTAdSplashDetail = AdManagerGDTAdSplash("2041275240436711")
  1. 在你想让他点击某一个按钮的时候或者启动页面的时候展示广告,输入一下代码调用广告(这里我们判断广告是否成功,所以用了callback,成功或者失败):
adManagerGDTAdSplashCalc.showSplashAd {} failure: {}
adManagerGDTAdSplashDetail.showSplashAd() {self.toDetail()} failure: {self.toDetail()}
大功告成看看效果:

在这里插入图片描述

附上优量汇集成教程的网址:https://doc.tradplusad.com/TencentAds
如果有问题可以24小时联系qq:1094781527

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值