somnamblst

Members
  • Content count

    280
  • Joined

  • Last visited

Community Reputation

150 Excellent

About somnamblst

  • Rank
    Advanced Member
  1. Thanks. I will republish for 2017. Sucks that I have no ability to QA in this Enterprise Security environment. And I let my domain and hosting expire because I realized my plans for blogging weren't going to happen.
  2. Still waiting for AdOps to answer my email about a DCM support ticket. But I will certainly try that. Nothing extends beyond the 300x250 space, and the scrollbars which shouldn't be there, scroll=no, actually overlap the right and bottom of the 300x250 canvas element. The horizontal scroll shows a fair amount of white space to the right, and no additional space vertically. The top and left are aligned, as they should be. I do remember getting rid of a 1 pixel border in an iFrame requiring multiple border parameters. It appears that preventing scrollbars in iFrames isn't bullet proof in all browsers. The browser is Chrome for desktop. http://help.simplytestable.com/errors/html-validation/the-x-attribute-on-the-y-element-is-obsolete-use-css-instead/the-scrolling-attribute-on-the-iframe-element-is-obsolete-use-css-instead/
  3. Coworker saw the 300x600 on a different site on his phone and there were no scrollbars. Could be a Washington Post issue.
  4. Obviously I control nothing that DCM uses to insert banner ads, and yes I am bending the DCM vs DCRM rules (video equals Rich Media). The horizontal scroll is really wide, the vertical about 10 pixels. That being said does anyone see anything that jumps out at them. <style type="text/css" style="display: none !important;"> * { margin: 0; padding: 0; } body { overflow-x: hidden; } #wrapper{ position: relative; width: 300px; height:250px; z-index: 1; } #player { top:55px; left:8px; width: 280px; position: absolute; } </style> <script src="https://code.createjs.com/createjs-2015.11.26.min.js"></script> <script src="mealKit_300x250_youtube_noZindex_TS.js?1493820012728"></script> <script> var canvas, stage, exportRoot; function init() { // --- write your JS code here --- canvas = document.getElementById("canvas"); exportRoot = new lib.mealKit_300x250_youtube_noZindex_TS(); stage = new createjs.Stage(canvas); stage.addChild(exportRoot); stage.enableMouseOver(); createjs.Ticker.setFPS(lib.properties.fps); createjs.Ticker.addEventListener("tick", stage); } </script> <!-- write your code here --> <script type="text/javascript">var clickTag = "https://www.google.com";</script> </head> <body onload="init();" style="background-color:#D4D4D4;margin:0px;"> <div id="wrapper"> <div id="player"></div> <canvas id="canvas" width="600" height="500" style="background-color:rgba(205, 152, 101, 1.00); width:300px; height:250px" onclick="javascript:window.open(window.clickTag)"></canvas> </div> <script> // 2. This code loads the IFrame Player API code asynchronously. var tag = document.createElement('script'); tag.src = "https://www.youtube.com/iframe_api"; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); // 3. This function creates an <iframe> (and YouTube player) // after the API code downloads. var player; function onYouTubeIframeAPIReady() { player = new YT.Player('player', { height: '154', width: '250', videoId: 'XAtmYu0bbKo', playerVars: { 'autoplay': 1, 'modestbranding':1, 'controls': 1, 'fs': 0, 'rel': 0 }, events: { 'onReady': onPlayerReady, 'onStateChange': onPlayerStateChange } }); } var playerReady = false; // 4. The API will call this function when the video player is ready. function onPlayerReady(event) { playerReady = true; player.mute(); } // 5. The API calls this function when the player's state changes. // The function indicates that when playing a video (state=1), // the player should play for six seconds and then stop. function onPlayerStateChange(event) { if (event.data == YT.PlayerState.ENDED) { <!-- alert('done'); --> } } </script>
  5. The first question for Rich Media is always, which Rich Media vendor. For expandables you use that vendor's method. DCRM expanding templates https://www.richmediagallery.com/tools/template-database#filterTplDb:424~
  6. I verified that this can happen. A campaign I did that was one of my first Animate CC published canvas banner ads, was just restarted as a pickup. The text in question was a lockup, which is why I had copy and pasted it from In Design to Illustrator to Animate. The font was Impact. I saw one in the wild, where the text had reverted to times on a Mac that did not have Impact.
  7. That is because trafficking your DCRM uploaded assets will result in a DCRM specific rich media tag, which is either supplied to publishers to run on a specific site (DFP) or to DCM.
  8. I decided to take a different approach. But since I want the video in this particular campaign, to come in last, but not be user initiated, I have to have it hidden and paused, and then have Animate tell the video to play once that frame is reached. I play around with this stuff, when I am waiting for approval on another campaign, which is frustrating, because now I have approval and can't get back to Plan B video hidden and paused right away. Or maybe the best approach would be to have Animate load a YTplayer iframe that is autoplay when the timeline hits a certain frame....
  9. I passed two of Doubleclick's certifications. You definitely have to study, even for things you may never use like Dynamic. I had a Doubleclick employee walk me through over the phone when I was first given access. The certifications have study guides. You don't build, you upload, but you do need to know what to choose in the drop downs, so you need to know the DCRM lingo. https://www.richmediagallery.com/tools/certification
  10. Rich media has impression fees. I was Studio certified for Flash for DCRM. You have to take a test. They revoked my credentials when I did not retest for HTML5. It was a lot like having self serve access to Pointroll, except Pointroll didn't make sure you knew what you were doing by making you test. Even if you are just building in Studio, someone has to traffic those tags, it won't just be zipping your assets and handing them off. For anyone interested, I found the documentation on Enhanced banner metrics for DCM. https://support.google.com/richmedia/answer/6279526?hl=en
  11. Coming from someone who ultimately ended up being asked to traffic her own Pointroll tags, if you can avoid being sucked into having to use Studio, I would try for that. Because then you end up having to do AdOps tasks Enhanced banners in DCM have advanced metrics. We actually had a Google employee assisting us with the transition. He said only expandables, video and dynamic had to be rich media AKA DCRM. We also had value added geo targeted Dynamic probably because this is a big account. That was not available post SWFs, and that was the point where Doubeclick was pushing people to become certified, at least one person per creative shop, to traffic their own DCRM ads.
  12. I remember when the Chrome change to SWFs auto playing came down. We actually received a forwarded email that said all DCM accounts were being upgraded for free to Enhanced Banners. Enhanced banners have extended metrics. Because I also had DCM login info, I peeked at what the AdOps people were doing in this new workflow, and it did not appear that the AdOps people were actually booking my banners as Enhanced. So what I am saying is, if those metrics aren't there, it may be due to AdOps not taking advantage of that free upgrade and not booking your ads as enhanced. https://doubleclick-advertisers.googleblog.com/2014/02/take-advantage-of-engagement-metrics.html.
  13. I don't have access to the company's Google Analytics to verify, and AdOps doesn't know I am working on banners that include Youtube video for DCM which would not know if a play button is clicked, unlike the DCRM video solutions. Found this when searching http://www.htmlgoodies.com/beyond/video/trigger-specific-actions-on-youtube-video-player-events.html function onPlayerStateChange(event) { switch(event.data) { case YT.PlayerState.PLAYING: analytics.track('Played Video', { video: player.getVideoData().title, id: player.getVideoData().video_id, duration: player.getDuration() }) break; case YT.PlayerState.PAUSED: analytics.track('Paused Video', { video: player.getVideoData().title, id: player.getVideoData().video_id, pausedAt: player.getCurrentTime() }) break; case YT.PlayerState.ENDED: analytics.track('Finished Video', { video: player.getVideoData().title, id: player.getVideoData().video_id, duration: player.getDuration() }) break; default: return; } }
  14. I have some examples that use the built in tween.js. If you PM me your email addy, I will send you an FLA you can pick apart. Or you can choose the Tween using code in the code snippets and start playing with modifying that example.
  15. This Lynda.com tute does that and has exercise files. https://www.lynda.com/Animate-tutorials/Learn-Adobe-Animate-CC-Data-Driven-Animation/494387-2.html