No existe el error "AppTrackingTransparency" del módulo

Aug 21 2020

Estoy intentando actualizar mi cuenta de Google AdMob ya que Apple anunció un nuevo marco de transparencia que requiere cambios en las aplicaciones de iOS con el lanzamiento de iOS 14. Actualicé mi pod de Google AdMob a la última versión (7.64.0). Pero, cuando intento usar el siguiente código en el Delegado de la aplicación: -

import AppTrackingTransparency
import AdSupport
...
func requestIDFA() {
    ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in
    // Tracking authorization completed. Start loading ads here.
    // loadAd()
    })
}

Obtuve el siguiente error:-

No such module 'AppTrackingTransparency'

¡Cualquier ayuda será muy apreciada! 🙏

Respuestas

12 AhmedSafadi Aug 21 2020 at 16:15

solo está disponible a partir de Xcode 12, incluida la versión beta.

y usarlo

import AppTrackingTransparency
import AdSupport

if #available(iOS 14, *) {
   ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in
  // Load ads here 
   })
} else {
  // Load ads here 
}

Ejemplo de RewardsVideoAdsManager

class RewardedVideoAdsManager: GADRewardedAd {


static let shared = RewardedVideoAdsManager()

var rewardedAd: GADRewardedAd?

func createAndLoadRewardedAd(unitId: String) -> GADRewardedAd? {
    rewardedAd = GADRewardedAd(adUnitID: unitId)
    let myRequest = GADRequest()
    rewardedAd?.load(myRequest) { error in
        if let error = error {
            print("Loading failed: \(error)")
        } else {
            print("Loading Succeeded")
        }
    }
    return rewardedAd
}

}

Y en mi AppDelegate o Primera pantalla principal

    if #available(iOS 14, *) {
        ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in
            RewardedVideoAdsManager.shared.rewardedAd = RewardedVideoAdsManager.shared.createAndLoadRewardedAd(unitId: "ca-app-pub-8175294120313121/4011630802")
        })
    } else {
        RewardedVideoAdsManager.shared.rewardedAd = RewardedVideoAdsManager.shared.createAndLoadRewardedAd(unitId: "ca-app-pub-8175294120313121/4011630802")
    }