Finally got it. It's pretty complicated and not described in docs.
In my case I use Google Tag Manager, so there some workarounds I had to make to get successfully fire an event and get callback.
First, we have to get ClientId, which is required with any event sent to Google servers. Actually it's kept in cookies, but Google does not recommend to take it directly from there.
Here is how Google recommends to get it, but this will not work if you are using Google Tag Manager.
ga(function(tracker) {
var clientId = tracker.get('clientId');
});
Instead, you have to get ClientId from getAll method.
var clientId = ga.getAll()[0].get('clientId');
After, you have to create new tracker
ga('create', 'UA-XXX-YYY', {
'clientId': clientId
});
And after that we can send an event:
ga('send', 'event', {
'eventCategory': 'YOUR Category Name', //required
'eventAction': 'YOUR Action name', //required
'eventLabel': 'YOUR Label',
'eventValue': 1,
'hitCallback': function() {
console.log('Sent!!');
//callback function
},
'hitCallbackFail' : function () {
console.log("Unable to send Google Analytics data");
//callback function
}
});
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…