我正在tvOS中使用GoolgeInteractiveMediaAds
框架。在此过程的开始,我从委托人那里得到了一个错误:Error loading ads: nil
。我还加载了用Objective C编写的示例Google项目,该项目运行无误。此阶段的代码非常少,我已经比较了两个项目,发现在AppDelegate
和Info.plist
方面没有什么区别(唯一的区别是Swift项目从情节提要中启动) 。
以下是代码的总和。运行setUpAdsLoader
时,立即点击您在底部看到的错误委托。将他们的示例Objective C项目缩减到仅这些行,不会产生此错误。
import UIKit
import GoogleInteractiveMediaAds
class ViewController: UIViewController, IMAAdsLoaderDelegate {
private var adsLoader: IMAAdsLoader?
override func viewDidLoad() {
super.viewDidLoad()
setUpAdsLoader()
}
func setUpAdsLoader() {
self.adsLoader = IMAAdsLoader(settings: nil)
self.adsLoader!.delegate = self
}
func adsLoader(_ loader: IMAAdsLoader!, adsLoadedWith adsLoadedData: IMAAdsLoadedData!) {
// Grab the instance of the IMAAdsManager and set ourselves as the delegate
//adsManager = adsLoadedData.adsManager
//adsManager!.delegate = self
// Create ads rendering settings and tell the SDK to use the in-app browser.
let adsRenderingSettings = IMAAdsRenderingSettings()
adsRenderingSettings.webOpenerPresentingController = self
// Initialize the ads manager.
//adsManager!.initialize(with: adsRenderingSettings)
}
func adsLoader(_ loader: IMAAdsLoader!, failedWith adErrorData: IMAAdLoadingErrorData!) {
print("Error loading ads: \(String(describing: adErrorData.adError.message))")
}
}
更新:我创建了相同的测试项目,但是这次是使用Objective C进行的。工作没有错误。很难相信问题是语言,但是我想知道这两种语言之间是否存在Xcode设置差异?
答案 0 :(得分:1)
我今天在这个问题上苦苦挣扎,发现我在这里描述的是
https://github.com/googleads/googleads-ima-tvos-client-side/issues/4
TL; DR:
如果可能的话,将tvos
短语添加到您的商品组合ID中。
答案 1 :(得分:0)
来自Google的IMA SDK团队:
目前,恐怕我们无法为此提供支持 文档和示例应用程序仅在Obj-c版本上。一种 已针对tvOS Swift版本的IMA SDK提出了功能请求。 但是,我无法确定何时可用。
因此,在可预见的将来,我们可能会在目标C中编写此部分代码。
IMA小组的更新,现在表明这实际上是其SDK中的错误。
我已经将此问题提出给了团队的其他成员。根据讨论, 似乎是我们SDK方面的错误,并且已经传递给 我们的工程团队需要进一步调查。我会更新 线程以获取任何可用反馈