we have website holds twitter tweet button. looking track social events clicking on tweet button.
we using newer universal analytics , following example: https://developers.google.com/analytics/devguides/collection/analyticsjs/social-interactions
for twitter include js follows:
<script async defer> !function(d,s,id){var js,fjs=d.getelementsbytagname(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getelementbyid(id)){js=d.createelement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentnode.insertbefore(js,fjs);}}(document, 'script', 'twitter-wjs'); </script> we having issues binding tweet event described on twitter here: https://dev.twitter.com/web/javascript/events
the issue 'twttr not defined'. there similar question on here: referenceerror: "twttr not defined" while using twttr.ready()
i have tried implement same approach here, not getting of console logs appear?
<script> window.addeventlistener("load", function() { document.getelementbyid('twitter-wjs').addeventlistener('load', function() { console.log('1'); twttr.ready(function (twttr) { console.log('2'); twttr.events.bind('tweet', function(e){ console.log('3'); if(!e) return; ga('send', 'social', 'twitter', 'tweet', theurl); console.log('tweet'); }) }); }, false); }, false); </script> how can track twitter tweet clicks in ga?
the problem you're adding load event handler twitter widget script inside window object's load event callback. if twitter widget's script code part of page's initial content, browser download script , run before firing window's load event.
in other words, script's load handler never running because load event has happened -- before added listener it.
you can update code check if twttr object there prior adding load listener script:
window.addeventlistener("load", function() { function ontwttrready() { twttr.events.bind('tweet', function(e){ if(!e) return; ga('send', 'social', 'twitter', 'tweet', theurl); console.log('tweet'); }) } if (window.twttr) { ontwttrready(); } else { document.getelementbyid('twitter-wjs') .addeventlistener('load', ontwttrready); } });
Comments
Post a Comment