Forked from Blazor-Analytics, itself MIT License, Copyright (c) 2019 Ivan Sanz Carasa.
Developed by Material-Blazor.
First, import the namespaces in _Imports.razor
+@using GoogleAnalytics.Blazor
Then, add the GBAnchor
component to the end of App.razor
.
+ <GBAnchor />
Edit _Layout.cshtml
:
<script src="_framework/blazor.server.js"></script>
+ <script src="_content/GoogleAnalytics.Blazor/googleanalytics.blazor.js"></script>
Edit index.html
and apply the following change:
<script src="_framework/blazor.webassembly.js"></script>
+ <script src="_content/GoogleAnalytics.Blazor/googleanalytics.blazor.js"></script>
Inside Program.cs
, call AddGBService
. This will configure [YOUR_GTAG_ID]
automatically. You can elect to
omit the tag id and call SetTargetId
from the service injected into a component or service at a later stage; this
is helpful if for instance you need to run a back end query in order to determine the tag.
+ builder.Services.AddGBService("[YOUR_GTAG_ID]");
You may wish to set additional config info and/or
globally applicable event params (i.e. applied to every call to TrackEvent
):
+ builder.Services.AddGBService(
+ "[YOUR_GTAG_ID]",
+ additionalConfigInfo: new Dictionary<string, object>()
+ {
+ { "user_id", "[YOUR_USER_ID]" }
+ },
+ globalEventParams: new Dictionary<string, object>()
+ {
+ { "user_id", "YOUR_USER_ID" }
+ });
You can set all three of these items using IGBAnalyticsManager.SetTrackingId()
, IGBAnalyticsManager.SetAdditionalConfigInfo()
and IGBAnalyticsManager.SetGlobalEventParams()
respectively, after having injected the IGBAnalyticsManager
service into a component or another service (either scoped or transient).
- Inject
IGBAnalyticsManager
wherever you want to trigger the event. - Call
IGBAnalyticsManager.TrackEvent
passing theEventName
andEventData
(an object containing the event data).
Or
Call IGBAnalyticsManager.TrackEvent
passing the EventName
, Value
and Category
(optional).
@using GoogleAnalytics.Blazor
@inject IGBAnalyticsManager AnalyticsManager
AnalyticsManager.TrackEvent("generate_lead", new {currency = "USD", value = 99.99});
- Inject
IGBAnalyticsManager
into a blazor component.
@using GoogleAnalytics.Blazor
@inject IGBAnalyticsManager AnalyticsManager
- Suppress tracking for just the current page.
protected override void OnInitialized()
{
AnalyticsManager.SuppressNextPageHitTracking();
}
- Disable page tracking for the whole application.
protected override void OnInitialized()
{
AnalyticsManager.DisableGlobalTracking();
}
- Re-enable page tracking for the whole application.
protected override void OnInitialized()
{
AnalyticsManager.EnableGlobalTracking();
}