Untitled
/** * Logs a purchase event to Facebook Analytics. * * @param purchaseAmount - The amount of the purchase. * @param currencyCode - The currency code of the purchase. * @param parameters - Additional parameters associated with the event. */ export const LogFBPurchase = ( pkg: PurchasesPackage, transaction: PurchasesStoreTransaction, parameters?: Params | undefined, ) => { const metaLoggingOption = getMetaLoggingOption() // If the meta logging option is set to "auto-setup", we don't need to manually log the purchase event. if (metaLoggingOption === MetaLoggingOptionExperimentVariant.AutoSetup) return const purchaseAmount = pkg.product.price const currencyCode = pkg.product.currencyCode const isSubscription = pkg.product.productCategory === "SUBSCRIPTION" const eventName = metaLoggingOption === MetaLoggingOptionExperimentVariant.ManualSetupOnlyPurchase ? FBEventName.Purchased : isSubscription ? FBEventName.Subscribe : FBEventName.Purchased let params: Params = { [FBEventParams.NumItems]: 1, [FBEventParams.ContentID]: transaction.productIdentifier, fb_iap_product_type: isSubscription ? "subs" : "inapp", fb_transaction_id: transaction.transactionIdentifier, fb_transaction_date: formatTransactionDate(transaction.purchaseDate), ...parameters, } if (isSubscription) { params = { ...params, fb_iap_subs_period: pkg.product.subscriptionPeriod ?? "", } } if (eventName === FBEventName.Purchased) { AppEventsLogger.logPurchase(purchaseAmount, currencyCode, params) } else { AppEventsLogger.logEvent(eventName, purchaseAmount, { currencyCode, ...params }) } AEMReporterIOS.logAEMEvent(eventName, purchaseAmount, currencyCode, params) }
Leave a Comment