what is i.Media.open is not a function? | Adobe Higher Education
Skip to main content
Level 3
November 25, 2016
Répondu

what is i.Media.open is not a function?

Hi

I am tracking YT video consumption on my site using the You Tube IFrame Player API and deployed the code using DTM

- My set up

 I did not enable Video Reporting on Adobe Analytics as the whole Solutions Variable option doesn't make sense to me.. I can not see or understand how the mapping is done. So i enabled the variables and events that I needed for my implementation in AA.
2. Youtube link on site is appended with &enablejsapi=1 and has an ID
3. Added the adobe media library
4. Added Youtube tracking module
5. Added Youtube iFrame Javascript API
6. Added Adobe Analytics media module configuration

All looks fine but when i run the video i get the following error on the debugger console -  Uncaught TypeError: i.Media.open is not a function

i.Media.open(r,o,e),i.Media.play(r,s)):(s=Math.floor(t.target.getCurrentTime()),i.Media.play(r,s))}if(t.data==YT.PlayerState.PAUSED){var e="YouTube",n=t.target.getVideoData().title,a=t.target.getVideoData().video_id,r=e+"|"+a+"|"+n;s=Math.floor(t.target.getCurrentTime()),i.Media.stop(r,s)}if(t.data==YT.PlayerState.BUFFERING){var e="YouTube",n=t.target.getVideoData().title,a=t.target.getVideoData().video_id,r=e+"|"+a+"|"+n;s=Math.floor(t.target.getCurrentTime()),i.Media.stop(r,s)}if(t.data==YT.PlayerState.ENDED){var e="YouTube",n=t.target.getVideoData().title,a=t.target.getVideoData().video_id,r=e+"|"+a+"|"+n;s=0,i.Media.stop(r,s),i.Media.close(r)}}t.onYouTubeIframeAPIReady=function(){var t=new Array;t.push("player-tag-tracking");var e=new Array;for(x=0;x<t.length;x++)e[x]=new YT.Player(t[x],{events:{onStateChange:n}})};var a=e.createElement("script");a.src="https://www.youtube.com/iframe_api";var r=e.getElementsByTagName("script")[0];r.parentNode.insertBefore(a,r),i.usePlugins=!0,i.doPlugins=function(t){},i.enableVideoTracking=!0,i.enableVideoTracking&&(i.loadModule("Media"),i.Media.autoTrack=!1,i.Media.playerName="YouTube",i.Media.segmentByMilestones=!0,i.Media.trackMilestones="25,50,75",i.Media.trackUsingContextData=!0,i.Media.contextDataMapping={"a.contentType":"eVar32","a.media.name":"eVar31,prop31","a.media.segment":"eVar33","a.media.view":"event31","a.media.complete":"event35","a.media.segmentView":"event36","a.media.timePlayed":"event37","a.media.milestones":{25:"event32",50:"event33",75:"event34"}},i.Media.trackVars="events,eVar31,eVar32,eVar33,prop31",i.Media.trackEvents="event31,event32,event33,event34,event35,event36,event37"),i.getPreviousValue=new Function("v","c","el","var s=this,t=new Date,i,j,r='';t.setTime(t.getTime()+1800000);if(el){if(s.events){i=s.split(el,',');j=s.split(s.events,',');for(x in i){for(y in j){if(i[x]==j[y]){if(s.c_r(c)) r=s.c_r(c);v?s.c_w(c,v,t):s.c_w(c,'no value',t);return r}}}}}else{if(s.c_r(c)) r=s.c_r(c);v?s.c_w(c,v,t):s.c_w(c,'no value',t);return r}"),i.split=new Function("l","d","var i,x=0,a=new Array;while(l){i=l.indexOf(d);i=i>-1?i:l.length;a[x++]=l.substring(0,i);l=l.substring(i+d.length);}return a"),i.getPercentPageViewed=new Function("n","var s=this,W=window,EL=W.addEventListener,AE=W.attachEvent,E=['load','unload','scroll','resize','zoom','keyup','mouseup','touchend','orientationchange','pan'];W.s_Obj=s;s_PPVid=(n=='-'?s.pageName:n)||s.pageName||location.href;if(!W.s_PPVevent){s.s_PPVg=function(n,r){var k='s_ppv',p=k+'l',c=s.c_r(n||r?k:p),a=c.indexOf(',')>-1?c.split(',',10):[''],l=a.length,i;a[0]=unescape(a[0]);r=r||(n&&n!=a[0])||0;a.length=10;if(typeof a[0]!='string')a[0]='';for(i=1;i<10;i++)a[i]=!r&&i<l?parseInt(a[i])||0:0;if(l<10||typeof a[9]!='string')a[9]='';if(r){s.c_w(p,c);s.c_w(k,'?')}return a};W.s_PPVevent=function(e){var W=window,D=document,B=D.body,E=D.documentElement,S=window.screen||0,Ho='offsetHeight',Hs='scrollHeight',Ts='scrollTop',Wc='clientWidth',Hc='clientHeight',C=100,M=Math,J='object',N='number',s=W.s_Obj||W.s||0;e=e&&typeof e==J?e.type||'':'';if(!e.indexOf('on'))e=e.substring(2);s_PPVi=W.s_PPVi||0;if(W.s_PPVt&&!e){clearTimeout(s_PPVt);s_PPVt=0;if(s_PPVi<2)s_PPVi++}if(typeof s==J){var h=M.max(B[Hs]||E[Hs],B[Ho]||E[Ho],B[Hc]||E[Hc]),X=W.innerWidth||E[Wc]||B[Wc]||0,Y=W.innerHeight||E[Hc]||B[Hc]||0,x=S?S.width:0,y=S?S.height:0,r=M.round(C*(W.devicePixelRatio||1))/C,b=(D.pageYOffset||E[Ts]||B[Ts]||0)+Y,p=h>0&&b>0?M.round(C*b/h):0,O=W.orientation,o=!isNaN(O)?M.abs(o)%180:Y>X?0:90,L=e=='load'||s_PPVi<1,a=s.s_PPVg(s_PPVid,L),V=function(i,v,f,n){i=parseInt(typeof a==J&&a.length>i?a[i]:'0')||0;v=typeof v!=N?i:v;v=f||v>i?v:i;return n?v:v>C?C:v<0?0:v};if(new RegExp('(iPod|iPad|iPhone)').exec(navigator.userAgent||'')&&o){o=x;x=y;y=o}o=o?'P':'L';a[9]=L?'':a[9].substring(0,1);s.c_w('s_ppv',escape(W.s_PPVid)+','+V(1,p,L)+','+(L||!V(2)?p:V(2))+','+V(3,b,L,1)+','+X+','+Y+','+x+','+y+','+r+','+a[9]+(a[9]==o?'':o))}if(!W.s_PPVt&&e!='unload')W.s_PPVt=setTimeout(W.s_PPVevent,333)};for(var f=W.s_PPVevent,i=0;i<E.length;i++)if(EL)EL(E[i],f,false);else if(AE)AE('on'+E[i],f);f()};var a=s.s_PPVg();return!n||n=='-'?a[1]:a"),i.getQueryParam=new Function("p","d","u","var s=this,v='',i,t;d=d?d:'';u=u?u:(s.pageURL?s.pageURL:s.wd.location);if(u=='f')u=s.gtfs().location;while(p){i=p.indexOf(',');i=i<0?p.length:i;t=s.p_gpv(p.substring(0,i),u+'');if(t){t=t.indexOf('#')>-1?t.substring(0,t.indexOf('#')):t;}if(t)v+=v?d+t:t;p=p.substring(i==p.length?i:i+1)}return v"),i.p_gpv=new Function("k","u","var s=this,v='',i=u.indexOf('?'),q;if(k&&i>-1){q=u.substring(i+1);v=s.pt(q,'&','p_gvf',k)}return v"),i.p_gvf=new Function("t","k","if(t){var s=this,i=t.indexOf('='),p=i<0?t:t.substring(0,i),v=i<0?'True':t.substring(i+1);if(p.toLowerCase()==k.toLowerCase())return s.epa(v)}return ''");var o={pl:[]};o.p=function(){var n=function(t,e){var i=t.indexOf("?"),n=t.indexOf("#");if(0>i)return"";var a=t.substr(i+1);n>0&&(a=t.substring(i+1,n));var r,o=a.split("&");for(r=0;r<o.length;r++){var s=o[r].split("=");if(s[0]=unescape(s[0]),s[0]===e){if(s[1]=unescape(s[1]),s[1].indexOf('"')>-1){var c=/"/g;s[1]=s[1].replace(c,'\\"')}if(s[1].indexOf("+")>-1){var u=/\+/g;s[1]=s[1].replace(u," ")}return s[1]}}return""},a=function(e,i,n){"object"==typeof e&&null!==e&&(e.attachEvent?(e["e"+i+n]=n,e[i+n]=function(){e["e"+i+n](t.event)},e.attachEvent("on"+i,e[i+n])):e.addEventListener(i,n,!1))};this.p=null,this.id="",this.op=!1,this.pl=!1,this.po=0,this.du=0,this.bl=0,this.tp=!1,this.i=function(n){var r=0;if("object"!=typeof i&&(r=3),!r&&(this.p=e.getElementById(n),this.p)){n.match(/^[a-z0-9]+$/i)?(t["adyttsc"+n]=function(t){o.pl[n].st(t)},this.p.addEventListener("onStateChange","adyttsc"+n)):this.p.addEventListener("onStateChange","adytt.pl['"+n+"'].st");var s=this;a(t,"unload",function(t){s.op&&"function"==typeof s.sc&&s.sc(s.po,!0)})}},this.sc=function(t,e){this.pl&&(i.Media.stop(this.id,t),this.pl=!1,this.tp=!1),e&&this.op&&(i.Media.close(this.id),this.op=!1,clearInterval(this.tf))},this.st=function(t){switch(this.tp=!1,t){case 0:this.sc(this.du,!0);break;case 1:if(this.du=Math.floor(this.p.getDuration()),!this.op){var e=this.p.getVideoUrl();this.id="YT|"+n(e,"v"),"function"==typeof o.getID&&(this.id=o.getID({url:e})),i.Media.open(this.id,this.du,"YouTube Embedded Player",{id:this.id});var a=this;this.tf=setInterval(function(){a.ti()},500),this.op=!0}this.tp=!0;break;case 2:this.sc(Math.floor(this.po),!1);break;case 3:this.bl=this.p.getVideoBytesLoaded(),this.po=this.p.getCurrentTime(),-1===this.bl?this.sc(Math.floor(this.po),!0):this.sc(Math.floor(this.po),!1);break;case-1:break;case 5:this.sc(Math.floor(this.po),!1)}},this.ti=function(){e.getElementById(this.p.id)?this.p&&(1===this.p.getPlayerState()||this.tp)&&(this.po=this.p.getCurrentTime(),this.bl=this.p.getVideoBytesLoaded(),this.tp&&this.bl>0&&!this.pl&&

Ce sujet a été fermé aux réponses.
Meilleure réponse par jantzen_b

Hi,

Are you using the Media Module code that matches your s_code/AppMeasurement version? Typically, when you download your code library from Code Manager, there is a Media Module that's included in the download package. We've seen issues when users try to use an older version of the Media Module with an updated s_code/AppMeasurement library.

Additionally, our video team is encouraging all customers to move to Video Heartbeat tracking. The Media Module is considered legacy at this point. Please see the documentation here.

Thanks,
Jantzen

1 commentaire

jantzen_b
Adobe Employee
jantzen_bAdobe EmployeeRéponse
Adobe Employee
November 29, 2016

Hi,

Are you using the Media Module code that matches your s_code/AppMeasurement version? Typically, when you download your code library from Code Manager, there is a Media Module that's included in the download package. We've seen issues when users try to use an older version of the Media Module with an updated s_code/AppMeasurement library.

Additionally, our video team is encouraging all customers to move to Video Heartbeat tracking. The Media Module is considered legacy at this point. Please see the documentation here.

Thanks,
Jantzen