Hello. I am trying to give an update to my app but it again and again gets rejected due to the ATT Prompt. Before this late week I gave the update and it got live without any issue. Now I done some minor changes in the App.
Apple Response.
The app uses the AppTrackingTransparency framework, but we are unable to locate the App Tracking Transparency permission request when reviewed on iPadOS 18.2.
Next Steps
Explain where we can find the App Tracking Transparency permission request in the app. The request should appear before any data is collected that could be used to track the user.
If App Tracking Transparency is implemented but the permission request is not appearing on devices running the latest operating system, review the available documentation and confirm App Tracking Transparency has been correctly implemented.
If your app does not track users, update your app privacy information in App Store Connect to not declare tracking. You must have the Account Holder or Admin role to update app privacy information.
My Response:
Hello Apple Team
Thank you for your feedback.
We have tested the app on iPadOS 18.2, also on iPhone 18.1 and the App Tracking Transparency dialogue is appearing as expected on the main home screen when the user enters the app. To help demonstrate this, we’ve attached a video showing the ATT prompt in action.
If there is still an issue with the dialogue or if it needs to be placed in a different position, we kindly request your guidance on what needs to be adjusted. Please let us know the details so we can address it promptly.
Thank you for your support
"I uploaded a video with images showcasing the ATT prompt but now again they rejected the update with the exact same reply. Which I am thinking it may be a bot reply.
Now what to do how to solve it?
AdSupport
RSS for tagProvide apps with access to the advertising identifier and a flag that indicates whether the user has chosen to limit ad tracking using AdSupport.
Posts under AdSupport tag
10 Posts
Sort by:
Post
Replies
Boosts
Views
Activity
Apple is pushing to use AdAttributionKit, but when I look at various ad networks, their sample code isn't using it. I'd like to find a simple example using a banner add and a third party ad network like admob.
Also, I'm not clear on what post backs really do, or if I need them at all. If anyone can point me to clear documentation that is up to date, that would be great!
I've implemented GADMobileAds and my Info.plist file includes the following entry:
<key>SKAdNetworkItems</key>
<array>
...
<dict>
<key>SKAdNetworkIdentifier</key>
<string>tl55sbb4fm.skadnetwork</string> <!-- Verve Group -->
</dict>
...
</array>
Unfortunately, I get the following error still:
...[Default] <Google> <Google:HTML> 1 required SKAdNetwork identifier(s) missing from Info.plist. Missing network(s): Verve. See [Enable SKAdNetwork to track conversions] (https://googlemobileadssdk.page.link/enable-skadnetwork).
I've tried everything from cleaning the build folder to adding all of Verve Group's other SKAdNetworkIdentifier strings.
What am I missing?
I want to know if I can implement ads in my tvOS apps. If any documents are available from Apple on this topic, please send me the link. Thanks.
I am running a campaign but I am not seeing any updates across the following dashboards:
Google AdMob Dashboard
App Store Connect Dashboard
Search Ads Campaign Dashboard
The campaign has been running for half a day. I have been attempting to check the hourly stats. Does anyone know why this might be the case.
What age restriction would my application fall under if I integrate AdMob? I blocked certain categories such as:
Alcohol
Gambling
****** content
Weight loss
Drugs and supplements
Get rich quick schemes
I am aware that turning off certain categories is the most I can do at trying to prevent certain r-rated and mature content from popping up. Before adding AdMob my app could be used by everyone.
hello new flag in bitomoji flag kurdistan regoin kurdistan have a nice cltur and nature have a people respect kurdistan forget always attack dead childern and oldman please dont forget kurdistan .add flag kurdistan small plan but heart afew people kurdistan happy .with resbect
SKAN / SkAdNetwork Error
ERROR: We never received any http request from the "skan.ourdomain.com" as expected.
ERROR: All the attributions(YES! ALL OF THE INSTALLS) in the Google Analytics / Singular / AppsFlyer / Twitter / Facebook, shows the source are "direct organic".
We Did These
We use Google Ads and Twitter Ads and Facebook Ads to promote our apps. We spent enough money, and got thousands of paid installs from these ads.
We set the NSAdvertisingAttributionReportEndpoint to "skan.ourdomain.com".
We call the SKAdNetwork.updatePostbackConversionValue(1). in "AppDelegate" and "Subscribe" source codes.
And from our app logs, we see there are SKAN_UPDATE_CONVERSION_VALUE_OK.
Source Code
if #available(iOS 15.4, *) {
SKAdNetwork.updatePostbackConversionValue(1) { err in
if let err = err {
Tracker.shared.reportEvent(.SKAN_UPDATE_CONVERSION_VALUE_FAIL, name: err.localizedDescription, value: 1)
} else {
Tracker.shared.reportEvent(.SKAN_UPDATE_CONVERSION_VALUE_OK)
}
}
} else {
SKAdNetwork.registerAppForAdNetworkAttribution()
Tracker.shared.reporxtEvent(
.SKAN_UPDATE_CONVERSION_VALUE_OLD_VERSION, name: "AppDelegate")
}
Hello,
I used to have running campaigns in mostly all regions, but recently I got this message on some of the countries that were previously added and have recently become ineligible. It shows a yellow triangle with an exclamation mark next to them saying "This campaign is no longer eligible to run in one or more countries or regions.".
However I think my app respects and complies with all Policies, so I don't think I am in Violation with them.
Do you know how to apply/request a manual review on advertising in these countries.
P.S I was in contact with Apple Support but they only responded by giving directions to the Policy and Guidelines sections, which is not a helpful response in any ways.
Is there any threading assumption/requirement for ASIdentifierManager.advertisingIdentifier?
Please see the complete issue and stack trace here. The main thread was waiting for the worker thread, which was blocked in ASIdentifierManager.advertisingIdentifier.
Thread 68:
0 libsystem_kernel.dylib 0x188abf0f4 mach_msg_trap (in libsystem_kernel.dylib) + 8
1 libsystem_kernel.dylib 0x188abe5a0 mach_msg (in libsystem_kernel.dylib) + 72
2 libdispatch.dylib 0x188924880 _dispatch_mach_send_and_wait_for_reply (in libdispatch.dylib) + 500
3 libdispatch.dylib 0x188924d10 dispatch_mach_send_with_result_and_wait_for_reply$VARIANT$mp (in libdispatch.dylib) + 52
4 libxpc.dylib 0x188b8391c xpc_connection_send_message_with_reply_sync (in libxpc.dylib) + 204
5 Foundation 0x189aafa28 NSXPCCONNECTION_IS_WAITING_FOR_A_SYNCHRONOUS_REPLY (in Foundation) + 12
6 Foundation 0x189892f60 -[NSXPCConnection sendInvocation:orArguments:count:methodSignature:selector:withProxy:] (in Foundation) + 3608
7 CoreFoundation 0x188f3276c forwarding (in CoreFoundation) + 552
8 CoreFoundation 0x188f3475c forwarding_prep_0 (in CoreFoundation) + 92
9 CoreServices 0x1b1896ce4 -[LSApplicationWorkspace deviceIdentifierForAdvertising] (in CoreServices) + 160
10 AdSupport 0x198f70a60 -[ASIdentifierManager advertisingIdentifier] (in AdSupport) + 56
I don't see any thread related information in the document. I tried to recreate the scenario, but I could not reproduce the issue with the simplified test below.
#import "ViewController.h"
#import "AdSupport/AdSupport.h"
#import "AppTrackingTransparency/AppTrackingTransparency.h"
@interface ViewController () {
dispatch_queue_t _queue;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
_queue = dispatch_queue_create("IdentityWorkerQueue", DISPATCH_QUEUE_SERIAL);
dispatch_set_target_queue(_queue,
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0));
if (@available(iOS 14, *)) {
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:
^(ATTrackingManagerAuthorizationStatus status) {
NSLog(@"Status: %lu", (unsigned long)status);
}];
}
}
- (IBAction)action:(id)sender {
__block NSString *adId1 = nil;
dispatch_async(self->_queue, ^{
sleep(1);
adId1 = ASIdentifierManager.sharedManager.advertisingIdentifier.UUIDString;
});
__block NSString *adId2 = nil;
dispatch_sync(self->_queue, ^{
adId2 = adId1;
});
}
@end
Is there any threading assumption/requirement for ASIdentifierManager.advertisingIdentifier? For example, would it wait for the main thread to finish a certain task when an error happens?