Superwall

IntegrationAttribute

Attributes for third-party integrations with Superwall.

Purpose

Enumeration of integration attributes that allow you to sync user identifiers from your analytics and attribution providers with Superwall. This enables better user tracking and attribution across platforms.

Signature

enum IntegrationAttribute {
  adjustId,
  amplitudeDeviceId,
  amplitudeUserId,
  appsflyerId,
  brazeAliasName,
  brazeAliasLabel,
  onesignalId,
  fbAnonId,
  firebaseAppInstanceId,
  iterableUserId,
  iterableCampaignId,
  iterableTemplateId,
  mixpanelDistinctId,
  mparticleId,
  clevertapId,
  airshipChannelId,
  kochavaDeviceId,
  tenjinId,
  posthogUserId,
  customerioId;
}

Values

Prop

Type

Usage

Setting a single integration attribute:

await Superwall.shared.setIntegrationAttribute(
  IntegrationAttribute.mixpanelDistinctId,
  'user_123',
);

Setting multiple integration attributes:

await Superwall.shared.setIntegrationAttributes({
  IntegrationAttribute.mixpanelDistinctId: 'user_123',
  IntegrationAttribute.amplitudeUserId: 'amp_456',
  IntegrationAttribute.adjustId: 'adjust_789',
});

Removing an integration attribute:

// Set to null to remove
await Superwall.shared.setIntegrationAttribute(
  IntegrationAttribute.mixpanelDistinctId,
  null,
);

Syncing with analytics providers:

void _syncAnalyticsIds() async {
  // Get IDs from your analytics SDKs
  final mixpanelId = await MixpanelSDK.getDistinctId();
  final amplitudeId = await AmplitudeSDK.getUserId();
  
  // Sync with Superwall
  await Superwall.shared.setIntegrationAttributes({
    IntegrationAttribute.mixpanelDistinctId: mixpanelId,
    IntegrationAttribute.amplitudeUserId: amplitudeId,
  });
}

How is this guide?

Edit on GitHub