Analytics Integration for Blazor Applications
Adding analytics to your Blazor application can provide valuable insights into user behavior. Osirion.Blazor offers easy integration with popular analytics platforms like Microsoft Clarity and Matomo.
Why Use Analytics in Blazor?
Analytics tools can help you:
- Understand user engagement
- Identify usability issues
- Track conversion rates
- Optimize performance
- Make data-driven decisions
Available Analytics Components
Osirion.Blazor provides components for two popular analytics platforms:
Microsoft Clarity
Clarity is Microsoft's free analytics tool that provides heatmaps, session recordings, and insights.
@using Osirion.Blazor.Components.Analytics
@using Osirion.Blazor.Components.Analytics.Options
<ClarityTracker Options="new ClarityOptions {
TrackerUrl = 'https://www.clarity.ms/tag/',
SiteId = 'your-clarity-id',
Track = true
}" />
Matomo (formerly Piwik)
Matomo is an open-source analytics platform that gives you full control over your data.
<MatomoTracker Options="new MatomoOptions {
TrackerUrl = '//analytics.example.com/',
SiteId = '1',
Track = true
}" />
Configuration Options
Both trackers support the following options:
TrackerUrl: The URL of the analytics scriptSiteId: Your site ID for the analytics platformTrack: Controls whether tracking is enabled
Setting Up with Dependency Injection
You can also configure analytics via dependency injection:
// Program.cs
using Osirion.Blazor.Extensions;
// Using configuration
builder.Services.AddClarityTracker(builder.Configuration);
builder.Services.AddMatomoTracker(builder.Configuration);
// Or programmatically
builder.Services.AddClarityTracker(options =>
{
options.TrackerUrl = "https://www.clarity.ms/tag/";
options.SiteId = "your-clarity-id";
options.Track = true;
});
Then in your layout:
@inject IOptions<ClarityOptions> ClarityOptions
@inject IOptions<MatomoOptions> MatomoOptions
@if (ClarityOptions?.Value != null)
{
<ClarityTracker Options="@ClarityOptions.Value" />
}
@if (MatomoOptions?.Value != null)
{
<MatomoTracker Options="@MatomoOptions.Value" />
}
Environment-Specific Configuration
It's a good practice to disable analytics in development environments:
if (builder.Environment.IsProduction())
{
builder.Services.AddClarityTracker(builder.Configuration);
builder.Services.AddMatomoTracker(builder.Configuration);
}
else
{
builder.Services.AddClarityTracker(options => options.Track = false);
builder.Services.AddMatomoTracker(options => options.Track = false);
}
Privacy Considerations
When implementing analytics, consider these privacy best practices:
- Obtain user consent before enabling tracking
- Provide a clear privacy policy
- Allow users to opt out
- Consider data retention policies
- Be transparent about what data is collected
Conditional Tracking
You can conditionally enable tracking based on user consent:
@if (ConsentGiven)
{
<ClarityTracker Options="@ClarityOptions" />
}
Conclusion
Osirion.Blazor makes it easy to integrate analytics into your Blazor applications. By following the examples in this article, you can start tracking user behavior and gaining valuable insights to improve your application.
Remember to respect user privacy and comply with regulations like GDPR when implementing analytics.
