Client Platform Configuration
SplitScreen provides a flexible configuration system that allows clients to customize platform features and recommendation algorithm weights according to their needs.
Overview
Client platform configuration enables you to:
- Set custom weights for your recommendation algorithm factors
- Enable or disable Steam integration for automatic user data synchronization
- Customize how the platform prioritizes different matching criteria
Recommendation Algorithm Weights
You can customize how the recommendation algorithm prioritizes different factors by setting custom weights. This allows you to tailor the matching experience to your specific use case.
Default Weights
If no custom weights are specified, SplitScreen uses these default weights:
| Factor | Weight | Description |
|---|---|---|
games | 1.0 | Game preferences and playtime |
interests | 1.0 | Genre preferences and gaming interests |
location | 1.0 | Geographic proximity and timezone |
personality | 1.0 | MBTI type and gaming motivations |
Setting Custom Weights
To customize the recommendation algorithm, update your client configuration with custom weights:
curl -X PUT \
"https://api.splitscreen-example.com/v1/client/config" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"games": 1.5,
"interests": 0.8,
"location": 1.2,
"personality": 1.0
}'
Example Configuration:
{
"games": 1.5,
"interests": 0.8,
"location": 1.2,
"personality": 1.0
}
Weight Guidelines:
- Higher weights (1.5+) emphasize that factor more heavily in recommendations
- Lower weights (0.5-) reduce the importance of that factor
- Weight of 1.0 maintains the default importance
- Weight of 0.0 completely disables that factor
Use Case Examples
Competitive Gaming Focus:
{
"games": 2.0,
"interests": 1.5,
"location": 0.8,
"personality": 0.5
}
Social Gaming Focus:
{
"games": 1.0,
"interests": 1.2,
"location": 1.5,
"personality": 2.0
}
Casual Gaming Focus:
{
"games": 0.8,
"interests": 1.0,
"location": 1.0,
"personality": 1.2
}
Steam Integration Configuration
Enabling Steam Integration
Steam integration is disabled by default for all clients. To enable automatic Steam data synchronization, simply set the flag in your configuration:
curl -X PUT \
"https://api.splitscreen-example.com/v1/client/config" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"steam_sync_enabled": true
}'
Configuration Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
steam_sync_enabled | boolean | false | Master switch for Steam integration |
What Happens When Enabled
When Steam integration is enabled:
- SplitScreen automatically fetches and syncs user Steam data
- Game libraries, playtime, and achievements are updated regularly
- No additional API keys or configuration required from your side
- Data is synchronized securely using our Steam integration service
Complete Configuration Example
Here's a complete example combining both platform weights and Steam integration:
curl -X PUT \
"https://api.splitscreen-example.com/v1/client/config" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"games": 1.5,
"interests": 0.8,
"location": 1.2,
"personality": 1.0,
"steam_sync_enabled": true
}'
Best Practices
- Start with Default Weights: Begin with the default configuration and adjust based on user feedback
- Test Incrementally: Make small adjustments to weights and monitor recommendation quality
- Consider Your User Base: Competitive games may benefit from higher game/interest weights, while social games may prefer higher personality weights
- Monitor Performance: Track how weight changes affect user engagement and satisfaction
- Steam Integration: Enable Steam sync if your users primarily play Steam games for richer data
Configuration Endpoints
- GET
/v1/client/config- Retrieve current configuration - PUT
/v1/client/config- Update configuration - DELETE
/v1/client/config- Reset to default configuration
For more information about how these configurations affect recommendations, see the Architecture documentation.