iAd development - more errors than successful test ads - ios

While you are developing your application, iAd Network sends test
advertisements to your application. To assist you in validating your
implementation, the iAd Network occasionally returns errors to test
your error handling code. You can also test your error handling
support manually by turning your device’s wireless capability off.
Ok, it says the above in the developers guide, but in reality its failing more often than serving the test page, for 2 days now! I get a the test ad page once every 10 minutes it seems !!! Little disproportionate for testing.....
Is this how it's going to be in live? I don't want to be deploying my paid ap for free if it's not even going to send any ads!
Anyone got any experience of this?

By experience it is very variable in test environment, I've seen days as you describe and days with a good flow of ads. Now ... live it is very different, the "fill rate" as they call it (% of requests answered with and ad) is pretty low, maybe 2% on iPad and 5-10% on iPhone. Besides, iAd serves ads only in certain countries, ie. mostly in US and a bit in the UK, France, Italy, Spain, ... And by experience it serves more ads to the iPhone than iPad. My app on iPad received virtually nothing outside the US from iAd.
Now on the positive side, the remuneration of ads is the best for iAd when you have the chance to receive ads. I ended up implementing a fallback network (AdMob) when iad doesn't receive anything. I did that myself but read there is something called AdWhirl that seems to provide help on that.

Related

Use Analytics in a WebView on Android and iOS

I am writing to you for the first time. I would like to know if with the "webview" configuration (https://firebase.google.com/docs/analytics/android/webview), it's good for hybrid apps and if you can track the transactions carried out on the institutional site, more precisely the payment takes place on the site and not within the app and understand that users who have converted arrive from the app and not from other channels. Thank you in advance for your opinion.
Elisa

Can I set an app to run when the device is Idle on iOS?

I work as a software developer, but I am absolutely new to Apple in general. We have the following case in a project, and we have not been able to figure out a solution for it, I would really appreciate some advise to find a solution (or drop the case if not possible)
A (potential) customer with multiple retail stores is interested in having a very simple app to display some content (this could an image or html, nothing too complicated) and periodically update this content from a server (this requirement is important). So it is very simple case, to use the device screen as advertising space
But here is the catch, users should be able to go out of this app and check out the device's system and other apps, and then the content should come back on the foreground when the device is idle. So basically we need something like a screensaver app that fetches the content (images) from a server and keeps them updated.
We have been looking at the guided access mode, but we are not sure it fulfills the requirements, because of the following issues
- Allowing the user to check out the device system and other apps. As far as we understood guided access restricts the device to one app.
- Re-launch the app (or bring it to the foreground) when the device has been idle for a period of time.
Note that we should account for a variety of devices (iPhone and iPads) with different OS versions
I appreciate your help and ideas. Thanks.
Apple does not allow apps to run continuously in the background except for a small limited group of exceptions. (music playing apps, for example.)
It's possible to set up your app to pretend to be a music playing app, and stay running in the background, but that means you will not be allowed on the app store.
Your client may be able to use the enterprise program to create apps for use in their retail stores. Enterprise apps don't have to go through the app store approval process.
I did this for a client recently (for an enterprise app.) As I recall I would have the app request background processing as soon as it moved to the background, and when it was notified that it's background time was ending, I would play a short "silence" sound and request another block of background time. Unfortunately it was work for hire and the contract ended, so I did not retain the source code.

How long do iAd apps take to start generating impressions?

I released an app with an iAd in it on Friday. So far it has generated zero impressions with many requests - a fill rate of zero. Most of my requests are in the USA (~90%) so the problem is not that the requests are from countries which iAd does not support).
An older app of mine which is less popular is consistently generating a 98% fill rate despite a lower number of requests.
I was just wondering if it's normal for iAd apps to not generate impressions right away. Should I expect to eventually get impressions after some time, or is something wrong?
It takes 1-4 days for an app to start receiving ads. It's normal1 for the fill rate to be zero or nearly zero for a few days after release.
1: This is not documented on Apple's website anywhere, but Apple iAd representatives confirmed this via email.
Yes it is normal and documented.Have you read - https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/iAd_Guide/Introduction/Introduction.html

real time messaging for multi player game on ios

