Skip to content

iOS 插屏广告集成

概述

插屏广告是全屏插页广告,在应用自然过渡点(如关卡结束、视频暂停)展示。与开屏不同,插屏可在应用运行过程中的任意时机触发,具有强曝光、高转化特点。

集成步骤

1. 创建并加载插屏广告

swift
import UIKit
import UjuAdCore

final class InterstitialAdHelper {
    private var interstitialAd: UjuAdObject?

    func load(vc: UIViewController) {
        let config = UjuAdConfig(placementId: "YOUR_INTERSTITIAL_PLACEMENT_ID")
        let interstitial = UjuAdObject.getInterstitialObject(vc, config: config)
        interstitial.setAdObjectListener(InterstitialListener())
        self.interstitialAd = interstitial
        interstitial.load()
    }

    func show(vc: UIViewController) {
        // 展示前判断 isReady
        if interstitialAd?.isReady() == true {
            interstitialAd?.show(vc)
        }
    }

    func destroy() {
        interstitialAd?.destroy()
        interstitialAd = nil
    }
}

2. 实现插屏监听器

swift
final class InterstitialListener: InterstitialAdObjectListener, @unchecked Sendable {
    func onLoadSuccess() {
        // 广告加载成功,可在合适时机调用 show()
    }

    func onLoadError(error: UjuException) {
        print("插屏加载失败: \(error.description)")
    }

    func onAdShow() {
        // 广告展示
    }

    func onAdClicked() {
        // 广告被点击
    }

    func onAdPlayComplete() {
        // 插屏播放完成(视频插屏时触发)
    }

    func onAdClosed() {
        // 广告关闭,恢复 App 交互
    }

    func onAdError(error: UjuException) {
        print("插屏展示错误: \(error.description)")
    }
}

UjuAdConfig 配置说明

参数类型必填说明
placementIdString广告位 ID
scenarioKeyString?广告展示场景标识,用于统计
userIdString?用户 ID
customData[String: String]?自定义数据,透传给广告服务端
bidFloorDouble底价(元,CPM),由第三方聚合平台集成时传入,普通集成方无需设置

展示时机

展示时机建议

插屏广告应在应用自然过渡点展示,避免打断用户核心操作:

  • 关卡结束、视频暂停、页面切换等自然停顿点
  • 避免在用户高频交互区域弹出
  • 控制展示频次,避免过度打扰

最佳实践

  1. 预加载:提前 load(),展示时只需 show()
  2. 展示前检查:调用 show() 前务必检查 isReady()
  3. 频次控制:自行控制插屏展示频次,避免影响用户体验
  4. 资源释放:广告关闭后调用 destroy()

常见问题

Q: 插屏广告为什么不显示?

A: 可能的原因:

  • 广告位 ID 不正确
  • 网络连接问题
  • 广告库存不足(错误码 102 noFill
  • 未在 onLoadSuccess 后调用 show(),或未检查 isReady()

Q: 插屏与开屏有何区别?

A: 开屏在 App 启动时展示,由 SplashAdObjectListener 监听,含 onAdDismissed 回调;插屏在应用运行过程中展示,由 InterstitialAdObjectListener 监听,含 onAdPlayComplete 回调。

相关链接