Google Play Product Details

Google Play products have a deeply nested structure of objects, containing different information. In our Android and Cross-platform SDKs, we have represented several wrapping classes, containing all the information received from Google Play Billing Library. Below are the specifications of those classes.

QProductStoreDetails class contains core information about the store product.

FieldTypeDescription
originalProductDetailsProductDetailsOriginal product details received from Google Play Billing Library.
basePlanIdStringIdentifier of the base plan to which these details relate. Null for in-app products or if not specified in the Qonversion Dashboard.
productIdStringIdentifier of the subscription or the in-app product.
nameStringName of the subscription or the in-app product
titleStringTitle of the subscription or the in-app product. The title includes the name of the app.
descriptionStringDescription of the subscription or the in-app product.
subscriptionOfferDetailsQProductOfferDetails[]Offer details for the subscription. Offer details contain all the available variations of purchase offers,
including both base plan and eligible base plan + offer combinations from Google Play Console for the current basePlanId. Null for in-app products or if basePlanId is not specified in the Qonversion Dashboard.
defaultSubscriptionOfferDetailsQProductOfferDetailsThe most profitable subscription offer for the client in our opinion from all the available offers. We calculate the cheapest price for the client by comparing all the trial or intro phases along with the base plan.
basePlanSubscriptionOfferDetailsQProductOfferDetailsSubscription offer details containing only the base plan without any offer.
inAppOfferDetailsQProductInAppDetailsOffer details for the in-app product. Null for subscriptions.
hasTrialOfferBooleanTrue, if there is any eligible offer with a trial for this subscription and base plan combination. False otherwise or for an in-app product.
hasIntroOfferBooleanTrue, if there is any eligible offer with an intro price for this subscription and base plan combination. False otherwise or for an in-app product.
hasTrialOrIntroOfferBooleanTrue, if there is any eligible offer with a trial or an intro price for this subscription and base plan combination. False otherwise or for an in-app product.
productTypeQProductTypeThe calculated type of the current product.
isInAppBooleanTrue, if the product type is InApp.
isSubscriptionBooleanTrue, if the product type is Subscription.
isPrepaidBooleanTrue, if the subscription product is prepaid, which means that users pay in advance - they will need to make a new payment to extend their plan.

QProductOfferDetails class contains all the information about the Google subscription offer details. It might be either a plain base plan details or a base plan with concrete offer details.

FieldTypeDescription
originalOfferDetailsSubscriptionOfferDetailsOriginal subscription offer details received from Google Play Billing Library.
basePlanIdStringThe identifier of the current base plan.
offerIdStringThe identifier of the concrete offer, to which these details belong. Null, if these are plain base plan details.
offerTokenStringA token to purchase the current offer.
tagsString[]List of tags set for the current offer.
pricingPhasesQProductPricingPhase[]A time-ordered list of pricing phases for the current offer.
basePlanQProductPricingPhaseA base plan phase details.
trialPhaseQProductPricingPhaseA trial phase details, if exists.
introPhaseQProductPricingPhaseAn intro phase details, if exists. The intro phase is one of single or recurrent discounted payments.
hasTrialBooleanTrue, if there is a trial phase in the current offer. False otherwise.
hasIntroBooleanTrue, if there is any intro phase in the current offer. False otherwise. The intro phase is one of single or recurrent discounted payments.
hasTrialOrIntroBooleanTrue, if there is any trial or intro phase in the current offer. False otherwise. The intro phase is one of single or recurrent discounted payments.

QProductPricingPhase class represents a pricing phase, describing how a user pays at a point in time.

FieldTypeDescription
originalPricingPhasePricingPhaseOriginal pricing phase received from Google Play Billing Library
priceQProductPricePrice for the current phase.
billingPeriodQSubscriptionPeriodThe billing period for which the given price applies.
billingCycleCountIntNumber of cycles for which the billing period is applied.
recurrenceModeQProductPricingPhase.RecurrenceModeRecurrence mode for the pricing phase.
typeQProductPricingPhase.TypeType of the pricing phase.
isTrialBooleanTrue, if the current phase is a trial period. False otherwise.
isIntroBooleanTrue, if the current phase is an intro period. False otherwise. The intro phase is one of single or recurrent discounted payments.
isBasePlanBooleanTrue, if the current phase represents the base plan. False otherwise.

QSubscriptionPeriod class describes a subscription period.

FieldTypeDescription
unitCountIntA count of subsequent intervals.
unitQSubscriptionPeriod.UnitInterval unit.
isoStringISO 8601 representation of the period, e.g. "P7D", meaning 7 days period.

QProductInAppDetails class contains all the information about the Google in-app product details.

FieldTypeDescription
originalOneTimePurchaseOfferDetailsOneTimePurchaseOfferDetailsOriginal one-time purchase offer details received from Google Play Billing Library.
priceQProductPriceThe price of the in-app product.

QProductPrice class contains information about the product's price.

FieldTypeDescription
priceAmountMicrosLongTotal amount of money in micro-units, where 1,000,000 micro-units equal one unit of the currency.
priceCurrencyCodeStringISO 4217 currency code for price.
formattedPriceStringFormatted price for the payment, including its currency sign.
isFreeBooleanTrue, if the price is zero. False otherwise.
currencyCurrencyCurrency object from the priceCurrencyCode. Null if failed to parse.
currencySymbolStringPrice currency symbol. Null if failed to parse.

QSubscriptionPeriod.Unit is the enumeration of the following values: Day, Week, Month, Year, Unknown.

QProductPricingPhase.RecurrenceMode describes the recurrence mode of the pricing phase and contains the following values.

ValueDescription
InfiniteRecurringThe billing plan payment recurs for infinite billing periods unless canceled.
FiniteRecurringThe billing plan payment recurs for a fixed number of billing periods.
NonRecurringThe billing plan payment is a one-time charge that does not repeat.
UnknownUnknown recurrence mode.

QProductPricingPhase.Type describes the type of the pricing phase and contains the following values.

ValueDescription
RegularRegular subscription without any discounts like trial or intro offers.
FreeTrialA free phase.
DiscountedSinglePaymentA phase with a discounted payment for a single period.
DiscountedRecurringPaymentA phase with a discounted payment for several periods.
UnknownUnknown pricing phase type.