Consent & Privacy

Gurulu uses a 4-level consent model that controls what data is collected and how identity claims are processed. Consent is enforced at the SDK level before any data leaves the device.

4-Level Consent Model

Each consent level determines which identity claims are created and what processing is allowed.

LevelDescriptionWhat's tracked
noneNo consentAnonymous aggregates only, no identity claims
analyticsBasic analyticsanonymous_id only, no PII (email, phone, oauth)
marketingMarketing allowedAll claims, campaign attribution
fullFull processingAll claims + probabilistic matching + profiling

SDK Integration

Set the consent level from any platform SDK. The consent level persists across sessions.

Web

// Set consent level
gurulu.consent.setGranular('marketing');

iOS

Gurulu.setConsent(.marketing)

Android

Gurulu.setConsent(ConsentLevel.MARKETING)

How Consent Affects Processing

  • noneidentify() returns early, no claims created, events still tracked anonymously
  • analyticsonly anonymous_id claim, PII filtered out
  • marketing / fullall claims processed normally

Consent Changes

  • Upgradeimmediately enables more processing
  • Downgradestops future PII processing but does NOT delete existing data
  • Deletionseparate GDPR/KVKK deletion request flow

GDPR/KVKK Compliance

Gurulu is designed for privacy compliance out of the box.

  • Privacy by defaultconsent_level starts at 'none'
  • IP addressesnever stored raw -- only daily-rotated hashes
  • Device fingerprintnon-invasive (no canvas, WebGL, battery)
  • Data processornot controller -- customer owns the data
  • Retention policiesconfigurable per DPA

Pseudonymized Identity Graph

All identity operations are designed to prevent cross-tenant and cross-site linking.

  • All identity claims hashed before cross-site operations
  • Tenant-scoped hashing prevents cross-tenant linking
  • PII vault separated from analytics store