Analytics
Introduction
Allows an integrating application to track one or more data events emitted by the SDK. This is helpful if an integrating app requires the ability to be notified when receipt is deleted by the user while using Spend Manager.
Note that this feature is currently supported for API v1 only.
Receipt Management
Receipt Deletion Events
Subscribing to Receipt Deletion events will allow your listener to be notified whenever a user deletes a receipt.
Step 1: Add Listener for SDK Analytics Events using addListener(key:listener:)
method of Analytics
shared instance.
Analytics.shared.addListener(key: String(describing: self), listener: self)
Step 2: Listen to the SDK Analytics Event by confirming to EventListener protocol.
extension ViewController: EventListener {
func onSensibillEvent(_ event: TrackingEvent) {
if event.feature == TrackingEvent.Feature.receipt.rawValue,
event.name == TrackingEvent.Name.deletion.rawValue,
let receiptId = event[TrackingEvent.AdditionalFields.receiptId.rawValue] {
// Received receipt deletion event with respective receiptId
}
}
}
Step 3: Remove Listener for SDK Analytics Events using removeListener(key:)
method of Analytics
shared instance.
Analytics.shared.removeListener(key: String(describing: self))
Creating a ReceiptDataObserver
In order to receive notification when a user deletes a receipt, a ReceiptDataObserver
must be created.
Kotlin
val observer: ReceiptDataObserver = object : ReceiptDataObserver {
override fun notify(dataEventType: DataEventType, receipt: Receipt?) {
when (dataEventType) {
DataEventType.STATUS_DELETED -> {
val receiptId = receipt?.id
// A receipt with id receiptId has been deleted
}
else -> {
// Other [DataEventType]s will not currently trigger [notify]
}
}
}
}
Java
ReceiptDataObserver observer = new ReceiptDataObserver() {
@Override
public void notify(@NonNull DataEventType dataEventType, @Nullable Receipt receipt) {
if (dataEventType == DataEventType.STATUS_DELETED) {
final String receiptId = receipt != null ? receipt.getId() : null;
// A receipt with id receiptId has been deleted
}
}
};
Activating an Observer
In order for your ReceiptDataObserver
to be notified by the SensibillSDK
whenever a receipt is deleted, it must be added to the SensibillSDK
’s list of receipt data observers.
Kotlin
SensibillSDK.addReceiptDataObserver(observer)
Java
SensibillSDK.INSTANCE.addReceiptDataObserver(observer);
Removing an Observer
When receipt event updates are no longer required, please remove the observer using SensibillSDK.removeReceiptDataObserver()
.
Kotlin
SensibillSDK.removeReceiptDataObserver(observer)
Java
SensibillSDK.INSTANCE.removeReceiptDataObserver(observer);
SDK Reference
[ReceiptDataObserver](references/v2023-1/android/sensibill-sdk-core/-sensibill -core/com.getsensibill.core/-receipt-data-observer/)[SensibillSDK](references/v2023-1/android/sensibill-sdk-core/-sensibill -core/com.getsensibill.core/-sensibill-s-d-k/)