Skip to content

Consent

Manages user consent options for data processing, which can be integrated with onboarding or used independently.

Consent

A dedicated consent page shown as part of the onboarding flow. Appears as the last onboarding slide, after the welcome screen (if enabled), or as the first screen if no onboarding is configured.

ConsentStandaloneOnboardingPageFeature {
  strings {
    consentPageTitle: String | null // (1)!
    consentTitle: String // (2)!
    consentDescriptionHtml: String // (3)!
    consentFooterHtml: String | null // (4)!
    consentButtonAccept: String // (5)!
  }

  icons {
    consentTitle24: Icon // (6)!
  }

  styles {
    drawBordersAroundConsents: Bool // (7)!
  }

  data {
    consents: List<Consent> // (8)!
  }

  dataProvider: BuiltIn | Custom {
    obtainedConsentIds: Observable<List<String>> // (9)!
    obtainConsentIds: Callback(List<String>) // (10)!
  }
}
  1. Optional title for the standalone consent page at the top of the screen.
  2. Main title displayed on the standalone consent page.
  3. HTML content describing the consent terms and conditions.
  4. Optional HTML footer content for additional information.
  5. Text label for the button that accepts the consent terms.
  6. Icon displayed next to the consent title in the standalone page.
  7. Controls whether to display borders around consent sections.

    Without borders

    With borders

  8. List of consent options that users must and may accept.

  9. Observable property tracking which consent options have been already accepted.
  10. Callback function triggered when user accepts consents.

    You should save the consent IDs that are passed and provide them in the obtainedConsentsIds property for future use. If not stored, the SDK will show the consent screen again during the next Try-On session.

Consent

A dedicated consent page shown when the user is about to upload their photo in the image picker. Recommended when using the predefined models feature, as users can try on without personal photos and consent is only needed when they choose to upload their own.

ConsentStandaloneImagePickerPageFeature {
  strings {
    consentPageTitle: String | null // (1)!
    consentTitle: String // (2)!
    consentDescriptionHtml: String // (3)!
    consentFooterHtml: String | null // (4)!
    consentButtonAccept: String // (5)!
  }

  icons {
    consentTitle24: Icon // (6)!
  }

  styles {
    drawBordersAroundConsents: Bool // (7)!
  }

  data {
    consents: List<Consent> // (8)!
  }

  dataProvider: BuiltIn | Custom {
    obtainedConsentIds: Observable<List<String>> // (9)!
    obtainConsentIds: Callback(List<String>) // (10)!
  }
}
  1. Optional title for the standalone consent page at the top of the screen.
  2. Main title displayed on the standalone consent page.
  3. HTML content describing the consent terms and conditions.
  4. Optional HTML footer content for additional information.
  5. Text label for the button that accepts the consent terms.
  6. Icon displayed next to the consent title in the standalone page.
  7. Controls whether to display borders around consent sections.

    Without borders

    With borders

  8. List of consent options that users must and may accept.

  9. Observable property tracking which consent options have been already accepted.
  10. Callback function triggered when user accepts consents.

    You should save the consent IDs that are passed and provide them in the obtainedConsentsIds property for future use. If not stored, the SDK will show the consent screen again during the next Try-On session.

Embedded

Legal information displayed at the bottom of the onboarding screen. Users are not required to explicitly accept the terms to proceed — this is simply informational text with links to privacy policy and/or terms of service. This is the default consent mode.

ConsentEmbeddedIntoOnboardingFeature {
  strings {
    consentHtml: String // (1)!
  }
}
  1. HTML content displayed at the bottom of the onboarding screen for embedded consent.