swaarm_sdk 0.3.6
swaarm_sdk: ^0.3.6 copied to clipboard
Attribution and measuring SDK that allows you to interact with the Swaarm platform through a simple API.
Swaarm SDK #
Installation #
To install the Swaarm SDK, add it to your Flutter project by running:
flutter pub add swaarm_sdk
Configuration #
To configure the Swaarm SDK, initialize the client in your main.dart
file using the
SwaarmClient.init(<domain>, <token>)
method. This should be done after running your app:
import 'package:flutter/material.dart';
import 'package:swaarm_sdk/swaarm_sdk.dart';
void main() {
runApp(const MyApp());
SwaarmClient.init("example.swaarm.com", "<token>");
}
Replace "example.swaarm.com"
with your Swaarm tracking domain and "<token>"
with your specific
access token. During development, you can enable debugging with:
import 'package:flutter/material.dart';
import 'package:swaarm_sdk/swaarm_sdk.dart';
void main() {
runApp(const MyApp());
SwaarmClient.init("example.swaarm.com", "<token>", debug: true);
}
Usage #
Automatic Event Tracking #
The Swaarm SDK automatically tracks certain events:
- App Open Event: Fires every time the app is opened.
- Install Event: Fires the first time the app is opened after installation.
These events include enriched user data, such as the OS version, vendorId, and, if available, the IDFA (Identifier for Advertisers).
Note: On devices running iOS 14 and later, user consent is required to access the IDFA. This consent must be requested from a visible app interface. For more details, refer to this StackOverflow answer.
Custom Events #
You can manually trigger custom events using the event
and purchase
methods.
Sending a Custom Event
The event
method allows you to track specific user actions. It supports the following parameters:
typeId
: The type of event you want to track (e.g., "registration").aggregatedValue
: A numerical value that Swaarm aggregates in reports (e.g., number of items purchased).customValue
: A free-form string value presented as-is in reports (e.g., specific details about the event).
SwaarmClient.event
(
typeId: "registration",
aggregatedValue: 25.0,
customValue:
"
{\"email\": \"example@example.org\"}
"
);
Tracking Purchases
The purchase
method is used to track purchase-related events. It supports the following
parameters:
typeId
: The type of purchase event (e.g., "subscription").revenue
: The amount of revenue generated by the purchase.currency
: The currency in which the revenue is reported (e.g., "USD").receiptOrToken
: The receipt data, transaction ID, or token used to verify the purchase.androidPurchaseId
: The purchase or subscription ID for Android transactions.
SwaarmClient.purchase
(
typeId: "subscription",
revenue: 11.0,
currency: "USD",
receiptOrToken: "base64ReceiptDataOrTransactionIdOrToken",
androidPurchaseId
:
"
purchaseOrSubscriptionID
"
,
);
Attribution data
The Swaarm SDK periodically contacts the server to retrieve attribution data until valid data is received. You can access the currently available attribution data via the following property:
SwaarmClient.attributionData
You can also register a callback function which is invoked when successful attribution happens, as in the example below:
import 'package:flutter/material.dart';
import 'package:swaarm_sdk/swaarm_sdk.dart';
void main() {
runApp(const MyApp());
SwaarmClient.init(
"example.swaarm.com",
"<token>",
attributionCallback: (AttributionData attributionData) {
print("Received valid attribution data: $attributionData");
});
}
Deferred Deep Links #
The Swaarm SDK supports deferred deep linking, allowing your app to respond to deep links that were clicked before the app was installed. When the app is opened for the first time, if a deferred deep link was clicked, and you have registered a callback for deep links, the SDK will invoke this callback. You can use this callback to navigate directly to specific pages or perform actions within your app.
To utilize this feature, register a DeferredDeepLinkCallback during the SDK initialization. Here's how you can implement this:
import 'package:flutter/material.dart';
import 'package:swaarm_sdk/swaarm_sdk.dart';
void main() {
runApp(MyApp());
SwaarmClient.init(
"example.swaarm.com",
"<token>",
deferredDeepLinkCallback: (String route) {
// Here you can handle the route, e.g. navigate to it
Navigator.pushNamed(context, route);
}
);
}