Multi-Product Approval
Multi-product approval allows you to present multiple products to parents for approval in a single consent flow. This reduces friction in the parental consent process, making it easier for families to access your games and services while maintaining compliance with privacy regulations.
Benefits
- Reduced Parent Friction: Parents can approve multiple products at once instead of going through separate consent flows for each product
- Improved Child Experience: Children gain access to multiple products simultaneously, reducing wait times and abandoned consent flows
- Flexible Configuration: Choose which products to bundle together based on your platform architecture and user needs
- Maintain Compliance: All products in a bundle maintain their individual permission settings and regulatory requirements
Use Cases
Multi-product approval is ideal for:
- Platform + Games: You have an account system or platform that multiple games depend on
- Game Collections: You offer multiple related games that families typically want to access together
- Tiered Access: You have core services and optional add-ons that can be approved simultaneously
Example Scenario
Your company offers a gaming platform with a central account system and several individual games. When a child tries to play Game A:
- The consent flow automatically includes both the Account System and Game A
- Parents review and approve permissions for both products at once
- The child gains immediate access to both products
- If the child later wants to play Game B, parents can approve it separately or alongside other games
Configuration Options
There are three ways to implement multi-product approval:
1. Product Bundling (Static Configuration)
Configure which products automatically appear together in consent flows through the Compliance Studio.
How to Configure:
- In the Compliance Studio, select your product
- Go to Configuration, and click Edit within the Multi-Product Approval section.
- Click the toggle next to Enable Multi-Product Approval
- Select which products to bundle with the current product
- Click Push to Test
Parent Experience: When parents receive a consent request for the primary product, they'll automatically see the bundled products included. Parents can remove bundled products if they don't want to approve them.
Best for: Products that are commonly used together but don't have hard dependencies
For more detail on how configuring your product for Multi-Product Approval, see the Compliance Studio guide Multi-Product Approval.
2. Essential Products (Required Dependencies)
Mark another product as required for your product to function. This is typically used when your product depends on a platform or account system.
How to Configure:
- In the Compliance Studio, select your product
- Go to Configuration, and click Edit within the Multi-Product Approval section.
- Click the toggle next to Enable Multi-Product Approval
- Under Essential Product, select the product that must be approved alongside this product
- Click Push to Test
Parent Experience: The essential product cannot be removed from the consent flow. Parents must approve both products together, or reject the consent request entirely.
Important Restrictions:
- A product can only have one essential product
- Essential products cannot themselves require another essential product (no chaining)
- Use this only for true dependencies, not just convenience
Best for: Products that cannot function without access to another product (e.g., a game that requires a platform account)
3. Dynamic Bundling (API-Based)
Programmatically select which products to bundle at the time of creating a consent challenge using the API.
How to Use:
Call the /challenge/create-bulk
API endpoint with the specific product IDs you want to include:
{
"jurisdiction": "US-CA",
"requestedProductIds": [123, 456, 789],
"kuid": "12b9fa0e-6d6d-4903-a1fc-f2233027b71d"
}
Parent Experience: Parents see the specific bundle of products you've defined for this consent request.
Best for:
- Contextual bundling based on user behavior
- A/B testing different product combinations
- Complex logic that determines which products to offer together
Best Practices
Choosing the Right Approach
- Use Bundling when products are often used together but don't have technical dependencies
- Use Essential Products only when one product truly cannot function without another
- Use Dynamic Bundling when you need runtime flexibility or contextual product selection
Configuration Tips
- Start Simple: Begin with essential products only, then add bundling as needed
- Consider the Parent Journey: Don't overwhelm parents with too many products in one bundle
- Test Your Flows: Use Test Mode to verify the parent experience before going live
- Document Dependencies: Keep clear records of which products depend on others for your development team
Permission Considerations
When multiple products are bundled:
- Parents see the union of all permissions from all products
- Each product maintains its own permission configuration
- Parents can enable/disable permissions for each product individually
- All data disclosures from bundled products are presented together
Common Patterns
Pattern 1: Account + Multiple Games
Configuration:
- Account System product (no essential product)
- Game A: Account System as essential product
- Game B: Account System as essential product
- Game C: Account System as essential product
Result: Any game approval automatically requires account system approval, but parents can approve multiple games at once.
Pattern 2: Game Suite with Optional Add-Ons
Configuration:
- Main Game: No essential product
- Expansion Pack A: Main Game as essential product, bundled with Main Game
- Expansion Pack B: Main Game as essential product, bundled with Main Game
Result: Parents can approve the main game with optional expansions in one flow.
Pattern 3: Platform Approach
Configuration:
- Platform Product: No essential product
- Social Features: Platform as essential, bundled with Platform
- Premium Content: Platform as essential, bundled with Platform
Result: Parents approve platform access, with easy add-ons for additional features.
Technical Details
Webhook Events
When parents approve a multi-product bundle, you'll receive separate Challenge.StateChange
webhook events for each approved product. All sessions will share the same kuid
(k-ID user ID), allowing you to associate them with the same child.
Session Management
Each approved product in a bundle creates its own session with its own sessionId
. You should:
- Cache all sessions associated with a player's
kuid
- Use the appropriate session when checking permissions for each product
- Query sessions using
/session/get
with the relevantsessionId
orkuid
and product API key
API Endpoints
- Static Configuration: Compliance Studio UI
- Dynamic Bundling:
/challenge/create-bulk
- Session Retrieval:
/session/get?kuid={kuid}
(returns session for the product associated with your API key)
Edge Cases and Considerations
When configuring multi-product approval, be aware of how essential products affect age requirements and permissions:
Age Minimum Requirements
The Rule: A child must meet the age requirements for all products in a bundle.
If an essential product has a higher age minimum than the product that depends on it, children below that age will be denied access to both products.
Example:
- Game A: Minimum age 10, requires Account System as essential product
- Account System: Minimum age 13
Result: Children must be at least 13 to access Game A, even though Game A's configured minimum is 10.
Best Practice: Set the age minimum of dependent products to be equal to or higher than their essential product's age minimum.
Permission Handling
The Rule: Parents must approve the most restrictive permission requirements across all bundled products.
When products are bundled together, k-ID evaluates each permission across all products and applies the most restrictive setting:
- If a permission is required in any product, it becomes required for the entire bundle
- If a permission is optional in one product but required in another, it becomes required
- Parents must grant all required permissions to complete the consent flow
Example:
- Game A: "Voice Chat" is optional (parent can choose)
- Account System (essential to Game A): "Voice Chat" is required (parent must approve)
Result: Parents must approve "Voice Chat" to grant consent, even though Game A alone would have made it optional.
Best Practice:
- Align permission requirements between dependent products when possible
- Review the combined permission set that parents will see
- Consider whether certain permissions should be required at the platform level or game level
Testing Your Configuration
Before going live:
- Review Your Product Architecture: Identify which products have dependencies and which are commonly used together
- Configure in Test Mode: Set up your multi-product approval configuration in the test environment
- Test the Parent Experience: Go through the consent flow as a parent to verify the experience
- Review Webhook Integration: Ensure your backend properly handles multiple session events
- Push to Live: When ready, publish your configuration to the live environment