facebook / facebook/facebook-ios-sdk

ATE True Status Not Displayed & SDK Upgrade Warning Still Persisting

Open
#2,607 8 comments 0 reactions 0 assignees View on GitHub
bug needs-triage
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.

Image

Image

### 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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.