Im trying to manage consent cookies and analytics and ads tracking code by following this source:
https://developers.google.com/tag-platform/devguides/consent
My code looks like this:
gtag config
<script async src="https://www.googletagmanager.com/gtag/js?id=<?php echo $localBusiness->getAnalyticsId(); ?>"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
// Default ad_storage to 'denied'.
gtag('consent', 'default', {
'analytics_storage': 'denied',
'ad_storage': 'denied'
});
gtag('js', new Date());
gtag('set', 'url_passthrough', true);
/** Adds here gtag config command with conversion Id */
gtag('config', '<?php echo $localBusiness->getAdsId(); ?>');
gtag('config', '<?php echo $localBusiness->getAnalyticsId(); ?>');
</script>
update consent
consentAdsAnalytics: function() {
var hasAdsConsent = this.getCookie('lorraine-cookies-advertisement');
if (hasAdsConsent == 'yes') {
gtag('consent', 'update', {
'ad_storage': 'granted'
});
} else {
gtag('consent', 'update', {
'ad_storage': 'denied'
});
}
var hasAnalyticsConsent = this.getCookie('lorraine-cookies-analytics');
if (hasAnalyticsConsent == 'yes') {
gtag('consent', 'update', {
'analytics_storage': 'granted'
});
} else {
gtag('consent', 'update', {
'analytics_storage': 'denied'
});
}
},
The problem is that when I click consent button, the visit isnt countend inmediantly, I need to navigate trough the web to begin to count visits from user granted and thus, I lose referal data.
Do you know how is to launch a signal or something similar when I accept the consent.
I'm trying to implement Google Analytics based on consent, so the user is not tracked and the GA cookies are not set until after they accept the cookies. I'm using the following code:
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('consent', 'default', {
'ad_storage': 'denied',
'analytics_storage': 'denied'
});
gtag('js', new Date());
gtag('config', 'UA-XXXXXX', { 'anonymize_ip': true, 'cookie_expires': 0 });
</script>
<!-- End Global site tag (gtag.js) - Google Analytics -->
<script type="text/javascript">
__tcfapi('addEventListener', 2, function(tcData, success) {
if (success && tcData.gdprApplies && (tcData.eventStatus === 'tcloaded' || tcData.eventStatus === 'useractioncomplete') ) {
if (tcData.purpose.consents[1]) {
gtag('consent', 'update', {
'ad_storage': 'granted',
'analytics_storage': 'granted'
})
}
}
})
</script>
This code works great in Chrome, but it's not tracking correctly in Safari. What am I missing?
Thanks!
I can't believe I have to ask for help for such a basic request, but it's driving me crazy :)
I need my Google Analytics reports to tell me how many times a given button has been clicked.
I'm using the following code:
index.html (<head> tag)
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-123456-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-123456-1');
</script>
script.js
window.addEventListener('load', function() {
ga('create', 'UA-130702382-1', 'auto', 'myButtonTracker');
});
myElement.addEventListener('click', function() {
ga("myButtonTracker.send", "event", "button", "click", "myButton has been clicked.");
});
What on earth am I missing?
Try reforming with gtag events.
gtag('event', <action>, {
'event_category': <category>,
'event_label': <label>,
'value': <value>
});
I previously tracked clicks to open tabs / modals etc in my google analytics. I have since had to change to the new gTag code and js links are now not being tracked. How can I fix this?
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-xxxxxxxx-5"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
// line below previously pushed js links events
gtag('event', 'pageview', { 'page': location.pathname + location.search + location.hash});
gtag('config', 'UA-xxxxxxx-5', {
'linker': {
'domains': ['example.org.au']
}
});
I fixed this.
To get the full path including the anchor on page load:
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-xxxxxxx-5', {
'page_path': location.pathname + location.search + location.hash,
'linker': {
'domains': ['example.org.au']
}
});
</script>
then to track an event triggered in JS (eg tab opening)
link = location.pathname.replace(/^[\/]/, '') + location.search + location.hash
gtag('event', 'page_view', {'page_path': link});
I'm new to all this and am just not getting how to track a video that can be played on my site.
I just installed my GA code to my page, so I'm going to assume that I'm using the new Asynchronous tracking. the issue is am not able to track this video in GA panel.
Thanks
My code looks like this .
<script type='text/javascript' src='js/jwplayer.js'></script>
<script type='text/javascript' src='js/jwplayer.html5.js'></script>
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date(); a = s.createElement(o),
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-40700489-1', 'epcint.com');
ga('send', 'pageview');
<script type="text/javascript">jwplayer.key = "myplayerkey=";</script>
<script type="text/javascript">
$(document).ready(function () {
jwplayer('mediaplayer').setup({
file: 'video.mp4',
width: "100%",
height: "480",
autostart: true,
ga: {
}
});
});
</script>
<div id="mediaplayer">
</div>
Any help will be highly appriciate
Thanks
Thanks for your feedback i have updated and Debug the code in GA
debugger i got the error whats this means ?
Initializing Google Analytics. analytics_debug.js:9 Registered new
plugin: ga(provide, "linker", Function) analytics_debug.js:9
Registered new plugin: ga(provide, "displayfeatures", Function)
analytics_debug.js:9 Running command: ga(create, UA-40700489-2,
infopav.com) analytics_debug.js:9 Creating new tracker: t0
analytics_debug.js:9 Running command: ga(send, pageview)
analytics_debug.js:9
Sent beacon:
v=1&_v=j16d&a=686083534&t=pageview&_s=1&dl=http%3A%2F%2Fdev.www.infopave.com%2FPage%2FIndex%2FHOW_TO_ACCESS_LTPP_DATA&ul=en-us&de=UTF-8…30201944&_u=MCCC~&cid=2101349279.1393503811&tid=UA-40700489-2&z=1727898794
analytics_debug.js:9 adSenseId (&a) 686083534
analytics_debug.js:9 apiVersion (&v) 1 analytics_debug.js:9
clientId (&cid) 2101349279.1393503811 analytics_debug.js:9
encoding (&de) UTF-8 analytics_debug.js:9 flashVersion
(&fl) 12.0 r0 analytics_debug.js:9 hitType (&t) pageview
analytics_debug.js:9 javaEnabled (&je) 1 analytics_debug.js:9
language (&ul) en-us analytics_debug.js:9 location
(&dl) http://dev.www.infopave.com/Page/Index/HOW_TO_ACCESS_LTPP_DATA
analytics_debug.js:9 screenColors (&sd) 24-bit
analytics_debug.js:9 screenResolution (&sr) 1680x1050
analytics_debug.js:9 title (&dt) LTPP InfoPave - How to
Access LTPP Data? analytics_debug.js:9 trackingId (&tid)
UA-40700489-2 analytics_debug.js:9 viewportSize (&vp) 1665x429
analytics_debug.js:9
There was an error while handling a listener: TypeError: Cannot read property 'id' of null function
(){if("array"==a.typeOf(m.playlist)&&2>m.playlist.length&&(0==m.playlist.length||
!m.playlist[0].sources||0==m.playlist[0].sources.length))g();else if(s.getStatus()==a.loaderstatus.COMPLETE){for(var
e=0;em.modes[e].type;if(r.supportsConfig())return
r.addEventListener(l.ERROR,d),r.embed(),c(b,f.events),b}m.fallback?(a.log("No
suitable players found and fallback enabled"),new
j.download(n,m,g)):(a.log("No suitable players found and fallback
disabled"),n.parentNode.replaceChild(h,
n))}} jwplayer.js:3
event.returnValue is deprecated. Please use the standard
event.preventDefault() instead. jquery-1.8.2.min.js:2 9 Could not add
internal listener jwplayer.js:3 There was an error calling back an
event handler
Updated Code
$(document).ready(function () {
jwplayer("mediaplayer").setup({
file: 'rtmp://s1nu7pjztotbeg.cloudfront.net/cfx/st/mp4:Help/How_To/GettingStarted_V2-Sm_x264.mp4',
width: "100%",
height: "480",
autostart: true,
events: {
onComplete: function (evt) {
},
onReady: function (event) {
ga('send', 'event', 'Video Played', 'action', { 'page': 'http://dev.www.infopave.com/Page/Index/HOW_TO_ACCESS_LTPP_DATA' });
},
onPlay: function (evt) {
},
onVolume: function (evt) {
alert("the new volume is: " + evt.volume);
}
},
ga: {
}
});
});
i want to send this when some one click the play button ,i want to send this code only
ga('send', 'event', 'Video Played', 'action', { 'page': 'http://dev.www.infopave.com/Page/Index/HOW_TO_ACCESS_LTPP_DATA' });
How i can get that button click in jquery thanks for your help...
Thanks any help will be highly appriciated
I would recommend you look into Event-tracking. You can add a tag in the onclick so that when a user clicks to view your video you will log an event that you can find in your google Analytics under Behavior -> events
I haven't tested this but you should be able to do something like:
<div id="mediaplayer" onclick="ga('send', 'event', 'video', 'click', 'videoname');">
</div>
Note: Events will first show up in the standard report after 24 hours. You can also see them in the real-time reports.
and finally i got success to solve my problem !
<div id="mediaplayer">
</div>
<ul>
<li>State: <span id="stateText">IDLE</span></li>
<li>time: <span id="elapsedText">0</span></li>
</ul>
<script type="text/javascript"> jwplayer.key = "mykeyeasdfasdf2132131=";</script>
<script type="text/javascript">
jwplayer("mediaplayer").setup({
file: 'rtmp://s1nu7pjztotbeg.cloudfront.net/cfx/st/mp4:Help/How_To/GettingStarted_V2-Sm_x264.mp4',
width: 465,
height: 300,
autostart: true,
events: {
onComplete: function (event) {
var elapsedTime = jwplayer("mediaplayer").getPosition();
var timedurationvalue = ((elapsedTime / 60).toFixed(2));
updateValues();
//ga('send', 'event', 'Video Completes', 'ULR of video or Title', 'Page URL', timedurationvalue);
},
onReady: function (event) {
var elapsedTime = jwplayer("mediaplayer").getPosition();
var timedurationvalue = ((elapsedTime / 60).toFixed(2));
updateValues();
// ga('send', 'event', 'Video Plays', 'ULR of video or Title', 'Page URL', timedurationvalue);
},
onPlay: function (event) {
var elapsedTime = jwplayer("mediaplayer").getPosition();
var timedurationvalue = ((elapsedTime / 60).toFixed(2));
// ga('send', 'event', 'Video Plays', 'ULR of video or Title', 'Page URL', timedurationvalue);
// ga('send', 'event', 'category', 'action', 'label', value);
},
onVolume: function (event) {
updateValues();
alert("onvolume called!");
},
onPause: function (event) {
var elapsedTime = jwplayer("mediaplayer").getPosition();
var timedurationvalue = ((elapsedTime / 60).toFixed(2));
// ga('send', 'event', 'Video Paused', 'ULR of video or Title', 'Page URL', timedurationvalue);
alert("onpause called!");
}
}
});
function setText(id, messageText) {
document.getElementById(id).innerHTML = messageText;
}
function updateValues() {
var state = jwplayer("mediaplayer").getState();
var elapsed = jwplayer("mediaplayer").getPosition();
setText("stateText", state);
setText("elapsedText", (elapsed / 60).toFixed(2));
}
</script>
JW Player only supports ga.js for the time being. The new universal analytics does not work yet. That is why.