Tracking an iOS App user - ios5

All,
I would like to collect stats on what users are entering into my apps' search box so I created a web service that phones home with the search string they typed in along with the number of results it returned.
How can I relate these search stats to a specific device? I heard that Apple is going to disallow the access of user device ids:
//deprecated
[[UIDevice currentDevice] uniqueIdentifier]

You could use a third party for your analytics, instead of the web service. Try:
Flurry.com
is a good one.
Then you could use an app like Stats for Flurry to view your statistics:
Stats for Flurry
Yes, Apple has deprecated UDID - but they have provided another method to uniquely identify your users per app. You need to use:
CFUUIDCreate

You could try Flurry, Google Analytics and TestFlight. If you choose one of those, it will save your efforts. Also, if you want to track bugs, BugSense will help you a lot.

Related

How can I check that my iOS app is reviewed & rated by a user or not from my code

If someone reviews my application, is it possible to get an event? I am using a third party library for managing app ratings. It is the most popular iOS rating library called iRate. iRate has an method:
[[iRate sharedInstance] ratedThisVersion]
But it seems, it is not working when I tried to test. Is there any native way to check that my app is reviewed by user or not?
The library iRate stores the fact that a user rated an app in it's user defaults. As a result, you will only be able to tell if a user rated the version once you've actually set the value, using assignment.
Just as a matter of interest, ratedThisVersion is a BOOL property, not a message - so it's [iRate sharedInstance].ratedThisVersion and [iRate sharedInstance].ratedThisVersion = YES; for assignment.
There's no current mechanism in the apple store to determine if the user has rated the app. You can ask for the number of reviews for an app by using the itunes search api (e.g. getting the output from https://itunes.apple.com/lookup?id=364147881 would get the json data for the BBC news app, which as of my checking had an "averageUserRating": 4 and "userRatingCount": 30937).

How I verify that user installed an iPhone app?

We provide advertising capabilities to iPhone app customers, where they can advertise apps to millions of users on social network, and stand out among large number of apps in app store.
Now, to prove the ROI, we also want to provide statistics of how many users actually installed the app using our advertisements on social network.
My question is:
How do I verify whether user installed an app (when user clicks on advertisement and we take user to App Store (on mobile device) or itunes page (on PC/Mac) )
Is there a way to integrate with developer's interface to get this information?
Thanks in advance.
This is a broad question and there are some simple solutions which may require some work. Apple provides you no feedback for when an app is installed. Assuming you are storing the click of the ad on a server you will need to match to that click with something you send up when the app is opened for the first time.
(if the ad is shown in a native app on the phone) You can send up a unique key when the click happens and also send that same unique key when the app opens for the first time and match them on the server. This key can be a hashed mac address or something you save to the UIPasteboard. This requires integration on the side of your clients app because they will need to send a http request to you when the app launches.
If the social network is web based then your best bet is to match on IP address which isn't perfect but can give you a high percentage of accuracy.
I guess I'm assuming you are hosting the ads though. If you are not then you will have to rely on what the ad networks give you and many of them can provide some form of install tracking.
Well, you can always look at that persons phone and check if your app is present there :P
Just kidding.
You have some ways to get information such as these.
If you have registration in your app, you can monitor the userInfo, along with the UDID.
You can setup some webservice calls on applicationDidFinishLaunching for the first time events (using NSUserDefaults key to save the first time info) and use that.
Check out FLURRY for data analytics in your app. This is an awesome service, and allows you to track your users and how they interact with your app. I would recommend this !
Most ad networks have conversion tracking capabilities, but once you click an ad from the web and go to iTunes, all hope is lost tracking a conversion.
I guess you'd be able to track a conversion if you require the user to provide information (like an email address) before directing them to the appstore then requiring them to input that same email once the app is opened.

How to track a app download source at Apple App Store?

Here's the problem. We have several partner to promo our apps (at Apple App Store). But we can't know how many downloads from each partner.
Is there have any solution?
Apple provides no analytics information as to referer for any download. If you put your own analytics in the app, you might be able to guess a referral if a customer use the same IP address for the first run of the app as for the referrer, but an estimate using this method won't be accurate for a number of reasons.

Getting the user's information on iOS

I am developing an iPhone App using Xcode 4.2 .
is there is a way to gather the user's information (name , phone number ,e-mail etc...) upon download from the App store ? if yes , how ?
No, you can't legally gather user's name, phone number, etc.
That would be a privacy violation, and Apple doesn't allow developers to do such things.
NO.. not with official iOS sdk.. Apple will not allow your app in app store if you do so!
You can have the app politely request the user to enter some info about themselves; but according Apple's approval guidelines, can't require that they actually do enter any identifying info.
In addition, Apple provides no identifying info to the developer, and likely can't according to their iTunes privacy policy.
That's what iOS is all about - apps running in a sandbox to keep the user safe and only sharing data with user interaction. You can only get user data by using the AddressBook.framework, which the user has to engage with to allow your app to access that information.
If you're looking for an easy way to get user data, switch to Android. ;)

How to identify user across devices on iOS?

I am working on an app where user will be buying some "credits" as in-app purchases and use them to buy some services inside the app. As user can has more then one device I need to identify him across different devices.
I understand I can create some logging (and store user accounts on my own server) but I would like to avoid this. In best case I would like to use Apple ID but I can't figure out how can I access Apple ID inside an app?
I found similar questions here but no satisfying answer. I do not believe there is no chance to access Apple ID from the app (I don't need password, just the id) as I found something like AVMetadataiTunesMetadataKeyAppleID in AVFoundation but this framework seems to be only for Mac OS X.
Any suggestion how to solve this?
Sorry. There's no way to do it without implementing your own authentication system on your own server. UDIDs are unique to each device and Apple does not give access to the iTunes user account whatsoever.
Other way is you can use facebook authentication in order to achieve that. Just connect you app with facebook api and u can keep their login address with some additional info.
Furthermore, it might be useful for your app if they can share your app with their facebook friends :p
You can identify user with help of GameKit.