Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.56 KB | None | 0 0
  1. function loadJwPlayer(adUrl) {
  2. let currentVideo = '';
  3. let playStarted = false;
  4. let past25Percent = false;
  5. let past50Percent = false;
  6. let past75Percent = false;
  7.  
  8. const setupParams = this.getParams();
  9. const playerInstance = window.jwplayer(this.containerName);
  10.  
  11. playerInstance.setup(setupParams);
  12.  
  13. playerInstance.on('beforePlay', function() {
  14. playerInstance.playAd(adUrl);
  15. if (currentVideo !== playerInstance.getPlaylistItem().title) {
  16. currentVideo = playerInstance.getPlaylistItem().title;
  17. playStarted = false;
  18. past25Percent = false;
  19. past50Percent = false;
  20. past75Percent = false;
  21. }
  22. });
  23.  
  24. playerInstance.on('adPlay', function() {
  25. if (window.adInfo) {
  26. pushVideoEvent({
  27. event: 'adPlay',
  28. videoAction: 'adPlay',
  29. adInfo: window.adInfo,
  30. });
  31. }
  32. });
  33.  
  34. playerInstance.on('adComplete', function() {
  35. if (window.adInfo) {
  36. pushVideoEvent({
  37. event: 'adComplete',
  38. videoAction: 'adComplete',
  39. adInfo: window.adInfo,
  40. });
  41. }
  42. });
  43.  
  44. playerInstance.on('play', function() {
  45. if (!playStarted) {
  46. playStarted = true;
  47. pushVideoEvent({
  48. event: 'videoStart',
  49. videoAction: 'videoStart',
  50. });
  51. }
  52. });
  53.  
  54. playerInstance.on('complete', function() {
  55. pushVideoEvent({
  56. event: 'videoComplete',
  57. videoAction: 'videoComplete',
  58. });
  59. });
  60.  
  61. playerInstance.on('error', function(e) {
  62. if (e && e.message && e.type && e.code) {
  63. pushVideoEvent({
  64. event: 'error',
  65. videoErrorCode: e.code,
  66. videoErrorMessage: e.message,
  67. videoErrorType: e.type,
  68. });
  69. }
  70. });
  71.  
  72. playerInstance.on('time', function(e) {
  73. if (e && e.position && e.duration) {
  74. const percentage = e.position / e.duration;
  75. let data = {
  76. event: 'videoInterval',
  77. videoAction: 'videoInterval',
  78. videoLength: e.duration,
  79. };
  80. if (percentage >= 0.25 && !past25Percent) {
  81. past25Percent = true;
  82. data.videoInterval = 25;
  83. pushVideoEvent(data);
  84. }
  85. if (percentage >= 0.5 && !past50Percent) {
  86. past50Percent = true;
  87. data.videoInterval = 50;
  88. pushVideoEvent(data);
  89. }
  90. if (percentage >= 0.75 && !past75Percent) {
  91. past75Percent = true;
  92. data.videoInterval = 75;
  93. pushVideoEvent(data);
  94. }
  95. }
  96. });
  97.  
  98. function pushVideoEvent(data) {
  99. if (data) {
  100. const dataLayer = (window.dataLayer = window.dataLayer || []);
  101. data.videoPlayer = playerInstance.getConfig().pid;
  102. data.videoTitle = playerInstance.getPlaylistItem().title.trim();
  103. data.videoType = playerInstance.getPlaylistItem().sources[0].type;
  104. data.videoId =
  105. playerInstance.getPlaylistItem().mediaid ||
  106. playerInstance.getPlaylistItem().file;
  107. dataLayer.push(data);
  108. }
  109. }
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement