App Release Checklist
This guide will describe the necessary steps you need to do before releasing your app with Apphud SDK.
Install Apphud SDK
First of all add Apphud SDK to your app binary as described in the SDK Installation guide.
Once you've successfully installed the SDK, you will need to initialize it. Basic initialization looks like this:
Apphud.start(apiKey: "YOUR_API_KEY")
[Apphud startWithApiKey:@"YOUR_API_KEY" userID:nil observerMode:NO];
Apphud.start(this, "YOUR_API_KEY")
await Apphud.start(apiKey: "YOUR_API_KEY", observerMode: false);
await ApphudSdk.start({ apiKey: "YOUR_API_KEY" });
ApphudSDK.Start("YOUR_API_KEY", (ApphudUser user) => { });
For more details, check our Initialization and Identification guide.
Log Paywall Shown Events
If you're planning to use A/B Experiments, logging Paywall Shown
event is highly recommended, as it influences the calculation of 'Affected Users' and major Paywall Conversion Rates metrics, which are key components in Paywall Analytics, Placement Analytics, and A/B Experiments.
Apphud.paywallShown(paywall)
ApphudSDK.PaywallShown(paywall)
Apphud.paywallShown(paywall)
Collect Device Identifiers
iOS
Since version 3.3.0, the iOS SDK no longer collects the Identifier For Vendor (IDFV) automatically. Failing to pass the IDFV might disrupt some of your MMP integration setups.
Call setDeviceIdentifiers(idfa: String?, idfv: String?)
method immediately after the SDK initialization. If the advertising identifier (IDFA) is not available, pass only the IDFV.
When IDFA becomes available, you can call setDeviceIdentifiers(idfa: String?, idfv: String?)
again.
For more details, refer to Device Identifiers guide.
Android
Call Apphud.collectDeviceIdentifiers()
method after the SDK initialization.
When targeting Android 13 and above, you must also declare AD_ID permission in the manifest file.
For more details, refer to Device Identifiers guide.
Match Device Identifiers
This step is required for some integrations such as Amplitude, Firebase, Mixpanel, or others. Please read the documentation for corresponding third-party integration.
// example for Amplitude
Amplitude.instance()?.initializeApiKey("AMPLITUDE_API_KEY", userId: Apphud.userID())
Collect Attribution Data
Passing attribution data is required for MMP integrations such as AppsFlyer, Adjust, etc. Please read the documentation for corresponding third-party integration.
// example for AppsFlyer
func onConversionDataSuccess(_ conversionInfo: [AnyHashable : Any]!) {
Apphud.addAttribution(data: conversionInfo, from: .appsFlyer, identifer: AppsFlyerLib.shared().getAppsFlyerUID()) { _ in }
}
func onConversionDataFail(_ error: Error) {
Apphud.addAttribution(data: ["error" : error.localizedDescription], from: .appsFlyer, identifer: AppsFlyerLib.shared().getAppsFlyerUID()) { _ in }
}
Collect Apple Search Ads Attribution Data (iOS)
If you are running or planning to run Apple Search Ads campaigns, collecting Apple Search Ads attribution tokens is essential for analyzing campaign data in Apphud.
import AdServices
// call this method after SDK initialization
func trackAppleSearchAds() {
if #available(iOS 14.3, *) {
Task {
if let asaToken = try? AAAttribution.attributionToken() {
Apphud.addAttribution(data: nil, from: .appleAdsAttribution, identifer: asaToken, callback: nil)
}
}
}
}
Purchase Products
Use Placements to extract your products from the placement's paywall object. Each ApphudPlacement
contains a single ApphudPaywall
object, which includes an ordered list of ApphudProduct
objects. To make a purchase, pass one of these ApphudProduct
instances into the Apphud.purchase(...)
method.
Observer Mode Setup
If you are using Apphud SDK in Analytics (Observer) Mode in your Android App, it is recommended to pass Obfuscated Account ID in the BIlling Flow parameters:
BillingFlowParams.newBuilder().setObfuscatedAccountId(Apphud.deviceId())
You can find more details in the Observer Mode guide.
Final Checks
- For all iOS apps you must provide correct Bundle ID and Shared Secret.
- For all Android apps you must provide correct Package Name and Google Play Service Credentials.
- Don't forget to set up App Store Server Notifications for your iOS app.
Both V1 and V2 App Store Server Notifications are supported, however V2 App Store Server Notifications require uploading In-App Purchase Key and Issuer ID to Apphud Project Settings. - Don't forget to set up Google Real-time Developer Notifications for your Android app.
Updated 6 months ago