Tagged: app developer

How to track Conversions for iOS App Sales

For the last version of Tessitura Pro 1.9.5, I created a short promo video and started a in-stream video campaign in adwords.

The most important aspect of a campaign is to be able to track conversions (how many views of the video turn into actual installations of the app)

Here are the steps I followed to make this happen.

  1. Create and Upload the video to YouTube
  2. Create a new Video campaign in google adwords
    ytc1

    Make sure you choose Mobile app installs and find your app using the search in the Your mobile app drop down search boxtcmo2.jpgOnce you’ve selected your app, new options will appear.
    jut5.jpg
    Choose the Bidding, etc…
    I chose a specific Advanced mobile and tablet options since I want the potential viewers of my promo video to buy the app directly from within the video (actually it will take them to the App Store but on the same device they are viewing the video)

    Then name your Ad group name for the campaign (you could have many different promo videos or different setting for the same video in your campaign, each of those would be an Ad group which is linked to one video).

    And search for your video on YouTube.
    hfyt6.jpg
    Once you’ve selected your video you will have more options to choose from.
    I am using an In-stream ad which will appear at the beginning of some other video, but you may choose a Video discovery ad type that will appear as a recommended video on some part of the screen depending on the device.

    You will also need to name this specific ad in the Ad name box (since you might want to have the same video showing as a different kind of ad for example)
    fhryhf33.jpg

    Then you will be shown the following page:
    fhy77.jpg

  3. Click on the Conversions tool link
    fbf76f6.jpg
  4. Find and click on the name of the conversion you’ve just created (in my case is Tessitura Installation, you may rename it as well)
  5. On the next page choose how you will setup up conversion tracking.
    I chose Put tacking code into the app
    fbfnhhr.jpg
  6. Download the Google Conversion Tracking SDK
    fhf7ryyr6gfhgf.jpg
  7. Open your project in XCode, unzip the downloaded file and drag the entire folder into your project. Make sure you have the Add to target selected
    gf9g98.jpg
  8. The SDK library references the iOS AdSupport development framework which may not already be part of your project. To add this framework, open the Link Binary With Libraries dropdown under the Build Phases tab. Add the framework from the iOS SDK using the + button.
    fy7f333.jpg
  9. Also, you need to add -ObjC to the Other Linker Flags of your application target’s build setting:
    1. In Xcode’s project navigator, press the blue top-level project icon.
    2. Click on your target, then the Build Settings tab.
    3. Under Linking > Other Linker Flags, add -ObjC to both Debug and Release.
      hfnr6gf.jpg
  10. Finally you need to add the [ACTConversionReporter…] code snippet to your AppDelegate.m in the didFinishLaunchingWithOptions
    bcmd334.jpg
  11. Now when you run your project you should get a successful ping to Google in your projects console’s window
    4rfvgttb.jpg
  12. If you go back to the conversions pages in Google Adwords you will eventually see a change in the Tracking Status column saying Recording Conversions (google says it take a couple of days, it work sooner for me)
    fhf766r33e.jpg
  13. It is important that you add a Call-to-action overlay on your promo video.
    savet2.jpg
    So go to your video edit page on your YouTube account and choose the Call-to-action overlay tab. Add a headline, a display URL (I used my website mDecks.com), a destination URL (use the complete iTunes Store url for your app without the https:// itunes.apple.com/us/app/tessitura-pro/id1144493337?ls=1&mt=8 ) and your app’s icon as a 74×74 image
    tesacori.jpg

 

That’s all. Now I am able to track every single Tessitura Pro installation from the promo video I’ve created as a conversion.

Turning the iPhone into a Musical Instrument

While developing our new Christmas Puzzles by mDecks Music app we did an experiment with the CoreMotion module of the iPhone. CoreMotion lets you detect and track movements of the iPhone in real time.

There are many different approaches to implement apps that can handle iPhone movement. The most frequently used technique is to use a method that detects the iPhone being shake but it is not precise and did not work for us. For a more precise tracking method you need to use CoreMotion.

In our solution, we were able to implement a routine that would detect the iPhone movement when the user pretends to be hitting imaginary bells in front of him/her. Our algorithm ended up being very simple and, the response, really fast and efficient. We managed to create different detection algorithms and included in the app.

We created music files that would play a song using the rhythm played by the user as source. You may print the rhythm score to practice our rhythmic sight reading and/or learn how to read and play rhythms while performing a real song, which we think makes practicing rhythms very intuitive and fun.

We turn our first verision into an All-Christmas app called : Sounds of Christmas by mDecks Music which at the moment is waiting for review on the App Store. ( Sounds of Christmas webpage )

Here are our video demos:

To do this you need a CMMotionManager.

– (CMMotionManager *)motionManager
{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        motionManager = [[CMMotionManager alloc] init];
    });
    return motionManager;
}

