facebook / facebook/facebook-ios-sdk
ATE True Status Not Displayed & SDK Upgrade Warning Still Persisting
- Dominant language
- Swift
- Stars
- 8.1k
- Forks
- 3.7k
- PR merge metrics
- No merged PRs in 30d
Description
### Checklist before submitting a bug report
- [x] I've updated to the latest released version of the SDK
- [x] I've searched for existing [GitHub issues](https://github.com/facebook/facebook-ios-sdk/issues)
- [x] I've looked for existing answers on [Stack Overflow](https://facebook.stackoverflow.com), the [Facebook Developer Community Forum](https://developers.facebook.com/community/) and the [Facebook Developers Group](https://www.facebook.com/groups/fbdevelopers)
- [x] I've read the [Code of Conduct](https://github.com/facebook/facebook-ios-sdk/blob/main/CODE_OF_CONDUCT.md)
- [x] This issue is not security related and can safely be disclosed publicly on GitHub
### Xcode version
16.4
### Facebook iOS SDK version
18.0.0
### Dependency Manager
SPM
### SDK Framework
Core
### Goals
I aim to resolve two issues regarding Facebook iOS SDK integration:
1. The ATE (Advertiser Tracking Enabled) True Status Rate is **not being displayed** in Meta Events Manager for iOS 14.5+ devices.
2. Despite upgrading to SDK version 18.0 and implementing all necessary updates as instructed in [this guide](https://www.facebook.com/business/help/2750680505215705/) and [the official docs](https://developers.facebook.com/docs/app-events/guides/advertising-tracking-enabled/), I **still receive a warning** prompting me to update my SDK in Meta’s dashboard.
Both issues persist even though I believe the implementation meets the latest Meta SDK requirements.
### Expected results
1. The ATE True Status Rate should be shown properly in Meta Events Manager.
2. The upgrade warning should no longer be displayed in Meta dashboard since I am using SDK 18.0 and followed the implementation guide.
### Actual results
1. The ATE True Status Rate continues to appear as unavailable.
2. The dashboard still warns me to upgrade to the latest SDK, even though I'm already using version 18.0 with SPM and have followed Meta's guidelines.
### Steps to reproduce
1. Integrate Facebook SDK 18.0 using Swift Package Manager.
2. Configure AppDelegate and Info.plist as per Meta's documentation.
3. Wait for ATT prompt response and initialize SDKs accordingly.
4. Review Meta Events Manager and Dashboard.
### Code samples & details
```swift
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
Settings.shared.isAutoLogAppEventsEnabled = false
if #available(iOS 17, *) {
print("iOS 17+ detected - Facebook SDK uses ATTrackingManager status automatically")
} else {
Settings.shared.isAdvertiserTrackingEnabled = false
}
Settings.shared.isAdvertiserIDCollectionEnabled = false
ApplicationDelegate.shared.application(
application,
didFinishLaunchingWithOptions: launchOptions
)
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
self.requestATTAndStartSDKs()
}
return true
}
func requestATTAndStartSDKs() {
print("📡 ATT prompt başlatılıyor...")
if #available(iOS 14, *) {
ATTrackingManager.requestTrackingAuthorization { status in
switch status {
case .authorized:
Purchases.shared.attribution.collectDeviceIdentifiers()
if #available(iOS 17, *) {
print("✅ iOS 17+ - FB SDK uses ATTrackingManager")
} else {
Settings.shared.isAdvertiserTrackingEnabled = true
}
Settings.shared.isAdvertiserIDCollectionEnabled = true
case .denied, .restricted, .notDetermined:
if #available(iOS 17, *) {
print("🚫 iOS 17+ - FB SDK uses ATTrackingManager")
} else {
Settings.shared.isAdvertiserTrackingEnabled = false
}
Settings.shared.isAdvertiserIDCollectionEnabled = false
@unknown default:
if #available(iOS 17, *) {
print("⚠️ iOS 17+ - FB SDK uses ATTrackingManager")
} else {
Settings.shared.isAdvertiserTrackingEnabled = false
}
Settings.shared.isAdvertiserIDCollectionEnabled = false
}
Settings.shared.isAutoLogAppEventsEnabled = true
Purchases.shared.attribution.setAppsflyerID(AppsFlyerLib.shared().getAppsFlyerUID())
AppsFlyerLib.shared().start { result, error in
if let error = error {
print("❌ AppsFlyer start error: \(error.localizedDescription)")
} else {
print("✅ AppsFlyer started after ATT response: \(result ?? [:])")
}
}
}
} else {
Settings.shared.isAutoLogAppEventsEnabled = true
if #available(iOS 17, *) {
print("🧠 iOS 17+ - FB SDK uses ATTrackingManager")
} else {
Settings.shared.isAdvertiserTrackingEnabled = false
}
Settings.shared.isAdvertiserIDCollectionEnabled = false
AppsFlyerLib.shared().start()
}
}
NSUserTrackingUsageDescription
We use this data to better understand what you love, deliver more relevant content, and keep Liverse free to use.
CFBundleURLTypes
CFBundleURLSchemes
fb**************
FacebookAppID
**************
FacebookDisplayName
Liverse
FacebookClientToken
********************************
NSAdvertisingAttributionReportEndpoint
https://appsflyer-skadnetwork.com/
AFAppID
$(AF_APP_ID)
SKAdNetworkItems
SKAdNetworkIdentifier
9wttpbfk9.skadnetwork
SKAdNetworkIdentifier
n38lu8286q.skadnetwork
SKAdNetworkIdentifier
v9wttpbfk9.skadnetwork
```
Contributor guide
Assessment
This issue has not been assessed yet.