Reputation: 11
I updated Google-Mobile-Ads-SDK v-7* to v-8* in my SwiftUI application. After updated, I am facing these errors for representing banner ads.
my code is
struct GADBannerViewControllerForSpeedometer: UIViewControllerRepresentable {
func makeUIViewController(context: Context) -> UIViewController {
let view = GADBannerView(adSize: kGADAdSizeBanner) // *Error: Cannot find 'GADBannerView' in scope*
let viewController = UIViewController()
//https://developers.google.com/admob/android/test-ads#sample_ad_units
view.adUnitID = "ca-app-pub-3940256099942544/2934735716"
view.rootViewController = viewController
viewController.view.addSubview(view)
viewController.view.frame = CGRect(origin: .zero, size: kGADAdSizeBanner.size) // *Error: Cannot find 'kGADAdSizeBanner' in scope*
view.load(GADRequest()) // *Error: Cannot find 'GADRequest' in scope*
return viewController
}
func updateUIViewController(_ uiViewController: UIViewController, context: Context) {}
}
I did not find any solution, in fact, google documentation is difficult to implement this new changes.
Upvotes: 1
Views: 1350
Reputation: 1154
final class BannerVC: UIViewControllerRepresentable {
init(size: CGSize) {
self.size = size
}
var size: CGSize
func makeUIViewController(context: Context) -> UIViewController {
let view = GADBannerView(adSize: GADAdSizeFromCGSize(size))
let viewController = UIViewController()
view.adUnitID = "..."
view.rootViewController = viewController
viewController.view.addSubview(view)
viewController.view.frame = CGRect(origin: .zero, size: size)
ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in
let gadRequest = GADRequest()
DispatchQueue.main.async {
gadRequest.scene = UIApplication.shared.connectedScenes.first as? UIWindowScene
}
view.load(gadRequest)
})
return viewController
}
func updateUIViewController(_ uiViewController: UIViewController, context: Context) {}
}
Implement banner where you need
BannerVC(size: CGSize(width: UIScreen.main.bounds.width, height: 60))
.frame(width: UIScreen.main.bounds.width,
height: 60,
alignment: .center)
Upvotes: 2