Integrating SDK iOS Integration Tutorial from App Analytics on Vimeo.

1. Open your Terminal.

2. If you have CocoaPods gem in your system, you don’t need to do following 1 line.

$ sudo gem install cocoapods

3. After CocoaPods installation, go to file that include your .xcodeproj on Terminal with codes like this :

$ cd Desktop/MyProject/MyProject-master/

4. Create a Podfile with this code :

$ touch Podfile

5. Open your Podfile with Xcode on Terminal via this code :

$ open –a Xcode Podfile

6. After your Podfile opened, copy and paste following 3 lines to your Podfile :

pod 'AppAnalytics'

7. Save your Podfile and close the window. Return back to Terminal.

8. Type this command to run your Podfile :

$ pod install

9. ( If you see an error like “pod command not found” or stuck in “Analyzing Dependicies” please check the Troubleshooting Section. )

10. After this step, be sure to always open the generated Xcode workspace ( .xcworkspace ) instead of the .xcodeproj file.


11. In AppDelegate.m , you can see this code :

#import "AppDelegate.h"

12. After this line write this code :

#import "AppAnalytics/Appanalytics.h"

13. Now, find “application didFinishLaunchingWithOptions” method in your AppDelegate.m file and write this code in it :

[AppAnalytics initWithAppKey:@"YOUR_API_KEY" options:@{DebugLog : @(NO)}];

14. Congratulations! Now you can build your app and track all of your analytics.


• If you see “pod command not found”, you can open your terminal and write this codes one by one :

$ sudo gem uninstall cocoapods

$ sudo gem install cocoapods

• If you stuck while “Analyzing Dependencies…” you should use “control + z” shortcut to stop process and write this codes on your terminal one by one :

$ pod repo remove master

$ pod setup

$ pod install

• If you have two .xcodeproj file in same directory, you should add this line to under "pod 'AppAnalytics'" line in your Podfile :

xcodeproj '~/YourXcodeProjectName.xcodeproj'

• Undefined symbols for architecture armv7: "OBJC_CLASS$_AppAnalytics", referenced from ... . Happens when you override cocoa pods linker flags in your target.

Go to your target Build Settings -> Other linker flags -> double click. Add $(inherited) to a new line .

How to Get API Key?

On, when you logged in you can see Manage Apps button on your Overview page. Click it, a page that list all of your apps will be displayed. You can click Show API Key button to see your API Key.

Track Custom User Events

You can automatically define custom events without having to do anything at the admin panel

or you can define events with parameters

As of now, our SDK is available for download from here as an AAR package: AppAnalytics Android SDK (Beta)

Once it gets more fleshed out and stable, we will be moving to JCenter for easier integration via Gradle.

AppAnalytics is dependent of the following packages, you can simply put them in your project's build.gradle along with our SDK:

compile "com.mcxiaoke.volley:library:1.+"
compile ""
compile project(":AppAnalyticsSDK")

We are in closed beta right now. Contact us to get the SDK.

Common Questions

What is a Data Sample?

Data sample is any interaction that your user makes with the app. Touches, swipes, and shakes are all examples of data samples.

How can I pay?

Currently we are in close beta and only provide accounts to a limited number of people registered for the waitlist. Once we launch, we’ll be accepting all major credit cards including Visa, MasterCard, American Express and Discover. You will also be able to pay through PayPal.

What are advanced heat maps?

Advanced heat maps allows you to look for specific touches like “the first touch when the user navigates to a screen”. You can get first through fourth and last touch on any screen.

How many Data Samples do I need?

The number of data samples you need depends on a number of factors but to have an idea about it, we recommend multiplying the number of monthly users times the number of screens in your app.


Is your site secure?

The site is secured with SSL. All the requests that your application sends to the server are secure.

Where is my data stored?

For the security and reliability reasons, your data is stored on Microsoft Azure with Geo Replication to provide you the best experience.

Does AppAnalytics SDK tracks keyboard touches?



When is the data uploaded from users device?

Data is automatically sent periodically and when the app is deactivated. If there’s no internet connection at these times, App Analytics SDK stores your data on the device until the next sending attempt.

How much data is uploaded from users devices?

Usually the session data is under 10 KB. If the data is stored locally, the size of a single file won’t exceed 100 KB.

What is a session?

Session is a single usage of the application. It starts when the app launches and ends when the application is terminated.

What platforms do you support?

iOS is currently the only supported platform.

Are you going to support other platforms in the future?

Yes, absolutely and in very near future.

What iOS versions are supported?

The client supports iOS 7 or later iOS versions.

Data Samples & Interfaces

What is a Data Sample?

Data sample is any interaction that your user makes with the app. Touches, swipes, and shakes are all examples of data samples.

I need more Data Samples than what you offer.

Great! Contact us and we will provide you with a custom plan.


What gestures do you track?

Rotation (clockwise and counter clockwise)
Pinch (zoom in, zoom out)
Up to 4 finger swipe (left, right, up, down)

How can I turn on gesture recognition in my application?

Just integrate the SDK and start it as described in

Can I disable gesture recognition?


Will your gesture recognizer interfere with my gesture recognizer?

No. We worked hard to prevent this from happening.

Navigation Flow

What is navigation flow?

Navigation flow is a directed graph representing the overall flow of all your users in the app.

Why some arrows are thicker then other?

Thicker arrows mean more users are following that flow. (exp: more users navigating from news feed to profile page result in that arrow being thicker than the arrow representing users navigating from news feed to settings page.)


What can I do if I have a feature request?

Great, we’re always looking for ways to improve our product. Just shoot an email to and we’ll add it to our backlog.

What can I do if I find a bug?

Just send an email to so we can look into it.