Services and Categories
Configure third-party services and organize them into meaningful consent categories.
Service Categories
Biskoui organizes services into standardized categories that users can understand and control.
Essential/Functional
Services required for basic website functionality that don't require explicit consent.
Examples:
- Shopping cart functionality
- User authentication
- Security and fraud prevention
- Load balancing and CDN
- Essential website features
Configuration:
- Usually enabled by default
- Cannot be disabled by users
- No explicit consent required
- Should be minimal and truly essential
Analytics
Services that collect data about website usage and performance.
Examples:
- Google Analytics
- Adobe Analytics
- Hotjar heatmaps
- Custom analytics scripts
- Performance monitoring tools
Data Collected:
- Page views and session data
- User behavior patterns
- Technical performance metrics
- Anonymous usage statistics
Marketing
Services used for advertising, retargeting, and marketing communications.
Examples:
- Facebook Pixel
- Google Ads tracking
- LinkedIn Insight Tag
- Email marketing platforms
- Retargeting pixels
Data Collected:
- Advertising identifiers
- Conversion tracking data
- Audience segmentation data
- Marketing attribution data
Social Media
Services that enable social media integration and sharing.
Examples:
- Social login (Facebook, Google)
- Social sharing buttons
- Embedded social media content
- Social commenting systems
- Social media widgets
Data Collected:
- Social media profile data
- Sharing and interaction data
- Social network connections
- User preferences and interests
Personalization
Services that customize user experience based on preferences or behavior.
Examples:
- Recommendation engines
- Personalized content
- Saved preferences
- Custom user interfaces
- A/B testing platforms
Data Collected:
- User preferences
- Behavioral patterns
- Personalization profiles
- Test group assignments
Adding Services
Method 1: Service Templates
Use pre-configured templates for popular services.
Popular Service Templates
Google Analytics 4:
{
"name": "Google Analytics 4",
"category": "analytics",
"description": "Web analytics service to track website usage and performance",
"script_url": "https://www.googletagmanager.com/gtag/js",
"blocking_method": "script_src",
"consent_required": true
}
Facebook Pixel:
{
"name": "Facebook Pixel",
"category": "marketing",
"description": "Facebook advertising and analytics tracking",
"script_url": "https://connect.facebook.net/en_US/fbevents.js",
"blocking_method": "script_src",
"consent_required": true
}
Google Tag Manager:
{
"name": "Google Tag Manager",
"category": "analytics",
"description": "Tag management system for marketing and analytics",
"script_url": "https://www.googletagmanager.com/gtm.js",
"blocking_method": "script_src",
"consent_required": true
}
Setup Process
- Go to Services in your dashboard
- Click Add Service
- Select from popular templates
- Customize name and description
- Assign to appropriate category
- Save configuration
Method 2: Custom Services
Configure custom or less common services manually.
Required Information
Service Name: User-friendly name (e.g., "Custom Analytics") Category: Choose appropriate category Description: Clear explanation of what the service does Blocking Method: How to prevent the service from loading
Blocking Methods
Script Source Blocking:
- Block scripts by URL pattern
- Most common method
- Works with external scripts
Data Attribute Blocking:
- Block elements with specific attributes
- Good for embedded content
- Flexible targeting
Custom Function Blocking:
- Use JavaScript to control loading
- Most flexible but requires technical knowledge
- Good for complex integrations
Configuration Example
{
"name": "Custom Marketing Tool",
"category": "marketing",
"description": "Internal marketing automation platform",
"blocking_method": "data_attribute",
"blocking_selector": "[data-marketing-tool]",
"consent_required": true,
"vendor_info": {
"name": "Your Company",
"privacy_policy": "https://yourcompany.com/privacy"
}
}
Managed vs Unmanaged Service Modes
biskoui operates in two primary modes for handling third-party services, offering flexibility for different technical requirements and compliance needs.
Managed Mode (Recommended)
In managed mode, biskoui automatically handles service blocking and activation without requiring custom code implementation.
How It Works:
- biskoui automatically detects and blocks common third-party services
- Services are queued until appropriate consent is granted
- Automatic activation when consent is given
- No manual JavaScript implementation required
Supported Services:
- Google Analytics (GA4, Universal Analytics)
- Facebook Pixel and Meta services
- Google Tag Manager and tags
- YouTube and Vimeo embeds
- Twitter/X embeds and widgets
- LinkedIn Insight Tag
- HubSpot tracking code
- Mailchimp and email marketing tools
Configuration:
{
"mode": "managed",
"auto_detection": true,
"service_templates": [
{
"name": "Google Analytics 4",
"auto_block": true,
"activation_method": "automatic"
}
]
}
Benefits:
- ✅ Quick setup with minimal technical knowledge required
- ✅ Automatic updates as services change
- ✅ Consistent blocking behavior
- ✅ Pre-configured templates for popular services
- ✅ Automatic compliance with service-specific requirements
Unmanaged Mode (Developer Control)
In unmanaged mode, developers maintain full control over service behavior using biskoui's JavaScript API and event system.
How It Works:
- biskoui provides consent state and events
- Developers implement custom blocking/activation logic
- Full control over when and how services load
- Custom handling for edge cases and complex integrations
Use Cases:
- Custom or proprietary analytics systems
- Complex service dependencies
- Specific performance optimization requirements
- Advanced integration patterns
- Services not supported in managed mode
Implementation Example:
// Check consent state before loading services
document.addEventListener('biskoui:ready', function() {
if (window.biskoui.hasConsent('analytics')) {
loadCustomAnalytics();
}
if (window.biskoui.hasConsent('marketing')) {
initializeMarketingAutomation();
}
});
// Listen for consent changes
document.addEventListener('biskoui:consent:given', function(event) {
const categories = event.detail.categories;
if (categories.includes('analytics')) {
loadCustomAnalytics();
}
if (categories.includes('marketing')) {
initializeMarketingAutomation();
}
});
// Custom service loading functions
function loadCustomAnalytics() {
// Your custom analytics initialization
if (!window.customAnalytics) {
const script = document.createElement('script');
script.src = '/path/to/analytics.js';
script.onload = function() {
window.customAnalytics.init({
trackingId: 'your-tracking-id'
});
};
document.head.appendChild(script);
}
}
Benefits:
- ✅ Complete control over service behavior
- ✅ Custom loading strategies and optimization
- ✅ Integration with proprietary systems
- ✅ Advanced error handling and fallbacks
- ✅ Perfect for complex enterprise requirements
Hybrid Approach
Many implementations benefit from combining both modes:
// Use managed mode for standard services (Google Analytics, Facebook)
// Combined with unmanaged mode for custom services
// Managed services are handled automatically
// Custom services use the API:
document.addEventListener('biskoui:consent:given', function(event) {
if (event.detail.categories.includes('analytics')) {
// Custom analytics in addition to managed Google Analytics
initializeHeatmapTracking();
loadCustomDashboard();
}
});
Choosing the Right Mode
Choose Managed Mode When:
- Using standard third-party services (Google, Facebook, etc.)
- Want quick implementation with minimal coding
- Need automatic updates and maintenance
- Have limited technical resources
- Prefer guaranteed compliance with service requirements
Choose Unmanaged Mode When:
- Using custom or proprietary services
- Need precise control over loading timing
- Have complex service dependencies
- Implementing advanced performance optimizations
- Building custom consent experiences
Choose Hybrid Approach When:
- Using mix of standard and custom services
- Want benefits of both automated and custom control
- Implementing progressive consent collection
- Building enterprise-scale applications
Service Blocking Implementation
How Service Blocking Works
biskoui prevents third-party services from loading until users provide consent through multiple technical approaches.
Technical Implementation
Script Blocking:
<!-- Before consent -->
<script data-biskoui-blocked data-category="analytics" src="blocked-url"></script>
<!-- After consent -->
<script src="https://analytics-service.com/script.js"></script>
Iframe Blocking:
<!-- Before consent -->
<div data-biskoui-placeholder data-category="social">
<p>Social content requires consent to display</p>
<button onclick="biskoui.requestConsent('social')">Load Content</button>
</div>
<!-- After consent -->
<iframe src="https://social-platform.com/embed"></iframe>
Automatic Blocking
Enable automatic blocking for common services.
Configuration Options
Auto-detect Scripts:
- Automatically detect and block known tracking scripts
- Uses URL patterns to identify services
- Updates regularly with new services
Content Security Policy (CSP):
- Block external resources using CSP headers
- More secure but requires server configuration
- Works at the browser level
JavaScript API:
- Programmatically control service loading
- Most flexible approach
- Requires custom implementation
Setup in Dashboard
- Go to Services → Auto-blocking
- Enable automatic detection
- Configure blocking sensitivity
- Test with preview mode
- Monitor blocking effectiveness
Manual Blocking
For custom services or specific use cases.
Data Attributes
Add data attributes to control specific elements:
<!-- Block until analytics consent -->
<div data-biskoui-category="analytics">
<script src="analytics.js"></script>
</div>
<!-- Block until marketing consent -->
<img data-biskoui-category="marketing"
src="tracking-pixel.gif"
alt="Marketing Pixel">
<!-- Block until social consent -->
<iframe data-biskoui-category="social"
src="social-embed.html"></iframe>
JavaScript Control
Use the JavaScript API for dynamic blocking:
// Check consent before loading
if (biskoui.hasConsent('analytics')) {
loadAnalyticsScript()
}
// Listen for consent changes
biskoui.on('consent:given', function(categories) {
if (categories.includes('marketing')) {
initializeMarketingTools()
}
})
// Progressive consent collection
function askForAnalyticsConsent() {
biskoui.requestConsent(['analytics'], {
message: 'We\'d like to track page views to improve our website',
onAccept: function() {
loadAnalyticsScript()
}
})
}
Service Descriptions
Writing Effective Descriptions
Users need to understand what each service does to make informed consent decisions.
Best Practices
Be Clear and Specific:
- Explain exactly what data is collected
- Mention the purpose and benefits
- Avoid technical jargon
- Use everyday language
Examples of Good Descriptions:
Good: "Google Analytics helps us understand how visitors use our website so we can improve it. It tracks page views, time spent on pages, and which features are most popular."
Bad: "Third-party analytics service for data collection and processing."
Include Privacy Information:
- Link to vendor privacy policies
- Mention data retention periods
- Explain user rights and controls
- Note any data sharing practices
Description Templates
Analytics Services:
[Service Name] helps us understand how you use our website so we can improve your experience. It tracks which pages you visit, how long you spend reading, and which features you find most useful. This data is anonymized and used only to make our website better.
Privacy Policy: [Link]
Data Retention: [Period]
Marketing Services:
[Service Name] allows us to show you relevant advertisements on other websites based on your interests. It tracks your browsing behavior to create a profile of your preferences, which helps us display ads that might interest you.
Privacy Policy: [Link]
Opt-out: [Link]
Social Media Services:
[Service Name] enables social media features like sharing buttons and embedded content. It may collect information about your social media activity and share it with the social media platform to personalize your experience.
Privacy Policy: [Link]
Platform: [Social Media Platform]
Multilingual Support
Provide descriptions in multiple languages for international websites.
Language Configuration
- Go to Services → Descriptions
- Select default language
- Add translations for each service
- Set language detection method
- Test with different locales
Translation Best Practices
- Use professional translators for legal accuracy
- Maintain consistent terminology across languages
- Consider local privacy law requirements
- Test with native speakers
Service Categories Customization
Custom Categories
Create custom categories for specific industry needs.
Healthcare Example
- Medical Essential: Required for healthcare functionality
- Medical Analytics: Health outcome tracking
- Medical Marketing: Healthcare service promotion
- Research: Medical research and studies
Financial Services Example
- Financial Essential: Core banking/finance functions
- Financial Analytics: Transaction and usage analysis
- Investment Marketing: Investment product promotion
- Risk Assessment: Credit and risk evaluation
E-commerce Example
- Store Essential: Shopping cart and checkout
- Store Analytics: Shopping behavior analysis
- Product Marketing: Product recommendations and ads
- Customer Support: Chat and support tools
Category Dependencies
Set up relationships between categories.
Configuration Options
Prerequisite Categories:
- Some categories require others to be enabled first
- Example: "Advanced Analytics" requires "Basic Analytics"
- Prevents users from enabling incompatible combinations
Mutually Exclusive Categories:
- Some categories cannot be enabled together
- Example: "Privacy Mode" vs "Full Tracking"
- Helps users make consistent choices
Implementation Example
{
"category_rules": {
"advanced_analytics": {
"requires": ["basic_analytics"],
"description": "Advanced analytics requires basic analytics to be enabled"
},
"privacy_mode": {
"conflicts_with": ["marketing", "advanced_analytics"],
"description": "Privacy mode disables marketing and advanced tracking"
}
}
}
Testing Service Configuration
Verification Steps
- Service Detection: Confirm all services are properly detected
- Blocking Effectiveness: Verify services are blocked without consent
- Consent Flow: Test that services activate after consent
- Category Logic: Ensure category relationships work correctly
Testing Tools
Browser Developer Tools:
- Check Network tab for blocked requests
- Verify scripts are not loading
- Monitor console for blocking messages
Biskoui Debug Mode:
- Enable debug mode in dashboard
- View detailed blocking information
- See real-time consent state changes
Testing Checklist:
- All services properly categorized
- Service descriptions are clear and accurate
- Blocking works without consent
- Services activate after consent
- Category dependencies work correctly
- Multilingual descriptions display correctly
Next Steps
After configuring services and categories: