Please note that this SDK will only work with Xcode 3.2.5 or above. If you need an SDK for an older Xcode version please email support.

Similar documents
eggon SDK for ios 7 Integration Instructions

Microsoft Tag Scanning SDK for iphone & Android Apps

Getting Started with Flurry Analytics

AppConnect FAQ for MobileIron Technology Partners! AppConnect Overview

Tag Specification Document

Using Free PGI and Xcode

ADITION ios Ad SDK Integration Guide for App Developers

Software Development Kit for ios and Android

GETTING STARTED. AppSher In-App Analytics for ios

Knappsack ios Build and Deployment Guide

Your First App Store Submission

ios Application Development &

ios Development Tutorial Nikhil Yadav CSE 40816/60816: Pervasive Health 09/09/2011

ABTO Software VoIP SIP SDK for iphone Developer Manual

Citrix Worx App SDK Overview

ios Dev Fest Research Network Operations Center Thursday, February 7, 13

MatrixSSL Getting Started

Im360 SDK ios v5.x and newer

IOIO for Android Beginners Guide Introduction

Administering Jive Mobile Apps

Future Technology Devices International Ltd. Mac OS X Installation Guide

App Distribution Guide

COX BUSINESS ONLINE BACKUP

Adobe Marketing Cloud Bloodhound for Mac 3.0

Game Center Programming Guide

Mocean Android SDK Developer Guide

iphone Objective-C Exercises

ios Team Administration Guide (Legacy)

ios App for Mobile Website! Documentation!

It is recommended that you use a clean installation of Lion client before upgrading to Lion Server.

Customize Mobile Apps with MicroStrategy SDK: Custom Security, Plugins, and Extensions

GlobalSCAPE DMZ Gateway, v1. User Guide

How to configure Mac OS X Server

Microsoft Outlook: Beyond the Inbox

MY WORLD GIS. Installation Instructions

Virtual Workplace Personal Device Client Installation Instructions

Cloud Services MDM. Overview & Setup Admin Guide

This documentation is made available before final release and is subject to change without notice and comes with no warranty express or implied.

