Ok. I’m feeling real dumb now. My app is being declined in the Apple Store for Tracking Transparency. I am using AdMob.
I copied copied the callback from the example.
In my main menu script, I have this code in the init:
if admob then
admob.set_callback(admob_callback)
admob.set_privacy_settings(true)
if sys.get_sys_info().system_name == ‘iPhone OS’ then
admob.request_idfa()
end
admob.initialize()
end
I then set the self.interstitial_ad_unit) to the appropriate ad unit
As I show the splash screen, I have this code:
if admob then
admob.load_interstitial(self.interstitial_ad_unit)
end
When my play game button is hit, I have this code:
if admob and admob.is_interstitial_loaded() then
admob.show_interstitial()
end
----
local function admob_callback(self, message_id, message)
if message_id == admob.MSG_IDFA then
-- initialize admob after ATT response (on iOS 14+, skip on Android)
admob.initialize()
if message.event == admob.EVENT_STATUS_AUTORIZED then
print("EVENT_STATUS_AUTORIZED: ATTrackingManagerAuthorizationStatusAuthorized")
elseif message.event == admob.EVENT_STATUS_DENIED then
print("EVENT_STATUS_DENIED: ATTrackingManagerAuthorizationStatusDenied")
elseif message.event == admob.EVENT_STATUS_NOT_DETERMINED then
print("EVENT_STATUS_NOT_DETERMINED: ATTrackingManagerAuthorizationStatusNotDetermined")
elseif message.event == admob.EVENT_STATUS_RESTRICTED then
print("EVENT_STATUS_RESTRICTED: ATTrackingManagerAuthorizationStatusRestricted")
elseif message.event == admob.EVENT_NOT_SUPPORTED then
print("EVENT_NOT_SUPPORTED: IDFA request not supported on this platform or OS version")
end
end
end
...
local function initialization(self)
if admob then
admob.set_callback(admob_callback)
-- https://developers.google.com/admob/ios/ccpa
-- https://developers.google.com/admob/android/ccpa
admob.set_privacy_settings(true)
-- request_idfa first, initialize in callback
admob.request_idfa()
end
We’re looking forward to completing our review, but we need more information to continue. Your app uses the AppTrackingTransparency framework, but we are unable to locate the App Tracking Transparency permission request when reviewed on iOS 16.5.
Next Steps
Please explain where we can find the App Tracking Transparency permission request in your app. The request should appear before any data is collected that could be used to track the user.
If you’ve implemented App Tracking Transparency but the permission request is not appearing on devices running the latest OS, please review the available documentation and confirm App Tracking Transparency has been correctly implemented.
Could it be a timing issue? I have two scripts in my collection. A main interface that contains the admob code and a game controller script that uses the sockets code to get the time. I do not use g analytics or other tracking.
No. it doesn’t show up. And Yes, I have that entry in the game.project file. When in debug mode, it shows a “would like to find and connect to devices on your local network” prompt then it shows the demo ads. It doesn’t bring up the att. In production, nothing.
It is strange you don’t see it when you call admob.request_idfa(). Try to fully remove the game from your phone and install again. Make sure you really call admob.request_idfa().
According to this review, they also can’t find this popup.
This is the popup they are looking for:
I’ve uninstalled. I’ve fetched new libraries. I’ve recompiled, I’ve sent new versions to TestFlight and the same thing happens. I am requesting the IDFA. In the callback of the request, I have the initialization code. I can see the sample ads but am not prompted with the ATT. Also I wanted to point out that I request the IDFA in the init of the script.
In the spirit of checking absolutely everything, do you see these requests on your phone in other apps?
Do you have this option enabled in privacy & security → tracking?