Integrate 3rd-party analytics providers with Nami.
This functionality is only available on Enterprise billing plans.
NamiAnalyticsSupport.registerAnalyticsHandler { (actionType : NamiAnalyticsActionType, analyticsItems : [String:Any]) in
switch actionType {
case .paywallRaise:
break;
case .purchaseActivity:
break;
@unknown default:
break;
}
}
[NamiAnalyticsSupport registerAnalyticsHandlerWithHandler:^(enum NamiAnalyticsActionType actionType, NSDictionary<NSString *,id> * _Nonnull analyticsItems) {
switch (actionType) {
case NamiAnalyticsActionTypePaywallRaise:
break;
case NamiAnalyticsActionTypePurchaseActivity:
break;
default:
break;
}
}];
NamiAnalyticsSupport.registerAnalyticsHandler { type, map ->
when (type) {
NamiAnalyticsActionType.PAYWALL_RAISE -> {
// action
}
NamiAnalyticsActionType.PURCHASE_ACTIVITY -> {
// action
}
NamiAnalyticsActionType.PAYWALL_RAISE_BLOCKED -> {
// action
}
else -> {
// Unknown Event
}
}
}
NamiAnalyticsSupport.registerAnalyticsHandler((namiAnalyticsActionType, stringMap) -> {
switch (namiAnalyticsActionType) {
case PAYWALL_RAISE:
break;
case PURCHASE_ACTIVITY:
break
}
return Unit.INSTANCE;
});
const { NamiAnalyticsEmitter } = NativeModules;
const analyticsEmitter = new NativeEventEmitter(NamiAnalyticsEmitter);
useEffect(() => {
analyticsEmitter.addListener('NamiAnalyticsSent', onNamiAnalyticsReceived);
}, []);
const onNamiAnalyticsReceived = (event) => {
const { analyticsItems, actionType } = event;
switch (actionType) {
case 'paywall_raise':
break;
case 'purchase_activity':
break;
default:
break;
}
}
NamiAnalyticsSupport.analyticsEvents().listen((analyticsData) {
switch(analyticsData.type) {
case NamiAnalyticsActionType.paywall_raise:
// action
break;
case NamiAnalyticsActionType.paywall_raise_blocked:
// action
break;
case NamiAnalyticsActionType.purchase_activity:
// action
break;
case NamiAnalyticsActionType.unknown:
// action
break;
}
});