Discussions

Ask a Question

A/B experiment

Hello! I need help to check which source converts more users to trials - onboarding screens or 2 variants in subscription screen. How to configure this expiriment?

Bulk subscription management for multiple users simultaneously

We would like to provide subscriptions to multiple users simultaneously. We have a list of users with their email addresses in a CSV file. Does Qconversion offer any feature or option that allows us to upload this CSV(or any other file format with list of email id\`s) and grant subscriptions to all the user accounts listed?
ANSWERED

Request for Code Review and Concern about Qonversion Integration Impact on App Performance

Currently, I have modified three functions to insert Qonversion-related code. Can you help me review whether I have done it correctly? I have another concern. If, after trying, I am not satisfied with the outcome and decide not to purchase any plan from Qonversion, will the newly added Qonversion-related code affect my app’s performance in production? Thank you. ``` func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { ... let config = Qonversion.Configuration(projectKey: "XXX", launchMode: .analytics) Qonversion.initWithConfig(config) return true } private func listenForTransactions() -> Task<Void, Error> { return Task.detached { //Iterate through any transactions which didn't come from a direct call to `purchase()`. for await result in Transaction.updates { do { let transaction = try self.checkVerified(result) //Deliver content to the user. await self.updatePurchasedIdentifiers(transaction) //https://documentation.qonversion.io/docs/analytics-mode await QonversionSwift.shared.handleTransaction(transaction) //Always finish a transaction. await transaction.finish() } catch { //StoreKit has a receipt it can read but it failed verification. Don't deliver content to the user. error_log(error) } } } } func purchase(_ shop: Shop) async -> Bool { guard let product = products.filter({ $0.id == shop.identifier }).first else { return false } do { //Begin a purchase. let result = try await product.purchase() switch result { case .success(let verification): let transaction = try checkVerified(verification) //Deliver content to the user. await updatePurchasedIdentifiers(transaction) //https://documentation.qonversion.io/docs/analytics-mode await QonversionSwift.shared.handleTransaction(transaction) //Always finish a transaction. await transaction.finish() return true case .userCancelled, .pending: return false default: return false } } catch { error_log(error) } return false } ```
ANSWERED

Connection error

I'm can't solve this error: "Error occured while fetching products There was a network issue. Please make sure that the Internet connection is available on the device Unable to resolve host "api.qonversion.io": No address associated with hostname"
ANSWERED

syncPurchases and syncStoreKit2Purchases

iOS, StoreKit 2 Subscriptions only How do I determine which version I'm using? iOS, do I need to call this method after the purchase is completed? I saw that iOS allows calling this method:syncStoreKit2Purchases <br /> When do I call the following method? Where are the parameters obtained? Subscriptions & Consumables In case you're using StoreKit Version 2 and selling Subscriptions and Consumables we recommend using one of these methods before finishing transactions: Swift await QonversionSwift.shared.syncStoreKit2Transactions() await QonversionSwift.shared.handleTransaction(transaction) await QonversionSwift.shared.handleTransactions(transactions)

Something went wrong on our end.Please try again

When you use the Android SDK to subscribe to product A and then call the updatePurchase API to subscribe to product B after the product expires, an error will occur: Something went wrong on our end. Please try again. Error callback information: QonversionError: {code=PlayStoreError, description=There was an issue with the Play Store service, additionalMessage=It is a proxy of the Google BillingClient error: ERROR. }
ANSWERED

syncHistoricalData

syncHistoricalData I read the document of this method, but I still don't know what the specific function is. When I make a subscription, should I call it? Is it called when the application starts? What are the requirements? identify before or after this method
ANSWERED

purchaseProduct

(void)purchaseProduct:(QONProduct \*)product completion:(QONPurchaseCompletionHandler)completion (void)purchase:(NSString \*)productID completion:(QONPurchaseCompletionHandler)completion Which of these two methods should I use, and what exactly is the difference between what I want to do as a subscription
ANSWERED

restore

void)restore:(QNRestoreCompletionHandler)completion { How should I use this method, when should I use it, and how should I judge to use it in the code
ANSWERED

purchaseProduct

This method sometimes takes a long time to call back, and sometimes it doesn't call back, and I don't receive any information