2011-11-14 8 views
8

मैं एक मोबाइल जावास्क्रिप्ट अनुप्रयोग है कि कभी-कभी स्क्रीन पर एक <video> तत्व डायनामिक रूप से बनाता है मिल गया है। मुझे Omniture के साथ वीडियो नाटकों को ट्रैक करने की जरूरत है। मैंने play, pause, ended, seeking और seeked ईवेंट को ट्रैक करने के लिए बाध्य किया है कि उपयोगकर्ता ने वीडियो शुरू किया, रोका, फिर से शुरू किया, और बंद कर दिया (या उन्होंने वीडियो देखने को पूरा किया)। यह सभी तरहएक कस्टम एचटीएमएल 5 वीडियो प्लेयर से Omniture मीडिया मॉड्यूल के लिए वीडियो मील का पत्थर ट्रैकिंग?

s.Media.play("some_video_name", timePosition); 

और

s.Media.stop("some_video_name"); 

आदि यह सब वर्तमान में काम करता है कॉल के साथ किया जाता है।

मैं अब क्या करना चाहता हूं trackMilestones विकल्प के साथ 0, 25, 75, और 100% के स्थितिगत मील का पत्थर ट्रैक करता है, लेकिन मुझे समझ में नहीं आता कि मुझे ऑनलाइन मिले उदाहरणों में से कोई वास्तव में कैसे सूचित करता है Omniture s.Media वस्तु जहां वे हैं। Omniture जादूगर रूप से यह जानने में सक्षम नहीं होगा कि मेरा वीडियो कहां है जब तक कि यह मेरे वीडियो तत्व में ईवेंट हैंडलर को संलग्न न करे। क्या वे क्या कर रहे हैं?

वहाँ कुछ विधि मैं अपने पद का यह सूचित करने के लिए के रूप में अपने खिलाड़ी वीडियो के चलते s.Media वस्तु पर कॉल कर सकते हैं है?

उत्तर

-1

मुझे यकीन है कि आप पहले से ही पता लगा है कि क्या इस के लिए समाधान नहीं कर रहा हूँ। लेकिन मिलिस्टोन को ट्रैक करने के लिए आप अपने स्कोड के मीडिया मॉनीटर कोड में कोड का निम्न टुकड़ा जोड़ सकते हैं।

