Flutter
Our Flutter SDK is available on pub.dev, sources are available on Github.
tip
You can check our demo application for minimal implementation example.
warning
AV Insight tracking is currently not available on Flutter SDK. Do not hesitate to contribute on GitHub!
Getting Started
You need to use piano_consents
package.
- Add this to your
pubspec.yaml
file:
dependencies:
piano_analytics: ^1.0.1
- Install the plugin using the command
flutter pub get
Usage
- Initialize
PianoAnalytics
with your site and collect domain in your application initialization
import 'package:piano_analytics/piano_analytics.dart';
...
class _MyAppState extends State<MyApp> {
final _pianoAnalytics = PianoAnalytics(
site: 123456789,
collectDomain: "xxxxxxx.pa-cd.com",
visitorIDType: VisitorIDType.uuid,
storageLifetimeVisitor: 395,
visitorStorageMode: VisitorStorageMode.fixed,
ignoreLimitedAdvertisingTracking: true,
visitorId: "97c7db4e-4514-4b8e-b693-bd6b57043cc1"
);
void initState() {
super.initState();
initPlugins();
}
Future<void> initPlugins() async {
...
await _pianoAnalytics.init();
}
...
}
- Send events
await _pianoAnalytics.sendEvents(events: [
Event(name: "page.display", properties: [
Property.bool(name: "bool", value: true),
Property.int(name: "int", value: 1),
Property.int(name: "long", value: 9007199254740992),
Property.double(name: "double", value: 1.0),
Property.string(name: "string", value: "value"),
Property.date(name: "date", value: DateTime.now()),
Property.intArray(name: "intArray", value: [1, 2, 3]),
Property.doubleArray(name: "doubleArray", value: [1.0, 2.0, 3.0]),
Property.stringArray(name: "stringArray", value: ["a", "b", "c"])
])
]);
Consents
- Add this to your
pubspec.yaml
file:
dependencies:
piano_consents: ^1.0.0
- Install the plugin using the command
flutter pub get
Initialize PianoConsents
Important
Initialize PianoConsents
before initializing PianoAnalytics
import 'package:piano_consents/piano_consents.dart';
...
class _MyAppState extends State<MyApp> {
final _pianoConsents = PianoConsents(
requireConsents: true,
defaultPurposes: {
PianoConsentProduct.pa: PianoConsentPurpose.audienceMeasurement
}
);
void initState() {
super.initState();
initPlugins();
}
Future<void> initPlugins() async {
...
await _pianoConsents.init();
...
}
...
}
Set consents
await _pianoConsents.set(
purpose: PianoConsentPurpose.audienceMeasurement,
mode: PianoConsentMode.essential,
products: [PianoConsentProduct.pa]);
Set all consents
await _pianoConsents.setAll(mode: PianoConsentMode.essential);
Set default consents
await _pianoConsents.clear();