Can I Keep Test Ads on For My Specific device? - ios

I have a quick question regarding test ads. I have an app in the IOS AppStore that is using Google AdMob. I received an email today saying that my account was temporarily suspended for clicking on my own ads. I had test ads enabled in development to prevent just this; however, I removed the test ads in my final release.
My question is: Can I keep test ads on for my specific device?
In my code I have:
request.testDevices = [kGADSimulatorID, "My Device ID" ]
Since the ID is specific to my device can I leave it there in an AppStore release? or Will this cause issues in the future?
I just want to make sure I don't get a permanent suspension. Thanks!
-Matt

Since the ID is specific to my device can I leave it there in an AppStore release? or Will this cause issues in the future?
Yes, you can leave your device ID in the testDevices field for release, and it is in fact required by AdMob guidelines (as you seem to have found out). Since the ID is specific to your device, it will not cause any problems.

Related

How to get the URL of an iOS application before it is accepted by Apple?

First of all, I know that there are a lot of posts related to my question but my situation is a bit different.
Actually I use Admob in my application to present ads, but my approval status is set to "review required" because I've not add my App's URL on AppStore yet.
I tried to go to : App Store Connect > My apps > App concerned > App information > View in the app store. I've copied the URL from my browser and add it to Admob but here is the message I get from Admob when I search my app with this URL :
Can't find your application? Check its information on the download platform and try again.
And this makes sense as the application is not yet published on the AppStore. The problem is that the app cannot be accepted if the ads do not work.
Can anyone suggest a solution ?
Thank you for your attention !
First of All, the sentence below is not true:
The problem is that the app cannot be accepted if the ads do not work.
Apple will accept the app if it has no Ads without any problems.
BUT if you really really need an Ad to appear, you can use in house ads until the app get published.
in house Ads will appear even if your app is not published yet.

IOS - Admob not loading real (rewarded) ads