Building a multi player iOS game where players compete one against the other. Nature of the game is synchronous. Basically, players either invite each other through facebook, email, etc and then start playing.
We debate what is the best strategy for facilitating the real time communication between players (sending events, etc). Coming from web development, we used comet and long polling which worked great. However, it's not clear what's the best way to achieve that on iOS.
Seems like APN (Apple Push Notifications) is not suitable in our case for two reasons: the delay can be pretty significant, up to few seconds, as far as we understand. Also, using APN requires the user to authorize notifications. If the user doesn't authorize this then it won't be possible to play the game.
Also, we understand Apple's Game Kit (Game Center) can be of value in our case however it's not clear how it interacts with invites through facebook etc. Also, not clear if we need to get into bed with Apple's Game Center and how it'll affect the user experience.
Any guidance on this matter as well as other options that you might think of would be greatly appreciated.
Thanks for your help.
Before you read the rest, a disclaimer: I work for Realtime.co but I do believe I can help here so I'm not trying to "pitch a sale".
If you need to have real time updates, you can check out Realtime (www.realtime.co). It's basically a set of tools for developers to use real time technologies on their projects. It uses websockets but does fallback to whatever the user's browser supports (such as long polling, for example) if you are using a browser (which is not your case, but it's always good to know).
Behind Realtime you have a one-to-one/one-to-many/many-to-many messaging system that will transport your messages to and from your users.
There's a iOS API too which you can use in your project. You can download it here: http://www.xrtml.org/downloads_62.html#ios and check the documentation here: http://docs.xrtml.org/getting_started/hello_message.html#ios.
There's also a plus which is the fact that the Realtime framework is actually cross-platform. This means that you can even have your iOS players to communicate with players using Android, Windows Phone, HTML5, Flash, etc. if you decide on expanding your game to other platforms.
I hope that helps!
I'll just provide some insights on the question.
APN should never be used for synchro communication as for iOS at least, you'll never have both way communication (basically the Apple APN servers are pushing an information to the device).
You should probably play with C sockets in order to open a tunnel (depends if your game is real time or not).
Using the Apple Framework GameKit is great! But might take some time to understand all the functionnalities.
Check out Gree
https://developer.gree.net/en/
Parse:
https://www.parse.com/
Sparrow:
http://gamua.com/sparrow/
There are a few things that your talking about, there is the joining/starting of a game, and then the communication between the players. They are not necessarily related.
You can use game-center and at the same time another framework for facebook, they are not mutually exclusive (but it would be more work.)

URL structure for iAds

A call of help from iOS developers out there. I am trying to recognize different Ad Networks in mobile phones. For this the only data available to me are the URL from HTTP headers from the Apps and browser. I could identify certain Ad Networks like Admob, Jumptap easily with the url structure. For example, the admob one is something like this:
http://a.admob.com/*
http://p.admob.com/*
But I can't figure how to identify iAds from Apple. Does anyone know what kind of URLs these produce?
Okay. I've done some snooping into the matter with the aid of a couple of iPhones and my local firewall/web proxy server here, and this is what I've found:
Alas, no hostnames to help you, either. The requests for both banners and ad units have IP addresses in the URLs, not hostnames. Which IP addresses, incidentally, appear to be Akamai content distribution servers all over the place; the addresses I've seen have mostly been in 70.183.* and 174.*, but no guarantees on that point.
The URL structures I've seen are quite complex. Stripping out and replacing with ~ the parts which I've observed varying over the few hundred requests I've sniffed gives me this as a URL pattern for a banner request:
http://~~~~~~~~/~~~~~~~.ad/AdUnit/WebArchive.webarchive
http://~~~~~~~~/~~~~~~~.ad/Creatives/~~~~~~/HTMLBanner/WebArchive.webarchive
http://~~~~~~~~/~~~~~~~.ad/Creatives/~~~~~~/ImageBanners/~~~~~~~.png
And this for an actual ad being downloaded after a banner touch:
http://~~~~~~~~/adunits/~~~~~~~~~~~/1.ad/AdUnit/~~~~~~~~~~~
What may be of more use, if you don't have any need to distinguish ad banner displays from clickthroughs, is to look for the user agent, which for all the banner requests is "AdSheet/1.0". (Noting of course that there are multiple banner requests for any given banner being downloaded - all the different sizes the app writer indicates to iAd that he wants to use; and also that this is NOT the case when ad content is being downloaded, which just uses the iPhone's regular user agent. But if all you're wanting to do is detect that iAd is in use, etc., that probably doesn't matter so much.)
It seems that it uses https with Akamai for the content distribution. Checking the iAd framework for text strings reveals https://iadsdk.apple.com/adserver, which looks promising as the base address from which the list of ads are loaded.
Your best bet here is to snoop the actual urls that the device is using. There are many ways to do this, some involving Jailbreaking, but the way described on TUAW seems to be pretty good. This way you can observe many ads and look for common traits.

Resources