Excited to use App Clips to help promote your app? In this article, a case study illustrates how App Clips can be used as a promotional tool to drive app downloads and engagement.
Our client, Hobnob, created an app for event planning that allows users to manage everything from invitations to guest lists to ticket sales and share content before, during, and after the event. This event planning app has been in the AppStore for over five years and has over 90,000 reviews. Hobnob spent thousands on monthly advertising to drive engagement and conversion, but the app didn't stand out and wasn't downloaded often in the highly competitive AppStore.
This is a challenge we have seen many times. We have observed some key reasons why apps aren't downloaded:
Ideally, a trial version of an app would solve these problems. And Apple created just that with their offering of App Clip.
Hobnob wanted to increase downloads and attract more attention to their app, but after running multiple marketing campaigns, they ran out of ideas. The company needed a new approach.
We introduced them to App Clip. An App Clip is a relatively new form of an app launched in iOS14. Its purpose is to allow users to complete quick tasks from the main app without installing the entire app.
During our research, we learned that App Clips can:
Increase app conversion rates
The average cost per acquisition (CPA) was $2.58 in 2023. Research shows that integrating App Clips into iOS applications can increase the conversion rate to download and use an app by over 20%.
If App Clip users are satisfied with their experience, they are more likely to install the complete app to access all its features.
Provide a better user experience
App Clips enable customers to use an app's key features without downloading the entire app. This scenario is ideal for one-time use functions such as restaurant ordering, renting bicycles, and other one-off activities.
It enhances user participation by offering a defined, quick task that is easy to learn. By making the app easy to try and experience its usefulness, users are encouraged to download the entire app, subsequently increasing the conversion rate.
Offer numerous engagement options
Integrating technologies like QR Codes, NFC Tags, App Clip Codes, Safari, Links in Messages, and cards in Maps in a Clip is straightforward. It's very versatile and flexible.
Reduce development costs
They require less development time (and cost less) to create because only part of the app's functionality is reused or modified.
Offer faster download times
Since the app file size is smaller, it can be downloaded and used quickly.
Provide security and privacy
iOS will automatically delete the App Clip after a period of inactivity, and users can be anonymous since no account is required to access any functionality.
App Clips have a wide range of uses
TikTok used an App Clip to encourage users to try and eventually install the TikTok app.
Explode, an app still under development, has received widespread attention for its Clip functionality.
App Clips can be used to pay for parking when leaving the lot.
However, there are a few disadvantages. Pictures cannot be stored locally, APN notifications are only valid for eight hours, and some iOS frameworks cannot be used.
Since the benefits far outweighed the disadvantages, Hobnob thought the App Clip was a great idea and commissioned 57Blocks to develop a version of their original app. We built an App Clip specifically for parties. A host can send or print a QR Code for guests to install the App Clip and share photos taken during a party. The feedback has been positive, and guests continue to download and use the App Clip.
One developer developed and launched the Clip version of their app within two months. Although we could have leveraged some of the existing code to give us a head start, we decided to start fresh to avoid referencing code sections, and to reduce complexity and file size. Within months, the App Clip attracted new users, providing the client a new growth channel without incurring marketing and advertising costs.
Although an App Clip may reuse an app's code directly and be efficient to create, the entire development, configuration, and testing process differs from that of traditional Apps.
One potential impediment: Since the codes in the entire app usually reference each other, an App Clip may have to reference module B to reference module A, and then reference module C, and so forth. This increases the code complexity and size rapidly.
That is why we recommend that the App Clip code be as independent as possible from the full app. Should you consider rewriting the App Clip code, the workload is not significant.
In addition to completing the development of essential App Clip functions, user data continuity and additional live activity/dynamic island further improve its value.
In some scenarios where code reference is required, macro definitions can be used. For example, in App Build Setting
-> Other Swift Flags
add -DFULL_APP
, and determine whether it is an App in the code:
#if FULL_APP
//do something in App
#else
//do something in Clip
Local data can be passed to the full App through the app group. First, you need to enable "App Groups"
at Capability, then in Clip:
let sharedUserDefaults = UserDefaults(suiteName: "group.ClipToApp")
sharedUserDefaults.set(encodedData, forKey: "someKeywords")
In Full App:
let data = sharedUserDefaults.data(forKey: "someKeywords")
Clip passes the user login information to the Full App, and the user can automatically log in after downloading the App. Clip logs in through AppleID and uses app group to pass login information:
let credential = authorization.credential as? ASAuthorizationAppleIDCredential
sharedUserDefaults.set(credential.user, forKey: "SavedAppleUserID")
Full App gets AppleID:
let userId = sharedUserDefaults.data(forKey: "SavedAppleUserID")
ASAuthorizationAppleIDProvider().getCredentialState(forUserID: userId) {state, error in …}
This App Clip logs in via credentials, uses keychain to pass login information, and kSecAttrLabel to distinguish keychain entries:
let query = [
kSecAttrService: service,
kSecAttrAccount: account,
kSecClass: kSecClassGenericPassword,
kSecAttrLabel as String: "appClip"
] as CFDictionary
let attributesToUpdate = [kSecValueData: credentialData] as CFDictionary
SecItemUpdate(query, attributesToUpdate)
Full App queries the keychain data corresponding to kSecAttrLabel:
let query = [
kSecAttrService: service,
kSecAttrAccount: account,
kSecClass: kSecClassGenericPassword,
kSecReturnData: true,
kSecAttrLabel as String: "appClip"
] as CFDictionary
var result: AnyObject? SecItemCopyMatching(query, &result)
A noteworthy feature of this App Clip is that when the camera scans the QR code, Safari opens the corresponding URL, and Message sends the corresponding URL. App Clip cards will automatically display in the camera, Safari, and Message.
This feature mainly requires the configuration of the domain, including the AASA file, metadata on the web, and advanced Clip experience setting in AppstoreConnect:
"appclips":
{
"apps":["ABCDE12345.com.example.MyApp.Clip"]
}
<meta name="apple-itunes-app" content="app-id=myAppStoreID, app-clip-bundle-id=appClipBundleID, app-clip-display=card">
The typical process for using an App Clip is as follows:
Because it differs from the full app, the above steps to display App Clip cards require Apple's services. The App Clip won't be updated if it does not pass the AppStore review and is not published. In order to test a new version of this App Clip, we needed to configure up to three test URLs in TestFlight and then click and start it in TestFlight, which is equivalent to passing the URL as a startup parameter to the App Clip. It will then begin processing based on the URL.
App Clip is a relatively new type of app that has been added to iOS in recent years. Its original design intention is to encourage users to access an app quickly, enhancing the user experience and ultimately increasing the app conversion rate.
Our event planning App Clip:
However, keep in mind that App Clip development is very different from standard app development. We hope that 57Blocks' experience in project establishment, development, configuration, post-testing methods, and sharing some core logic codes helps developers streamline and successfully complete App Clip development.