trackPageView static method
Implementation
static Future<void> trackPageView({
required String pageUrl,
required String pageTitle,
String? cartId,
String? productId,
String? collectionId,
Map<String, dynamic>? customProperties,
}) async {
if (!await _isTrackingEnabled()) return;
final payload = await _createBasePayload('pv');
payload['url'] = pageUrl;
payload['page'] = pageTitle;
if (!_validatePayload(payload)) {
return;
}
final contexts = await _buildContexts(
cartId: cartId,
productId: productId,
collectionId: collectionId,
customProperties: customProperties,
);
if (contexts.isNotEmpty) {
payload['cx'] = base64Encode(utf8.encode(jsonEncode({
'schema': 'iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0',
'data': contexts,
})));
}
// print payload in json string after cx property is added
_printLargeJson('PAYLOAD JSON ', jsonEncode(payload));
await _sendEvent(payload, 'pageview');
}