Documentation Index
Fetch the complete documentation index at: https://documentation.qonversion.io/llms.txt
Use this file to discover all available pages before exploring further.
Context-specific experiments allow you to track metrics exclusively for purchases made within a specific context. This is useful when you want to measure the impact of a particular screen or flow on conversion rates.
When enabled, only purchases that include the experiment’s context key will be counted toward the experiment’s metrics. This gives you more accurate data about how a specific paywall or offer performs.
To use context-specific experiments:
- Set a Context key when creating the experiment
- Enable the Context-specific toggle
- Pass the context key when making purchases in your app
Use the following code snippets to pass context keys when making a purchase:
let purchaseOptions = Qonversion.PurchaseOptions(contextKeys: ["mainOnboarding"])
Qonversion.shared().purchaseProduct(product, options: purchaseOptions) { (entitlements, error, isCancelled) in
// handle result here
}
QONPurchaseOptions *purchaseOptions = [[QONPurchaseOptions alloc] initWithContextKeys:@[@"mainOnboarding"]];
[[Qonversion sharedInstance] purchaseProduct:product
options:purchaseOptions
completion:^(NSDictionary<NSString *,QONEntitlement *> * _Nonnull entitlements,
NSError * _Nullable error,
BOOL cancelled) {
// handle result here
}];
final QPurchaseOptions purchaseOptions = new QPurchaseOptions.Builder()
.setContextKeys(Arrays.asList("mainOnboarding"))
.build();
Qonversion.getSharedInstance().purchase(
this,
product,
purchaseOptions,
new QonversionEntitlementsCallback() {
@Override
public void onSuccess(@NotNull Map<String, QEntitlement> entitlements) {
// handle result here
}
@Override
public void onError(@NotNull QonversionError error) {
// Handle error here
}
}
);
val purchaseOptions = QPurchaseOptions.Builder()
.setContextKeys(listOf("mainOnboarding"))
.build()
Qonversion.shared.purchase(
this,
product,
purchaseOptions,
callback = object : QonversionEntitlementsCallback {
override fun onSuccess(entitlements: Map<String, QEntitlement>) {
// handle result here
}
override fun onError(error: QonversionError) {
// handle error here
}
}
)
var purchaseOptions = QPurchaseOptionsBuilder()
.setContextKeys(['mainOnboarding'])
.build();
var entitlements = await Qonversion.getSharedInstance().purchaseProduct(
product,
purchaseOptions: purchaseOptions
);
const purchaseOptions = new PurchaseOptionsBuilder()
.setContextKeys(['mainOnboarding'])
.build();
const entitlements = await Qonversion.getSharedInstance().purchaseProduct(product, purchaseOptions);
var purchaseOptions = new PurchaseOptionsBuilder()
.SetContextKeys(new List<string> {"mainOnboarding"})
.Build();
Qonversion.GetSharedInstance().PurchaseProduct(product, purchaseOptions, (entitlements, error, isCancelled) =>
{
// handle result here
});
const purchaseOptions = new Qonversion.PurchaseOptionsBuilder()
.setContextKeys(['mainOnboarding'])
.build();
const entitlements = await Qonversion.getSharedInstance().purchaseProduct(product, purchaseOptions);
const purchaseOptions = new PurchaseOptionsBuilder()
.setContextKeys(['mainOnboarding'])
.build();
const entitlements = await Qonversion.getSharedInstance().purchaseProduct(product, purchaseOptions);