How To Create A Bada App On Android (Mainfest) On Android And Get A Download Of Bada (For Android) On A Microsoft Gosu 2.5 (For Black

FTP Over SSL (FTPS) Core FTP LE. Installing Core FTP LE"

Engage ios App Administrator s Guide

What s New in Security

KMSYS Worldwide, Inc. Host Gateway Server Configuration

Overview. About Interstitial Ads: About Banner Ads: About Offer-Wall Ads: ADAttract Account & ID

WebView addjavascriptinterface Remote Code Execution 23/09/2013

Building Mobile Applications Creating ios applications with jquery Mobile, PhoneGap, and Drupal 7

Xcode Project Management Guide. (Legacy)

1. License. Copyright 2016 gamedna studio. All rights reserved.

Remote Desktop Services

Using Application Loader

IBM TRIRIGA Anywhere Version 10 Release 4. Installing a development environment

Cisco Stadiumvision Mobile Software Development Kit

INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011

BAM Checkout Mobile Implementation Guide for ios

BlackBerry Enterprise Service 10. Universal Device Service Version: Administration Guide

GREEN HOUSE DATA. Services Guide. Built right. Just for you. greenhousedata.com. Green House Data 340 Progress Circle Cheyenne, WY 82007

New Features in XE8. Marco Cantù RAD Studio Product Manager

Beginner level: Modules 1 to 18. Advanced level: Quick review of modules 1 to 18, then following to module A Simple ios Application

Migrating Trend Micro Mobile Security for Enterprise (TMMS) 8.0 to TMMS 9.0 Patch 1

How to configure your mobile devices post migrating to Microsoft Office 365

Remote Access Enhancements

Introduction to iphone Development

Wellspring FAX Service 1 September 2015

Data storage and retrieval in ios

FileCruiser. Desktop Agent Guide

DCH File Transfer Application User Manual

TapCMS/TapCMSHD for iphone/ipad (Central Monitoring Software) User s Manual

Initial Setup of Mozilla Thunderbird with IMAP for OS X Lion

Apple Mail Outlook Web Access (OWA) Logging In Changing Passwords Mobile Devices Blackberry...

Mobile App Sensor Documentation (English Version)

Amazon WorkMail. User Guide Version 1.0

EMR Link Server Interface Installation

ithenticate User Manual

Qsync Install Qsync utility Login the NAS The address is :8080 bfsteelinc.info:8080

IBM Unica emessage Version 8 Release 6 February 13, User's Guide

XenMobile Logs Collection Guide

Aternity Mobile Wrapper. Overview and Use Cases

Everything is Terrible

How To Use Exhange On Outlook On A Pc Or Macintosh Outlook 2007 On Your Pc Or Ipad (For Windows Xp) On Your Ipad Or Ipa (For Your Windows Xp). (For A Macintosh) On A

Available on VitalSource

Release Notes LS Retail Data Director August 2011

Configuration Guide BES12. Version 12.3

Configuration Guide BES12. Version 12.2

Parallels Virtualization SDK ReadMe CONTENTS:

Sentinel Cloud V.3.5 Installation Guide

Net 2. NetApp Electronic Library. User Guide for Net 2 Client Version 6.0a

Install and Configure Oracle Outlook Connector

Simple, Secure User Guide for OpenDrive Drive Application v for OS-X Platform May 2015

ithenticate User Manual

Affdex SDK for Android. Developer Guide For SDK version 1.0

Colligo Briefcase Enterprise. Administrator s Guide

Copyright Notice. Mobile Testing Enterprise 7.3. September Copyright Keynote LLC. All rights reserved.

Icons: 1024x1024, 512x512, 180x180, 120x120, 114x114, 80x80, 60x60, 58x58, 57x57, 40x40, 29x29

Transcription:

Mobile Application Analytics ios SDK Instructions SDK version 3.0 Updated: 12/28/2011 Welcome to Flurry Analytics! This file contains: 1. Introduction 2. Integration Instructions 3. Optional Features 4. Recommendations 5. FAQ 1. Introduction The Flurry ios Analytics Agent allows you to track the usage and behavior of your ios application on users' phones for viewing in the Flurry Analytics system. It is designed to be as easy as possible with a basic setup complete in under 5 minutes. Please note that this SDK will only work with Xcode 3.2.5 or above. If you need an SDK for an older Xcode version please email support. This archive should contain these files: ProjectApiKey.txt : This file contains the name of your project and your project's API key. Analytics-README.pdf : This file containing instructions on how to use Flurry Analytics. FlurryAnalytics/FlurryAnalytics.h : The required header file header file containing methods for Flurry Analytics. FlurryAnalytics/libFlurryAnalytics.a : The required library containing Flurry's collection and reporting code. There are additional folders for use with Flurry AppCircle. These optional libraries provide alternate streams of revenue for your apps. If you would like to use Flurry AppCircle please refer to AppCircle-README.pdf. Flurry Agent does not require CoreLocation framework and will not collect GPS location by default. Developers who use their own CLLocationManager can set GPS location information in the Flurry Agent (see Optional Features for more information). We also recommend calling FlurryAnalytics from the main thread. FlurryAnalytics is not supported when called from other threads. 2. Integration 1. In the finder, drag FlurryAnalytics/ into project's file folder. (NOTE: If you are upgrading the Flurry ios SDK, be sure to remove any existing Flurry library folders from your project's file folder before proceeding.) 2. Now add it to your project: File > Add Files to Your Project > FlurryAnalytics - Destination: select Copy items into destination group s folder (if needed)

- Folders: Choose 'Create groups for any added folders' - Add to targets: select all targets that the lib will be used for 3. In your Application Delegate: - Import FlurryAnalytics and inside "applicationdidfinishlaunching:" add: [FlurryAnalytics startsession:@"your_api_key"]; #import "FlurryAnalytics.h" - (void)applicationdidfinishlaunching:(uiapplication *)application { [FlurryAnalytics startsession:@"your_api_key"]; //your code You're done! That's all you need to do to begin receiving basic metric data. 3. Optional / Advanced Features You can use the following methods to report additional data. Tracking User Behavior [FlurryAnalytics logevent:@"event_name"]; Use logevent to count the number of times certain events happen during a session of your application. This can be useful for measuring how often users perform various actions, for example. Your application is currently limited to counting occurrences for 300 different event ids (maximum length 255 characters). [FlurryAnalytics logevent:@"event_name" withparameters:your_nsdictionary]; Use this version of logevent to count the number of times certain events happen during a session of your application and to pass dynamic parameters to be recorded with that event. Event parameters can be passed in as a NSDictionary object where the key and value objects must be NSString objects. For example, you could record that a user used your search box tool and also dynamically record which search terms the user entered. Your application is currently limited to counting occurrences for 100 different event ids (maximum length 255 characters). Maximum of 10 event parameters per event is supported. An example NSDictionary to use with this method could be: NSDictionary *dictionary = [NSDictionary dictionarywithobjectsandkeys:@"your dynamic parameter value", @"your dynamic parameter name", nil]; [FlurryAnalytics logevent:@"event_name" timed:yes]; Use this version of logevent to start timed event. [FlurryAnalytics logevent:@"event_name" withparameters:your_nsdictionary timed:yes]; Use this version of logevent to start timed event with event parameters. [FlurryAnalytics endtimedevent:@"event_name" withparameters:your_nsdictionary]; Use endtimedevent to end timed event before app exits, otherwise timed events automatically end when app exits. When ending the timed event, a new event parameters NSDictionary object can be used to update event parameters. To keep event parameters the same, pass in nil for the event parameters NSDictionary object. [FlurryAnalytics logallpageviews:navigationcontroller]; To enable Flurry agent to automatically detect and log page view, pass in an instance of UINavigationController or UITabBarController to countpageviews. Flurry agent will create a delegate on your object to detect user interactions. Each detected user interaction will automatically be logged as a page view. Each instance needs to only be passed to Flurry agent once. Multiple UINavigationController or UITabBarController instances can be

passed to Flurry agent. [FlurryAnalytics logpageview]; In the absence of UINavigationController and UITabBarController, you can manually detect user interactions. For each user interaction you want to manually log, you can use logpageview to log the page view. Tracking Application Errors [FlurryAnalytics logerror:@"error_name" message:@"error_message" exception:e]; Use this to log exceptions and/or errors that occur in your app. Flurry will report the first 10 errors that occur in each session. Tracking Demographics [FlurryAnalytics setuserid:@"user_id"]; Use this to log the user's assigned ID or username in your system after identifying the user. [FlurryAnalytics setage:21]; Use this to log the user's age after identifying the user. Valid inputs are 0 or greater. [FlurryAnalytics setgender:@"m"]; Use this to log the user's gender after identifying the user. Valid inputs are m (male) or f (female) Tracking Location CLLocationManager *locationmanager = [[CLLocationManager alloc] init]; [locationmanager startupdatinglocation]; CLLocation *location = locationmanager.location; [FlurryAnalytics setlatitude:location.coordinate.latitude longitude:location.coordinate.longitude horizontalaccuracy:location.horizontalaccuracy verticalaccuracy:location.verticalaccuracy]; This allows you to set the current GPS location of the user. Flurry will keep only the last location information. If your app does not use location services in a meaningful way, using CLLocationManager can result in Apple rejecting the app submission. Controlling Data Reporting [FlurryAnalytics setsessionreportsoncloseenabled:(bool)sendsessionreportsonclose]; This option is on by default. When enabled, Flurry will attempt to send session data when the app is exited as well as it normally does when the app is started. This will improve the speed at which your application analytics are updated but can prolong the app termination process due to network latency. This option mostly applies for devices running < ios 3.2 that do not enable multi-tasking. [FlurryAnalytics setsessionreportsonpauseenabled:(bool)sendsessionreportsonpause]; This option is off by default. When enabled, Flurry will attempt to send session data when the app is paused as well as it normally does when the app is started. This will improve the speed at which your application analytics are updated but can prolong the app pause process due to network latency. [FlurryAnalytics setsecuretransportenabled:(bool)securetransport]; This option is off by default. When enabled, Flurry will send session data over SSL when the app is paused as well as it normally does when the app is started. This has the potential to prolong the app pause process due to added network latency from secure handshaking and encryption. 4. Recommendations We recommend adding an uncaught exception listener to your application (if you don't already have one) and use logerror to record any application crashes. Adding an uncaught exception listener is easy; you just need to create a function that looks like the following:

void uncaughtexceptionhandler(nsexception *exception) { [FlurryAnalytics logerror:@"uncaught" message:@"crash!" exception:exception]; You then need to register this function as an uncaught exception listener as follows: - (void)applicationdidfinishlaunching:(uiapplication *)application { NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler); [FlurryAnalytics startsession:@"your_api_key"];... Note that you can name the function whatever you'd like and record whatever error information you'd like in the error name and event fields. 5. FAQ How much does the Flurry Analytics SDK add to my app size? The Flurry SDK will typically add 150 KB to the final app size. When does the Flurry Agent send data? By default, the Flurry Agent will send the stored metrics data to Flurry servers when the app starts, resumes, and terminates. To override default Agent behavior, you can turn off sending data on termination by adding the following call before you call startsession: [FlurryAnalytics setsessionreportsoncloseenabled:no]; Sending metrics data when the app pauses, but not enabled by default. You can enable sending data on pause with startsession: [FlurryAnalytics setsessionreportsonpauseenabled:yes]; How much data does the Agent send each session? All data sent by the Flurry Agent is sent in a compact binary format. The total amount of data can vary but in most cases it is around 2Kb per session. What data does the Agent send? The data sent by the Flurry Agent includes time stamps, logged events, logged errors, and various device specific information. This is the same information that can be seen in the custom event logs on in the Event Analytics section. We do not collect personally identifiable information. If AppCircle is enabled, Flurry Agent will also send AppCircle user interaction data. More information is available in the AppCircle documentation. Does the Agent support ios OS 3.x? To support OS 3.x, please set Base SDK to ios 4.3 and ios Deployment Target to ios 3.x. Extra linker flags may be needed if NSConcreteGlobalBlock and UIBackgroundTaskInvalid runtime error occur under 3.x. The linker flags are: -weak_framework UIKit -weak_library /usr/lib/libsystem.b.dylib What version of XCode is required?

Going forward, the Flurry SDK will only support Xcode 3.2.5 and above. Please email support if you need to use older versions of the Flurry SDK. This version of the Flurry SDK is compatible with Xcode 3.2.5 and designed for OS 4.3 (ios) applications. Please let us know if you have any questions. If you need any help, just email iphonesupport@flurry.com! Cheers, The Flurry Team http://www.flurry.com iphonesupport@flurry.com