I'm integrating Chartboost into one of my apps. I've done this before, but before GDPR.
In the integration docs, it says to call the "startWithAppId" within the first few seconds of launching an app. Got it. I do that in "didFinishLaunchingWithOptions"
It also says, "Publishers should call the addDataUseConsent API from the Chartboost SDK and pass in the appropriate consent value for GDPR and CCPA. Publishers are required as part of Terms of Service to obtain the consent from their users before Chartboost will process any personal data and pass it to the Chartboost SDK via the above method. This method should be called before startWithAppId if possible."
What's the best way to go about doing that? Grab the self.window.RootViewController, and present my own dialog?
Chartboost's example app does this:
[Chartboost addDataUseConsent:[CHBGDPRDataUseConsent gdprConsent:CHBGDPRConsentBehavioral]];
[Chartboost addDataUseConsent:[CHBCCPADataUseConsent ccpaConsent:CHBCCPAConsentOptInSale]];
before the startWithAppId call, but it needs to ask for permission, not blindly just set those values, right? Or am I missing something here?
For AdMob, I was able to use the PACConsentInformation, but I'm at a loss for what to do with only Chartboost.
Yes that's correct. You need to present your own dialog with CCPA and GDPR information and how it will be used. You can then use their response for those values.
I wouldn't worry too much about calling startWithAppId before showing the dialog. Just set both values to opt-out for the first session then the next time the user opens the app use their responses for the values. I would assume that startWithAppId just needs to be called ASAP for them to track stuff.
Related
I have just started getting a warning message in AdMob for my iOS game with ads:
"Some apps haven’t been configured to use SKAdNetwork"
And that I may not be getting some advert credits. It looks easy to fix according to this:
https://developers.google.com/admob/ios/ios14
I just add a key to Info.plist
But on that link it also mentions App Tracking Transparency authorization and I’m unsure what to do about that. I know what ATT is - it presents an alert asking for permission track and affects access to the IDFA. But it’s a bit strange that Google says “If you decide to include ATT”. It’s like Google doesn’t really want you to do it.
Also, as far as I can see, the IDFA is still accessible without adding the ATT alert even in iOS 14.4. So some questions:
Does anyone know when (or if) Apple will enforce requiring the ATT alert? They used to say early 2021 - is there a firmer date or specific version number? It does not seem to be enforced yet (my game update without it was approved this week), and the IDFA seems perfectly accessible on iOS 14.4 without the alert. I can print it out with:
Console.WriteLine("AdvertisingIdentifier={0}", AdSupport.ASIdentifierManager.SharedManager.AdvertisingIdentifier);
And it’s not all zeros.
Am I really losing ad revenue without the SKAdNetwork key when the IDFA is still accessible anyway?
Is SKAdNetwork the future and is IDFA being sort of phased out? So in the future, AdMob will not use IDFA at all?
Should I go ahead and implement the ATT alert or wait (I’m worried most people will deny tracking, or it may put them off installing the game at all). Am I losing anything by not having the alert (I don’t think so, yet).
they will never enforce it, because if you do not show it that means that your app does not track users directly.
Note: I recommend not using ATT because most users ask you not track them anyway.
Yes, if a user gave you a permission to track them then they will get more personalized ads which usually translate into more revenue but as I stated in the note above, most of users will not let you track them.
Yes it seems that way, SKAdNetwork is needed to measure the success of ad campaigns while maintaining user privacy.
No, I think this is not needed
As the title suggests. Facebook SDK makes calls to graph.facebook.com when checking in Charles even though I'm not initializing the SDK in app delegate and I've removed all calls to the SDK.
I've made sure that there are no other frameworks in my stack which uses Facebook.
How is this even possible? Doesn't the SDK need to be initialized in App Delegate before it can perform any operations? Is there some clever way Facebook can bypass this through listening to notifications or method swizzling?
A user contacted me about this citing GDPR violations which is why I need this to be resolved.
Clarification: I removed the calls just to investigate this issue. I still need it for authentication purposes, but I don't want graph calls to be made upon launch as this is supposedly a violation of GDPR
I want to disable the crashlytics at run time in iOS app.
I could see it is possible using the latest Firebase api. How to do this with old Fabric/Crashlytics api?
Update: My app will get locked if the user goes to background, if the app is locked then without user authentication I shouldn't call any api(http request, accessing database). So I want to restrict the crashlytics api as well. When the app comes to foreground, crashlytics/fabric calling the http request so I want to avoid this if the user is not authenticated.
Fabric/Firebaser here - you can conditionally choose to initialize or skip the initialization of Fabric with an opt-in flag set by your user, but there isn't a (supported) way to totally disable Crashlytics from running when it has already been initialized. There is a way, however, to control your submission behavior with Crashlytics, but might not suit your use case. Also, check out these docs for more information on the opt-in/opt-out mentioned above.
I would like to be connected with the Dropbox SDK on iOS without allowing it every time. Is it possible?
I would just like the person log it with is Dropbox and password account, and that's all.
My main problem is that Dropbox is asking each time a captcha which is bugging me...
How can I avoid that captcha question?
Thanks in advance.
If you RTFM, you will have everything for your code.
https://www.dropbox.com/developers/documentation/objective-c
Check the example provided by Dropbox:
https://github.com/dropbox/dropbox-sdk-obj-c/tree/master/Examples/DBRoulette
It is probably because you ask several times the token...
The Dropbox iOS SDK will automatically store the access token that results from the app authorization flow, so you only need to send the user through the flow once.
That is, check if you already have an authorized user, and don't call authorizeFromController if so.
For reference, the captcha itself won't always be shown during login. Dropbox has an anti-abuse system that will decide if/when to show it on various factors, but that's not something you can turn on/off yourself.
We're trying to integrate the Facebook SDK just so we can track installs and the effect of Facebook ads on our mobile game on iOS.
From what I've been reading it sounds like the purpose of calling FB.Init() is to give back a page to display to the user to log them into Facebook. That's not really what we're interested in so we just ignore it. Our game doesn't need or want to log anyone into Facebook -- merely to track the install of the app by App Id. Do we even need to call this?
Is it enough merely to include the SDK and set up the settings file in our app for iOS builds?
Yes, you have to call it.
This method is used to initialize and setup the SDK. All other SDK methods must be called after FB.Init(), because they
won't exist until you do.