Tagged: xcode

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.

iTunes Connect error -22421 solved!

Submitting and app to iTunes Connect without errors is not as simple as it should be, although the review process is now so much faster than it used to be. Back in 2015 app reviews would take almost a week before you knew if the app had been rejected or not. These days (and I am talking November 2016) app reviews take only one day before they are live on the App Store.

Today I tried uploading a new version of Tessitura Pro 1.9.4 to iTunes Connect from within XCode 8.1 and I got an error with code -22421

tessituraweb1

Searching on the internet I couldn’t find any case that applied to mine. Apparently -22421 is returned as an error code for several different reasons.

Here’s the problem I had: On my previous (most recent) version of Tessitura, I selected 9.3 as the iOS version in Deployment Target. But for some reason after opening the project in  XCode 8.1 my deployment target had changed to 8.4

tss34

I am guessing you can’t downgrade the deployment target on an app (although I don’t this for a fact). I changed it back to 9.3 and the new Tessitura built uploaded without any problems

In this new version I am adding a google adwords conversion tracking snippet to track installs on the app and I thought that was the problem. I still don’t know whether the tracking code will be accepted in the review process, but I will write a new post with my findings once it’s worked.

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;
}
}