var tracked10=false; //Variables used as "flags" to prevent the same code from running 
var tracked90=false; //twice in the same video play. 
s.Media.monitor = function (s,media) { 

//Use this code with either JavaScript or Flash. 
// eVar1 = Media Name 
// event1 = Video Begins 
// event2 = Reached 10% 
// event3 = Reached 90% 
// event4 = Reached 100% 
if (media.event == "Open") { //Executes when the video opens. 
s.Media.trackVars = "eVar1,events"; 
s.Media.trackEvents = "event1"; 
s.events="event1"; 
s.eVar1 = media.name; 
s.Media.track(media.name); 
} 
if ((!tracked10) && (media.percent >= 10) { //Executes at 10% complete. 
s.Media.trackVars = "eVar1,events"; 
s.Media.trackEvents = "event2"; 
s.events="event2" 
s.eVar1 = media.name; 
s.Media.track(media.name); 
tracked10 = true; 
} 
if ((!tracked90) && (media.percent >= 90)) { //Executes at 90% complete. 
s.Media.trackVars = "eVar1,events"; 
s.Media.trackEvents = "event3"; 
s.events="event3" 
s.eVar1 = media.name; 
s.Media.track(media.name); 
tracked90 = true; 
} 
if (media.event == "CLOSE") { //Executes when the video completes. 
s.Media.trackVars = "eVar1,events"; 
s.Media.trackEvents = "event4"; 
s.events="event4" 
s.eVar1 = media.name; 
s.Media.track(media.name); 
var tracked10=false; //Reset flags values at Media.close if visitors can play 
var tracked90=false; //additional videos without reloading the page. 
} 
}; 
0

आप एक फोन जो की अवधि का s.Media सूचित लापता हो रहे हैं: चलाएं/रोकें/की तलाश की घटनाओं के साथ

s.Media.open("some_video_name", videoDuration, videoSrc); 

इस संयोजन में, उन्हें लगभग जहां सूचित करना चाहिए वीडियो कुल प्लेबैक का प्रतिशत है।

मैं लगभग कहना क्योंकि मुझे लगता है कि वे मूल रूप से अपने स्वयं के आंतरिक स्टॉपवॉच जो अभी भी वीडियो प्लेहेड से प्रवाहित हो जाते हैं चला रहे हैं। उदाहरण के लिए, एचटीएमएल 5 वीडियो में आपको विराम के अलावा "प्रतीक्षा" घटना को पकड़ने की आवश्यकता होगी। स्टॉपवॉच एक वास्तविक समय प्लेबैक दर मान लेगा, और अन्य, गैर-घटना फायरिंग कारणों को संभालने का कारण नहीं है कि एक वीडियो क्यों खेल सकता है लेकिन समय पर आगे नहीं बढ़ रहा है (ब्राउज़र पृष्ठ पर कहीं और खेल रहे वीडियो के कारण खेलने से इंकार कर सकता है/साइट)। संभवतः उनके स्टॉपवॉच उनके ट्रैकिंग उद्देश्यों के लिए पर्याप्त है।

4

यहां एक कामकाजी उदाहरण है जो 1/4 मील का पत्थर (25,50,75,100) ट्रैक करता है।

1.Ensure आप अपने s_code.js फ़ाइल

s.loadModule("Media"); 
s.Media.autoTrack=false; 
s.Media.trackWhilePlaying=true; 
s.Media.trackMilestones="25,50,75,100"; 

मीडिया मॉड्यूल के रूप में अच्छी तरह से s_code भीतर आवश्यक है में निम्नलिखित है। यहाँ तुम क्या Omniture

को

s.m_Media_c="var m=s.m_i('Media');m.cn=function(n){var m=this;return m.s.rep(m.s.rep(m.s.rep(n,\"\\n\",''),\"\\r\",''),'--**--','')};m.open=function(n,l,p,b){var m=this,i=new Object,tm=new Date,a=''," 
+"x;n=m.cn(n);if(!l)l=-1;if(n&&p){if(!m.l)m.l=new Object;if(m.l[n])m.close(n);if(b&&b.id)a=b.id;if(a)for (x in m.l)if(m.l[x]&&m.l[x].a==a)m.close(m.l[x].n);i.n=n;i.l=l;i.o=0;i.x=0;i.p=m.cn(m.playerNa" 
+"me?m.playerName:p);i.a=a;i.t=0;i.ts=0;i.s=Math.floor(tm.getTime()/1000);i.lx=0;i.lt=i.s;i.lo=0;i.e='';i.to=-1;i.tc=0;i.fel=new Object;i.vt=0;i.sn=0;i.sx=\"\";i.sl=0;i.sg=0;i.sc=0;i.lm=0;i.lom=0;m.l" 
+"[n]=i}};m._delete=function(n){var m=this,i;n=m.cn(n);i=m.l[n];m.l[n]=0;if(i&&i.m)clearTimeout(i.m.i)};m.close=function(n){this.e(n,0,-1)};m.play=function(n,o,sn,sx,sl){var m=this,i;i=m.e(n,1,o,sn,s" 
+"x,sl);if(i&&!i.m){i.m=new Object;i.m.m=new Function('var m=s_c_il['+m._in+'],i;if(m.l){i=m.l[\"'+m.s.rep(i.n,'\"','\\\\\"')+'\"];if(i){if(i.lx==1)m.e(i.n,3,-1);i.m.i=setTimeout(i.m.m,1000)}}');i.m." 
+"m()}};m.stop=function(n, 

2.Bind HTML5 वीडियो प्लेयर की आवश्यकता होगी

var html5Player = document.getElementById('video'); 
html5Player.addEventListener('loadedmetadata',playerHandler,false); 
html5Player.addEventListener('play',playerHandler,false); 
html5Player.addEventListener('pause',playerHandler,false); 
html5Player.addEventListener('ended',playerHandler,false); 

    var videoOpened = false; 
    var currentTime = 0; 

    function playerHandler(e){ 
     // window.console.log(e);//video meta 
     //window.console.log(e.type); 
     if (html5Player.currentTime > 0) { 
      currentTime = html5Player.currentTime; 
     } 
     switch(e.type){ 
      case 'play': 
       if(!videoOpened){ 
        window.console.log('opened'); 
        s.Media.open(videoPageName, html5Player.duration, publicationName); 
        s.Media.play(videoPageName, 0); 
       }else{ 
        window.console.log('play'); 
        s.Media.play(videoPageName, currentTime); 
       } 
       // alert('currentTime: ' + currentTime); 
       // alert('duration: ' + Math.floor(html5Player.duration)); 
       // alert('videoPageName: ' + videoPageName); 
       videoOpened = true; 
      break; 
      case 'pause': 
       window.console.log('pause'); 
       s.Media.stop(videoPageName,currentTime); 
      break; 
      case 'ended': 
       window.console.log('ended'); 
       s.Media.stop(videoPageName,currentTime); 
       s.Media.close(videoPageName); 
      break; 
      default: 
      break; 
     } 
    } 
+0

'मीडिया मॉड्यूल s_code भीतर की आवश्यकता है और साथ ही का एक अंश है। यहां आपको एक आवश्यकता का एक अंश दिया गया है ... 'आपको वह अंश कहां मिल रहा है? मुझे कोई समस्या है जहां s.Media.play या .open एक विधि नहीं है लेकिन यह s.loadModule ("Media") जैसा दिखता है; लोड हो रहा है। – pjdicke

+0

यह संभवतः एडोब के उदाहरण कोड से संशोधित है, जो यहां है: http://blogs.adobe.com/digitalmarketing/analytics/html5-video-measurement/ – mhenry1384

संबंधित मुद्दे