Jump to content

Tim Vereecke

Approved members
  • Posts

    29
  • Joined

  • Last visited

Everything posted by Tim Vereecke

  1. hi Steve, When you test performance of asynchronous make sure to have ALL your zones using the asynchronous method. The reason is: The asynchronous method sends the actual zone invocation request on DOMContentLoaded. However the synchronous version delays this DOMContentLoaded event. This is also true when the async zone is before any sync zone (like seen in your screenshot) For example if on your PRD site you would add a single zone using asynchronous it would for synchronous zones to load which delay the yellow line (=DOMContentLoaded)
  2. Unless I misunderstood your question you should still prepend {clickurl} to the actual link. (even with Do not alter HTML) <a href="{clickurl}https://www.targetsite.com/">Shop now</a>
  3. The recording is now available (20mins) https://video.fosdem.org/2024/h2214/fosdem-2024-2266-from-google-adsense-to-foss-lightning-fast-privacy-friendly-banners.mp4
  4. On February 4th 2024 (Noon CET) I will present at FOSDEM 2024; the topic is about how I used Revive Adserver to improve privacy and Web Performance. Maybe I will see you in Brussels? Or if you are interested there is also a live stream Kind regards; Tim From Google AdSense to FOSS: Lightning-fast privacy-friendly banners I run [link removed], the largest and fastest scale modeling website in the world. As such, I need a fast and privacy-aware advertisement solution to best serve my user base. 5 years ago, just before GDPR became applicable I decided to replace my existing Google AdSense solution. While easy to set up, AdSense and other vendors were in hindsight too slow or not meeting my privacy expectations. The cornerstone of the new architecture became the popular, free and open source (GNU GPL) Revive Adserver (formerly known as OpenX). Without leaking information, Revive Adserver allows me to serve targeted ads without degrading Largest Contentful Paint (LCP), Cumulative Layout Shift (CLS) or other Web Vitals. In this talk you will learn about my design choices as well as interesting techniques and best practices to serve and monitor banner ads performance. More info: https://fosdem.org/2024/schedule/event/fosdem-2024-2266-from-google-adsense-to-foss-lightning-fast-privacy-friendly-banners/
  5. Hi Wasif, Here is a link which likely answers your questions: https://www.revive-adserver.com/faq/using-google-adsense-with-revive-adserver/ Kind regards, Tim
  6. With the new Speculation rules API browsers can prerender pages. This can lead to ad impressions being requested and logged without users navigation to the page (and not seeing ads). I think it would make sense to delay the logging to be delayed till after the prerenderingchange event to: Avoid views never seen Avoid reduction of CTR eg. if (document.prerendering) { document.addEventListener("prerenderingchange", doSomething, { once: true, }); } else { doSomething(); } Reference: https://developer.mozilla.org/en-US/docs/Web/API/Speculation_Rules_API
  7. Using Async JS should make the rest of the page (without the ads) load faster because rendering is not blocked while the JS snippet dowloads. Are you seeing a delay in your ads? or also a delay of the page contents? And what do you mean with considerable?
  8. thx for the reply and great seeing you here as well. Yes the iframe brings me back to the current situation. Somebody else has an idea if feasible?
  9. Hi, Is there a banner type which supports executing PHP to render the banner HTML dynamically? Current state I currently have an HTML banner which populates dynamic data like below (4 dynamically picked products, with up to date pricing). The JS code to fetch and display the data runs client side. Although it works like a charm it does involve multiple requests. Question for future state I would like to execute this logic server side and have Revive return the server side rendered HTML by executing PHP (read from database). Is it possible? And what is the best approach to do that? I tried looking for an existing plugin and or forum post discussing this; but failed to find it? Thank you for your guidance! Tim
  10. I used the API (paid version) and built one myself inside my CMS. Not the answer you were looking for, but I did this 2 years ago when I had the same question as you
  11. Hi, For those interested in performance, after modifying asyncspc.php and adding native loading=lazy (supported in Chrome/FF) to the $imageTag I gained 3-4 points in Google Pagespeed Insights. When scrolling down the Revive banners are loaded well before they appear in the viewport. Hope this helps Tim
  12. gentle bump, can somebody point me in the right direction?
  13. Hi, What is the timeout for a session when doing delivery capping? Is it based on a session cookie? so it is reset when browser is closed? Is it similar to session timeout in Google Analytics? 30mins? Is it based on the SessionID which is 1 year? I checked the docs but can't find a clear answer. Thank you for confirming Tim
  14. Hi, I'm interested in overal statistics by campaign type. (eg. Remnant, contract, ...) I want to see Revenue/Clicks/Impressions for all my contract campaigns without the noise of remnant campaigns. I want to see the evolution of total remnant impressions compared to all impressions. Is this possible today? Thank you. Tim My own reply: Sometimes you find the answer yourself the minute after posting the question. All my internal remnant campaigns belong to the same advertiser. As there are plenty of reports available by advertiser it is straight forward getting the info.
  15. Hi, Background: All the banners I server are either images or HTML and there is 0% chance I serve flash. While doing a performance review of my JS code I noted the standard Revive JS code (served via /asyncjs.php) contained a whole section of JS referencing ShockwaveFlash.ShockwaveFlash Checking the asyncjs.php source I see it includes a reference to a required flash config file (fl.js in the /www/delivery folder) require __DIR__.'/'.$GLOBALS['_MAX']['CONF']['file']['asyncjsjs']; require __DIR__.'/'.$GLOBALS['_MAX']['CONF']['file']['flash']; I currently commented out the inclusion of the fl.js so the JS is smaller. All seems to work fine. Results asyncjs.php goes from 3.6KB to 2.0Kb when transferring over the wire (GZIP). (not massive, but with Chrome never slow mode, you only have a certain budget of JS available. Saving 1.6Kb here can help to stay under the 500kb limit) 9883 bytes to 42993 bytes in unzipped format. (this is less JS code to parse/execute. Read The Cost Of JavaScript In 2018 for more details https://medium.com/@addyosmani/the-cost-of-javascript-in-2018-7d8950fbb5d4) My 3 questions for the community are? Do you know any side effects of removing the fl.js inclusion? Are there better options than commenting it out? Are there other JS optimisations you are aware off? Thank you Tim
  16. Hi Andrew, sorry I really thought I replied. I went for the clean install approach and migrated all the key tables for inventory/advertisers. After doing that it was fine. (lessons learned for me = backing up the database and having a local copy of all the src files is not enough. eg. Config changes are not stored in the DB but in a config file. ) My endusers are not impacted, I use the REST API for a fully custom UI and reporting connects to the old instance or the new instance depending on the date of the reports. (not ideal, but good enough for me at this point) Thank you for thinking with me
  17. Hi Andrew, Yes correct there is a mismatch between data_bkt_m and the summary. Kind regards, Tim
  18. Hi, I recovered from a severe hardware failure and restored from a backup. Since then I see a gap between actual impressions and what I expect. I checked this post but I'm still stuck https://documentation.revive-adserver.com/display/DOCS/No+Statistics Ad delivery working fine: YES All zones populating: YES Remnant campaigns setup: YES Seeing log beacons (lg.php): YES Seeing data as expected in table rv_data_bkt_m: YES Blocking IP/UA: NO Maintenance mode running: YES Maintenance mode updating stats: YES SQL query on rv_data_bkt_m interval_start 1 sum(count) 2018-12-18 20:00:00 2536 = current hour, increasing fast 2018-12-18 19:00:00 12685 2018-12-18 18:00:00 11392 2018-12-18 17:00:00 9866 Matching Hourly stats under "Daily statistics" for above not there yet (as expected) 1105 1046 973 So I see a factor of 10x lower in statistics; I checked certain zones/campaigns/banner types would not show up; But all seem to have the same 10x range lower than expected. Any hint pointers what this could be? (eg. timezone mismatch? PHP version, I'm now on 7.2 while before on 7.0) Thank you, Tim
  19. I have multiple contract campaigns and 2 remnant campaigns targeting a specific zone. The inventory is far from sold so I would expect all contract campaigns to reach their daily limit with easr. However when browsing the site I see a huge amount of remnant ads consuming 60% of the zone impressions while all the contract campaigns are under delivering. Even the ones set with a high priority. eg. - Contract Campaign with 1 banner: Target 3000, actual delivery 2200 - Contract Campaign with 1 banner: Target 4000, actual delivery 3000 What am I doing wrong? 34,130
  20. Please let me know if the upgrade worked. I never did a revive upgrade and knowing somebody else succeeded will give me extra confidence.
  21. Hi Tobean, I was surprised to see there is a new GDPR release giving extra control on the OAID cookie since yesterday evening https://www.revive-adserver.com/blog/revive-adserver-v4-1-4-released/ Hope this helps. I'll try and to the upgrade this weekend. Kind regards, Tim
  22. Could an experienced user confirm this is not possible?
×
×
  • Create New...