Update Google IMA SDK for iOS 14 Privacy Policy for Swift - swift

In iOS 14, you are required to update the Google IMA SDK to support tracking of advertisements.
It requires you to add a new function in order to request access to the user's IDFA:
func requestIDFA() {
ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in
// Tracking authorization completed. Start loading ads here.
// loadAd()
})
}
When this function is called, it initiates a pop up that asks the user if they want to be tracked and gives the user the option to allow or disallow tracking.
The problem I'm having with the Google IMA SDK is i'm running a video pre-roll and when I test the updates for iOS 14 after when I choose "Do not track", i'm no longer able to produce a video preroll.
Does anyone have any insight into this? How can I still show video prerolls to users who choose to not be tracked?

Most of ads buyers still leverage IDFA to target users as of today. Especially for high-valued video preroll ads, they really want to spend every cent of money on the right audience.
How can I still show video prerolls to users who choose to not be tracked?
At this moment, Apple hasn't enforced developers to uses IDFA opt-in dialog. So without a doubt, ads buyers would still and stick to buying IDFA-enabled inventories.
The situation would defintely change after Apple changes their poloicy to make IDFA opt-in only.
I would suggest adding SKAdNetwork config in your Info.plist, following Google's official instruction.

Related

Can I use AdSense in a CapacitorJS application to show ads across all 3 platforms: Web, iOS and Android?

Background
I have an app that's available on the web, iOS and Android.
I’m using CapacitorJS, Angular and Firebase as main tech stack. By using Capacitor I have a single codebase for all 3 platforms.
How Capacitor works on iOS and Android is that it takes your web-projects dist-folder and wraps it in a native WebView. Sort of like how Ionic works. And this is what makes showing ads tricky.
Problem/Question
I would like to use one single ad provider across all 3 platforms. From my understanding AdSense is only to be used on websites while AdMob is used on mobile apps.
BUT, my whole app is web based, even the ios/android app is just the website shown in a webview. Doesn't this mean I could use AdSense even in my mobile apps, or are there any restrictions I'm unaware of?
How would you handle my scenario? What options do I have? I appreciate any suggestions or insights.
https://support.google.com/admob/answer/48182?hl=en&ref_topic=9756841#zippy=%2Cview-full-ad-placement-policies
Google ads, search boxes or search results may not be:
Integrated into a software application (does not apply to AdMob) of any kind, including toolbars.
So to answer your question adsense cannot be used in any software application ( does not apply to Admob). So you can use it in native android and ios app.
Also refer to https://support.google.com/admob/answer/48182?hl=en ( Refer Technical requirements section ) You need to check what type of adsense ads you are using within the app.
WebView
AdSense for content (AFC) and Ad Exchange (AdX) display ads are not supported through all WebView technologies.
App developers wishing to monetize by publishing AFC and AdX display ads through a WebView must use one of the following supported viewing frames:
Android: Chrome Custom Tab
iOS: SFSafariViewController (iOS9 and iOS10 only)
Google AdMob and AdX in-app ads may be shown in an app next to a WebView so long as the Google Mobile Ads SDK is in use and the publisher is compliant with all other AdSense program policies.
Using a third party website within your android app also requires permission from website owner. So you might be asked to present the proof of ownership or your app might be removed from play store. Refer to admob policy for using website within your app.
https://support.google.com/admob/answer/2753860#Exceptions_AdSense&zippy=%2Cview-exceptions%2Cview-ad-placement-policies
Displaying a third party site in your app
When an app displays someone else's site within a frame, this is considered framing content. Publishers are not permitted to frame third party content and monetize it without permission from the owners of that content.
If a publisher owns the content, it can be framed in their app and monetized. However, if the framed content is already being monetized by Google Ads, the framed content should not contain any additional code for AdSense or AdMob inside the version on the mobile app.
Apple is strict on approving apps which are mimicking a website so chances of rejecting on apple are high ( not related to advertisement ) https://developer.apple.com/app-store/review/guidelines/#design
4.2 Minimum Functionality
Your app should include features, content, and UI that elevate it beyond a repackaged website. If your app is not particularly useful, unique, or “app-like,” it doesn’t belong on the App Store. If your App doesn’t provide some sort of lasting entertainment value, it may not be accepted. Apps that are simply a song or movie should be submitted to the iTunes Store. Apps that are simply a book or game guide should be submitted to the Apple Books Store.
Displaying ads within webview doesn't give native experience to end user. So technically you are not violating any rules ( as long admob other policies are followed ). Its recommended to implement native Ads for rich UI experience

Asking AppTrackingTransparency permission for using google analytics , is mandatory?

I am using Google Analytics SDK in my application.
It uses the demographic area, age and other user informations.
So, Am I need to ask permission for AppTracking manually or it was handled in google analytics SDK?
Without AppTracking Permission,Will my future updates get approved by iTunes connect?
YES, I need to ask permission for App Tracking Transparency manually. It will not handled by Google Analytics SDK.
Since I am using Google Analytics for campaning tracking, GASDK gets the device IDFA, So the app must need Tracking Permission.
Note: If you or your third party framework uses IDFA, It is mandatory to implement app tracking transparency framework. Otherwise Apple will simply reject us.!

App Store Rejection With Reason: your app requires users to register personal information to purchase non account-based in-app purchase products

