feat: use unique machine ID for reporting GA

This commit is contained in:
debugtalk
2021-11-26 16:09:34 +08:00
parent 3a62c7e6a8
commit ae4068edbc
4 changed files with 16 additions and 6 deletions

View File

@@ -6,8 +6,6 @@ import (
"net/url"
"reflect"
"time"
"github.com/google/uuid"
)
const (
@@ -23,11 +21,10 @@ type GAClient struct {
}
// NewGAClient creates a new GAClient object with the trackingID and clientID.
func NewGAClient(trackingID string) *GAClient {
nodeUUID, _ := uuid.NewUUID()
func NewGAClient(trackingID, clientID string) *GAClient {
return &GAClient{
TrackingID: trackingID,
ClientID: nodeUUID.String(),
ClientID: clientID,
Version: "1", // constant v1
httpClient: &http.Client{
Timeout: 5 * time.Second,

View File

@@ -1,5 +1,10 @@
package ga
import (
"github.com/denisbrodbeck/machineid"
"github.com/google/uuid"
)
const (
trackingID = "UA-114587036-1" // Tracking ID for Google Analytics
)
@@ -7,7 +12,12 @@ const (
var gaClient *GAClient
func init() {
gaClient = NewGAClient(trackingID)
clientID, err := machineid.ProtectedID("hrp")
if err != nil {
nodeUUID, _ := uuid.NewUUID()
clientID = nodeUUID.String()
}
gaClient = NewGAClient(trackingID, clientID)
}
func SendEvent(e IEvent) error {