and then start updating the iphone motion at a specific updateInterval.

– (void)startUpdatingWithFrequency:(int)fv
{
    NSTimeInterval delta = 0.005;
    NSTimeInterval updateInterval = 0.01 + delta * fv;
    if ([motionManager isAccelerometerAvailable] == YES) {
        [motionManager setAccelerometerUpdateInterval:updateInterval];
        [motionManager startDeviceMotionUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMDeviceMotion *motion, NSError *error) {
            [self CALL-YOUR-ROUTINE-HERE];
        }];       
    }
}

You can get all the updated information by using:

motion.userAcceleration.x; //or y or z
motion.attitude.roll; // or pitch or yaw

Once you’ve obtained this data in real time, it’s up to you to create an algorithm that would interpret the device’s movement. It is crucial to set up a coherent updateInterval. It can’t be too short or too long. You have to find it by trial and error.

How to: In-App Purchase On Sale on the App Store

Changing the price of an app on the App Store is pretty straight forward. You go to the Pricing tab of your app in iTunes Connect and then edit it with the Tier you want. You must remember to set a starting date and an ending date. (Use Now to set the price change right away, and use None on the ending date if you want to keep that price indefinitely.)

If you have in-app purchases for a particular app, and you want to change the pricing for them, you must then go to the In-app purchase tab in iTunes Connect then click on the in-app purchase you want to edit. On the popup screen you will see the current setting for that in-app purchase but you have to click on the edit button to change any data including the price.  Then you can choose the new pricing exactly as you do with the app pricing, setting a new tier, starting date and ending date.

Pretty easy, eh? It took me five minutes to change all the in-app purchase prices on my 60 Top Hat Piano Grooves Vol. 1 app which is now ON SALE for $3.99 (was $4.99) and every single module is now $0.99 (were $1.99) except for the rock & pop grooves since there’s quite a few more of those.

Now you can buy 60 lessons with video tutorial & demo, compete piano score, metronome included in the score to practice all for only $3.99,

less than 7 cents $0.07 a lesson, how ridiculous (“amazing”.- I meant)  is that!

 

Building an App on iOS 8 still compatible with iOS7

My new app 20 Saxophone Tricks of the Trade by Mario Cerra has been available on the App Store for over a week now.

We’ve had many downloads apparently with no issues. Yesterday a user wrote us an email saying the app was crashing right after launching. I knew right away it had something to do with the user’s device or IOS.

I downloaded the app from the App Store on an iPad running IOS 7.1.1 and the app crashed right away. I tried it in XCode with the iPad 2 simulator and the app run perfectly but, as soon I connected my iPad with IOS 7 and run it from XCode the app crashed again with an uncaught exemption error.

Long story short, after a few break points I found the issue was in a line where I’ve used containsString to find if a substring is contained in a string, which is an iOS 8 only method. Although the app was set to build for ios 7.1 and up the xcode compiler gave me no warning notice.

The solution is to use the rangeOfString method that is compatible with iOS 7:

[yourString rangeOfString:@”whatever-you-are-looking-for string”].location == NSNotFound

That solved the problem.
To submit a new version of the app to the App Store you must change the version number and build number of the app, archive it and submit it.

