initializeSnowplowClient static method
Future<void>
initializeSnowplowClient({
- required String mid,
- required Environment environment,
- String merchantType = 'shopify',
Implementation
static Future<void> initializeSnowplowClient({
required String mid,
required Environment environment,
String merchantType = 'shopify',
}) async {
final collectorUrl = SdkConfig.getSnowplowUrl(environment.name);
String appId = mid;
final integrationType =
cacheInstance.getValue(cdnConfigInstance.getKeys(StorageKeyKeys.integrationType)!);
final platformHeaderKey =
cdnConfigInstance.getHeader(APIHeaderKeys.gkPlatform) ?? 'gk-platform';
final integrationTypeHeaderKey =
cdnConfigInstance.getHeader(APIHeaderKeys.kpIntegrationType) ??
'kp-integration-type';
// Initialize Snowplow tracker
_snowplowClient = await Snowplow.createTracker(
namespace: 'appTracker',
endpoint: collectorUrl,
method: Method.get,
requestHeaders: {
platformHeaderKey: merchantType,
integrationTypeHeaderKey: integrationType.toString(),
},
trackerConfig: TrackerConfiguration(
appId: appId,
screenEngagementAutotracking: false,
applicationContext: true,
platformContext: true,
geoLocationContext: false,
sessionContext: true,
),
);
// Get or create user ID
_snowplowUserId = await cacheInstance.getStoredSnowplowUserId();
if (_snowplowUserId == null) {
final uuid = _generateUUID();
_snowplowUserId = uuid;
await cacheInstance.setSnowplowUserId(uuid);
}
// Set user ID for tracking
_snowplowClient?.setUserId(_snowplowUserId!);
}