Untitled
unknown
typescript
10 months ago
1.8 kB
7
Indexable
/**
* 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)
}
Editor is loading...
Leave a Comment