When trying to load rewarded ads I get the following error:
<Google> To get test ads on this device, set: GADMobileAds.sharedInstance.requestConfiguration.testDeviceIdentifiers = #[ #"a 32-character-string" ];
Loading test ads works, but when trying to show real ads, it says: Request Error: No ad to show.
Apple will not allow my App on the App Store, because the ads don't work.
I have not managed to fix this, since this article didn't help.
Adidionally, I have not used this in my code: .addTestDevice() and my Admob account is way older than 24 hours (it's possibly even many years old).
Is there a way to fix this?
depends, If you are using your own device or a simulator you cannot view your own adverts. you have to use a test ad id.
I also suspect that Apple was not holding your app because you did not follow one of their guidelines. You can find them on Apple's App Review page. If it is because the ads do not work, try the following:
remove the advertisements
upload to the app store
configure AdMob to use your AppStore id
update your app to include the advertisement later
This means there will not be a version of your app that breaks apple's placeholder content rule.
Apple also provides a test service called TestFlight and that may help you.

Unity Codeless IAP IOS build rejected

I have a problem using Unity's codeless API in conjunction with IOS.
Apple keeps rejecting the build with the following message:
Guideline 2.1 - Performance - App Completeness
We found that your in-app purchase products exhibited one or more bugs
when reviewed on iPad running iOS 12.1 on Wi-Fi.
Specifically, no action takes place when we initiate the purchase.
Some notes:
I succesfully built and published the app on android.
The IOS version works with the uploaded build. I can make in app purchases when i run the app on my iphone.
I have filled in all the required legal/ financial information and have a valid contract for purchases as defined in the ios docs.
The build is set as "release" and "development build" is NOT checked.
After rejection by apple, all the in app purchases in the developer console are marked as requiring action.
Specifically it is now showing that the localizations are invalid. However no further information is given. I suspect this is just because the build is rejected?
So, has anyone had a similar problem? Having the app run fine when using the development build on a local phone, but still having it rejected because of the aforementioned reason?
In the end i requested i call with Apple to discuss the rejection of my IOS build(s).
It had been rejected 3/4 times with the same reason.
The reason: A problem on their part. They suspect they had a misconfigured environment on their side, which resulted in a not working build on Ipad.
I did not have to upload a new build, they reused the last rejected one and it was approved within hours of my call.
I suspect that the developers might have been confused, seeing that the app was entirely in dutch. This can seriously cause some confusing, because the representative on the phone had trouble locating some IAP functionality himself like the restore button.
So should you have the same problem:
If your app is in a non-english language, specificy where the reviewers have to click for In App Products, where the Restore button is and similar key parts of your app.
Request a call with Apple if you are sure that you did everything correctly. Talking on the phone with them really helps speed up the review process and clarify any misunderstandings.

What to do to make sure admob is ready to go to production?

I'm integrated admob with my ios game and everything works great.
I can't find a "switch" option from test to production just like I have in other ad networks (vungle for example).
I can find zero information how to prepare it to be published (maybe it is too obvious?).
That makes me very uncomfortable, because I want to make sure the ads will be real ones and I will get paid for that.
for example, should I remove my device id from request testing property?
should I not worried because admob is smart enough to figure out if it is production or testing?
please help
The ads are already live. They provide the test devices dictionary so that it can detect its a test ad. If you ran the app on a device which isnt in the test devices dictionary, you will receive live ads. Obviously AdMob will block your service if you purposefully make real requests from development.
I accidentally ran an app on a device that wasnt in the test devices and I got a real advert. I'm sure it happens often so they probably excuse a certain amount of accidental real requests.
for example, should I remove my device id from request testing property?
Yes, you should remove your Test ID in your distribution release. Only use the Ad Unit ID given to you by AdMob to request ads in your distribution release.
I can't find a "switch" option from test to production just like I have in other ad networks (vungle for example).
There is no switch for you to turn on when you plan to build your application for distribution. If you're successfully receiving test ads on your device then you've implemented the advertisements correctly.
That makes me very uncomfortable, because I want to make sure the ads will be real ones and I will get paid for that.
You can receive live ads before the release of your application in the App Store by removing your Test ID and running your application on a real device.

"Cannot connect to iTunes store" when restoring iOS In App Purchase in iOS simulator

I've looked through the many existing questions related to "Cannot connect to iTunes store" issues with iOS StoreKit and I don't think my situation is covered:
When running in the iOS Simulator, I get the "Cannot connect to iTunes store" error after restoring a previous bought in app purchase. If I hit Cancel, the popup goes away and the restore is successful.
There is no problem at all when buying the in app purchase, only when restoring.
Also, the problem only occurs on the simulator, not when testing on a real iPhone.
I'm pretty sure everything is OK, just wanted to confirm that it is just a simulator bug. Any one else seen this one?
Having researched this as much as I can, and confirmed that there are no issues when running on a device, either in sandbox mode or (since yesterday, when the IAP was approved by Apple) using a real Apple ID, I'm assuming this is a simulator bug and can be ignored.
Contrary to the answer posted by iLive below, and repeated elsewhere on SO, testing IAP on the simulator is explicitly supported by Apple, except for hosted content downloads.
UPDATE: It would appear that since iOS 7, testing IAP on the simulator is no longer properly supported. I've had it working using the non-64bit simulator, but not with the 64bit iPhone simulator. Your milage may vary. As per pix's comment below, Apple also seem to have removed mention of iOS simulator testing from their documentation.
I do not believe you can test your purchases with the simulator.
From the "In-App Purchase Programming Guide":
Store Kit does not operate in iOS Simulator. When running your application in iOS Simulator, Store Kit logs a warning if your application attempts to retrieve the payment queue. Testing the store must be done on actual devices.
If you look at this link, Apple tells you about what you should do:
http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/DevelopingwithStoreKit/DevelopingwithStoreKit.html
You can also check out this link: restore button for in-app purchases error
Hope this helped!
I ran into the same problem. I would get the "Cannot connect to iTunes Store". If you press Retry it will send you to the login prompt. However, if you press cancel, you will get "Restore Purchases Successful". This does seem limited to the simulator.
https://developer.apple.com/library/ios/releasenotes/DeveloperTools/RN-Xcode/index.html#//apple_ref/doc/uid/TP40001051-SW241
StoreKit (In-App purchases) will not work in the Simulator. 13962338
Make sure you use an account which is an sandbox user. I tried to use my personal iCloud account on Sandbox which got rejected with the same error.
As of recent (Version 8 and onwards) Xcode releases, I'd qualify the state of StoreKit in the simulator as partially implemented.
Apple officially says you need to test it on the device, however some calls seem to supported in the Simulator – at least the SKProductRequest always works flawlessly. Completing a purchase may or may not work.

Resources