For last few days this cat and mouse game is going on between me and App Store Reviewers. And despite searching everywhere, I have not been able to find an answer to this question, so seeking help here.
I have submitted an app with auto-renewable subscriptions in it.
My app requires that users sign-in in order to see additional options, which includes subscription option as well.
App Store Reviewers keep rejecting my app citing this same text every time:
Regarding 5.1.1, we continue to notice that your app requires users to register with personal information to purchase non account-based in-app purchase products, which does not comply with the App Store Review Guidelines.
To resolve this issue, it would be appropriate to make it clear to the user that registering will enable them to access the content from any of their iOS devices and provide them a way to register at any time, if they wish to later extend access to additional iOS devices.
We look forward to reviewing your resubmitted app.
Best regards,
App Store Review
What is non account-based in-app purchase products by the way?
I have also made it clear in my app what App Reviewer have asked above, i.e. make clear to the users that registering will enable them to access the content from any of their iOS devices. I didn't say iOS devices specifically, but said other devices since I'll have the same app on Android devices as well.
While I appreciate App Store Reviewers to help me improve my app, but I am totally lost here. I have submitted two updates to my app but every time it got rejected with the same reason.
Over this period I have also read their guidelines, read many similar cases online, but am still not clear what is required of me here.
Do they want the users to be able to purchase subscriptions even if they are not signed in? If so then technically how does this work? First it'll break the core functionality of the app since without registration I don't have user's info to create an account for them. Secondly how will I know which user purchased the subscription? I have to tie the subscription to the user's account on my backend. This means first I need to create an account for the user before user can purchase a subscription.
Please help me to get this right.
Currently I am waiting App Store's reply and my screens looks like these, with all other options removed when not signed in, and added text bottom of the Sign-In option, and help icon on top right of the screen where there is more information available for the user; and the one when user is signed-in.
If I would be a user of your app, I think I would find this behavior quite odd.
I would expect a login/registration screen when starting your app. If I decide to create an account, the Subscription button would always be visible within the settings.
However, there would also be an option "Continue without registration". If you do not create an account, the settings page could show some info text like "Some features are only available for registered members. Please tap here to create an account". Tapping the corresponding cell would show the registration page that is also shown when starting your app for the first time.
Maybe some users created an account in the past but forgot their passwort? Then they would not be able to restore their purchases, right?
Your login/registration form should also contain a "Forgot Password" option.
My app was eventually approved last year. The change I made was to remove the Subscriptions button from the Settings menu. And move it inside the user profile page. This means that user can see the Subscription option only after signing in and by going to their profile page. While this doesn't make sense to me, but that's how probably Apple wanted it. Subsequent updates to my app were also approved without any problem.

Facebook App Review Process apparently makes impossible to any Vuforia + Unity + FB Plugin app to be public

I have a problem with an iOS App using Vuforia and Unity with a valid Facebook Plugin, the problem comes not in the plugin itself (that works properly), but in the Facebook Review process to make the App public and let all users in.
Today doing tests on the finished app, I realized that when using a valid Facebook Plugin (or any other Facebook implementation) with an user that is not the Facebook User Owner of the app (in this case me), Facebook request you to go to "App Status and Review" to click on:
"Do you want to make this app and all its live features available to the general public? YES| NO". This was traditionally allowed to be clicked, but today it's not. The option is not allowed.
"Yes" would make the app accessible to everybody. But this option (YES) is not available a priori, because the App needs first to pass a Facebook review process, in particular a Facebook Review Process to determine if the App is in agreement with its policy. (So we have to pass two reviews: Apple and then Facebook)
The problem here is apparently it's impossible to a Vuforia-Unity App to pass this process. To pass the Facebook Review process you need to send them your App in one of this two available format:
sending the id to Apple Store App (that is impossible to do, you can not send App Store an unfinished app), or
sending them a file containing a Simulated Build (using Terminal to build the project in xcodebuild -arch i386 simulatorXX).
None of this available options provided by Facebook are possible to Unity-Vuforia, technically, so it's technically impossible to obtain the approval of the App. This is because:
App Store is not going to pass an App that is not working (the FB button won't work, so App Store is not going to allow us finish the process and they will reject). So you cannot provide an AppStore-id to the Facebook Review team.
As far as Facebook only receives "Simulated Builds" it would be impossible to a Vuforia Unity App to be accepted, this is because when you are using Unity + Vuforia you can not build a simulated build, is incompatible. So is impossible to fit this requirement.
My questions here to you to try to solve this are:
Did you have this problem and solved it previously?
Is there anyway to avoid the Facebook review?
Do you know how long does it take to Facebook do the review?
Can you think in anything else to try to solve this?
PS: I am using a Neatplug plugin to connect to Facebook.

Paid Video Streaming iOS app

I am about to build an app that initially displays thumbnails of my Vimeo Video channel. When users click on a thumbnail, they will go through iOS's in-app payment system to pay for the video and once that is complete, the video will open and start playing in Quicktime( iphones native video player).
From my description of the app, do you see anything that may not be possible or may not be allowed by apple?
Do you think I can have half an hour videos on vimeo and display them on my app?
I would also like to include a section for magazines. What is the best way to display magazines? Just include a regaulr pdf document and let the iphone open it when clicked?
You have multiple questions. Playing a video is not difficult. To protect the contents, study DRM.
For magazine, there is a subscription model for in-app purchase. Users can renew their subscription automatically/ manually.
If you use the apple inapp purchase api, that part should be fine, if you go outside that then they will reject. In other words Apple wants their percentage on the purchase.
if the Vimeo channel is using http streaming protocols per apple guidelines, or is h264 progressive download, then again you should be fine. otherwise your ok over wi-fi but much more restricted over cellular .
This would be against our (Vimeo) Terms of Service unless you had a PRO account. Besides that, there is no API access to the external URLs yet, so that may impact what you had in mind. They will be available soon though.