Now the app is back on waiting for review on the App Store.

I also added a note in the description for the current version of the app so users still running IOS 7 will wait for the update before buying it.

 

– (NSString*) archivoFullPath: (NSString *)archivo {
NSMutableString* result = [NSMutableString stringWithString: mDecksURLFolder];
if (!([archivo rangeOfString:@”http”].location == NSNotFound)) {
return archivo;
} else {
[result appendString: archivo];
return result;
}
}

60 Top Hat Piano Grooves Free with in-app purchases ready for sale.

After 12 days waiting for review, 60 Top Hat Piano Grooves Free version 1.2 is now ready for sale.

The user has now the option of purchasing a preferred groove module. For example: If you’d like to access all the Rock & Pop grooves only, you may do so by purchasing only that module.

I think this will be a nice feature on the free version since the user already has access to two grooves for every single style. They can try them and choose the style they want to work with first and then when they are ready they can download the next module.

Apple does send you a nice email with all the details:

iTunes Connect
Dear Ariel Ramos,
The following app has been approved and the app status has changed to Ready for Sale:

App Name: 60 Top Hat Piano Grooves Vol. 1 FREE
App Version Number: 1.2
App Type: iOS App
App Apple ID:906262866
The following In-App Purchases are also approved:

In-App Purchase Reference Name: latinreggae
In-App Purchase Product ID: latinreggaepianogrooves
In-App Purchase Reference Name: rockpop
In-App Purchase Product ID: pianogroovesrockpop
In-App Purchase Reference Name: allgrooves
In-App Purchase Product ID: allgroovespiano
In-App Purchase Reference Name: contemporary
In-App Purchase Product ID: contemporarypianogrooves
In-App Purchase Reference Name: jazzbluesgospel
In-App Purchase Product ID: jazzbluesgospelpianogrooves

The importance of the In-App Purchase Screenshot

Yesterday, after 14 days, a new version of our music app Rhythmic Vocabulary for All Instruments Vol. 1 was Rejected by the review team on Apple. This version of the app has an in-app purchase where the user can buy Vol. II within the app.rejected

I made two mistakes when submitting the app for review:

  1. I forgot to upload a in-app screenshot, which is not optional and it is said to be used in the review process only.
     
  2. I did not add the In-App Purchase on the main screen for the app submissioninapp2

In the email from Apple, they described generic problems with in-app purchases but they do not tell you specifically what the problem is. Apparently the most common problem is not having a restore button (or feature) for the user to retrieve the in-app purchases previously made when they re-install the app or they download a new version and, I knew that was not the problem with mine.

I wrote to apple and they promptly reply telling me to submit a new build of the app and to make sure the in-app purchases were included with the build. That meant: Add a screenshot, and add the in-app purchases that you want to include in the app (on the main page)

Now we have to wait for review for another 14 days or so.

60 Top Hat Piano Grooves Free is waiting for review

Today we submitted the new version of 60 Top Hat Piano Grooves Free.

I added 4 modules that are available as in-app purchases,using the method I described on my previous post In App Purchase

60 Top Hat Piano Grooves is a great piano app for piano students and players who want to improve their comping technique in many different styles.

We will see how long it takes…

60 top hat piano grooves   60 top hat piano grooves purchase

Waiting for review on the App Store…

I just finished submitting a new app to the App Store:

20 Saxophone Tricks of the Trade by Mario Cerra.
mainsaxapppic

Mario Cerra is an unbelievable jazz saxophone player  ( I met Mario a few years back when we were studying at Berklee College of Music in Boston) and I asked him to share 20 of his tricks and concepts when improvising at the saxophone, with the hope of creating a great Mobile app with video tutorials, demos, scores and backing tracks for practicing.

I should add, I’ve just finished my piano app a couple of weeks ago, and is already available on the App Store, got a few nice reviews and we are waiting to see how it does on the App Store.

60 Top Hat Piano Grooves Vol. 1

We’ll see what happens with mDecks Music