Jump to content

firstimpression

Approved members
  • Posts

    52
  • Joined

  • Last visited

Everything posted by firstimpression

  1. I have a lot of remnant campaigns. When I add a contract campaign with a specific goal (impressions per day, clicks per day, or such), I have to wait for hours for the campaign to begin delivering. Is this how it is supposed to be? When I check priority_factor field in ad_zone_assoc table, I see that it has a value of 1, even after running maintenance. I am trying to understand if there is a setting that I am missing, and eventually I change something and it begins to work, or Revive's priority engine needs some time after contract campaign is started? Tried to find some in-depth explanation of priority engine, but all I find are user's manuals on how to configure campaigns in Revive admin UI. I will be happy to have a link to a page with technical details, if there is any. Thank you.
  2. When a zone is delivered with an iframe invocation code (afr.php), I see that lg.php is not called. What am I missing, is this normal, that only requests are counted? Thank you.
  3. Memcached in ANY more or less intense environment is a must. It can reduce MySQL connections count by 90%, depending on number of zones/ads of your adserver. RDS - make sure you place in the same availability zone with delivery servers. Do not use S3 for images delivery. Instead, set up an nginx server for that - S3 traffic is is more expensive, although, maybe it knows to deliver images faster across the world.
  4. Can you provide any tips or links to relevant material on optimizing Memcached for performance in high load environment? Thanks.
  5. Does Revive's Memcached plugin use binary protocol for communicating with Memcached server? I guess that a line like $memcache->setOption(Memcached::OPT_BINARY_PROTOCOL,true); would switch it to binary, it's absence makes me suspect the protocol is ascii. Might switching to binary protocol do any harm? Can I change this setting on the fly, without flushing the cache? Can anyone elaborate on this? Thank you.
  6. Solved this by compiling PHP's pecl mysql extension from source: $ git clone https://github.com/php/pecl-database-mysql mysql --recursiveGo to directory of the downloaded files, and then: $ phpize $ ./configure $ make $ make installThen you have to register the extension in php.ini: extension=/usr/local/lib/php/[. . . path to PHP extensions]/mysql.soThen restart Apache, and Revive works fine. PS. When I ran "configure" I also had to specify path to php_config: ./configure --with-php-config=/usr/local/bin/php-config
  7. Same issue here, despite that the 3.2.0 release notes state that this version of Revive adserver is compatible with PHP7: "Added preliminary support for PHP7" Does that mean that it does not actually support PHP7, but has some changes to make it a bit more compatible..?
  8. Yes, you are on the correct path. In PHP it would be much simpler: data-revive-pq="<?=$_GET['pq']?>" but this very much depends on your templating engine, etc. But this topic is out of scope of this forum.
  9. You can use local mode tag. Although, AdBlock would block all images of known standard banner sizes, so you would also have to use untrivial sizes. HTML banners is the best solutions. Also, you will have to change delivery paths to something random (change directory name and set it in config file) In any way, even if you can make your Revive installation undetectable by AdBlock, 99% of content that will run in your zones (other ad networks, for example) would still be blocked by AdBlock, so this is pointless.
  10. This does not sound trivial. Indeed, Revive does not support CDN functionality in no way except a case of a single media file (swf or image file). So, yes, you have to upload HTML5 banner assets to some CDN (your ad server can act as one, but you will have to use FTP). I can give you a tip - use relative paths with prefix of magic macro "{url_prefix}" (ex. {url_prefix}/images/background.jpg )
  11. The list of magic macros that you can use in ad code: '{timestamp}','{random}','{target}','{url_prefix}','{bannerid}','{zoneid}','{source}', '{pageurl}', '{width}', '{height}', '{websiteid}', '{campaignid}', '{advertiserid}', '{referer}' '{clickurl_enc}' '{logurl}' '{logurl_enc}' Custom variables' values should be specified in zone code (from your description I do not see that you did this at any point) In case of acynchronous code: Add data-revive-pq="yourvalue" to INS tag. For example: <ins data-revive-zoneid="96" data-revive-pq="yourvalue" data-revive-id="...."></ins> <script async src="//deliveryserver.com/delivery/asyncjs.php"></script> In case of synchronous JavaScript code: Modify the line document.write ("?zoneid=...."); and add &amp;pq=yourvalue to it: For example: document.write ("?zoneid=96&amp;pq=yourvalue"); In case of Iframe code: add &pq=yourvalue to iframe SRC attribute, so that it would be something like: http://deliveryserver.com/delivery/afr.php?zoneid=96&pq=1 For example: <iframe id='a8db14c8' name='a8db14c8' src='http://deliveryserver.com/delivery/afr.php?zoneid=96&amp;pq=yourvalue&amp;cb=INSERT_RANDOM_NUMBER_HERE&amp;ct0=INSERT_ENCODED_CLICKURL_HERE' frameborder='0' scrolling='no' width='320' height='480'><a href='http://deliveryserver.com/delivery/ck.php?n=a1e44614&amp;cb=INSERT_RANDOM_NUMBER_HERE' target='_blank'><img src='http://deliveryserver.com/delivery/avw.php?zoneid=96&amp;pq=yourvalue&amp;cb=INSERT_RANDOM_NUMBER_HERE&amp;n=a1e44614&amp;ct0=INSERT_ENCODED_CLICKURL_HERE' border='0' alt='' /></a></iframe> Good luck
  12. After some more investigating and digging in source code, found that to solve the issue you have to set "Show capped ads if cookies are disabled" in campaign settings to ON. Although, this still leaves two issues: 1. If you do not actually want to show capped ads if cookies are disabled, then you will have to live with this 2. You have to remember to set this checkbox if you set any session capping (to banners or campaigns) to have the maximum possible number of ad impressions
  13. I have this issue, that when I enable session capping for a banner (only one banner is linked to a zone), then I do not get any banners for that zone on the first request, and I do get the banner on subsequent requests. The problem exists in SPC, iframe tag and javascript tag. In case of iframe and javascript an empty zone is returned. In case of SPC nothing is returned. On the second request everything works as expected. After an impression happens, the banner is capped as expected, and not returned on subsequent requests. The problem is related to cookies. Did anyone stumble upon this? My set up is Apache behind nginx, not sure if this can be related.
  14. Had exactly the same problem. In the end the problem was that if you supply an HTML banner, and the zone is rendered under SSL, Revive performs a check if there is any SSL-unsafe code in the banner. If it does detect that kind of code, the the banner is simply not delivered. In my case, I have added banner with the following type of code: <iframe src=http://...></iframe> The snippet that loaded from SSL URL of Revive did not serve that banner, while non-SSL version of snippet did.
  15. In php.ini edit the line "date.timezone=..." and set it to: date.timezone = UTC
  16. Hi, I would like to see my reports in UTC or GMT. I do not see such option in the list of timezones in Account preferences, under "Timezone preferences". Currently, "GB" is UTC+1 (in contrary to what the interface states - "GMT+0000"), so I can not really use "GB". I have manually edited database and entered "UTC" instead of "GB" in the table of preferences, and this fixed my issue, but the question is: is there a conventional way to set UTC unsing UI?
  17. You can also try enabling gzipping on your webserver, this will save about 50% of HTML/JS (although, it will not compress your images any more). If you have multiple zones, then try to implement single page call, this will significantly save overhead bandwidth of querying code per each zone.
  18. Your hosting provider is absolutely correct, although, this is a very wide question, and you did not even provide any details on the system that serves 1M impressions. You should find bottlenecks - analyze CPU load, system load, memory availability, etc. You should also check limitations that you have set on your web server (max processes, and such) by monitoring your server with different tools. I am sure you haven't exploited yet the optimization boost that can give you memcached, mysql query cache, xcache, eAccelerator, nginx, and a whole bunch of other approaches that you can easily find on the internet. If the number of campaigns, zones, banners, etc, is low, then it should be enough 2 CPUs/4GB RAM with proper system settings to serve 1M daily. Either way, what you describe sounds like Apache is thrashing as it reaches ServerLimit, try checking that.
  19. I wonder if anyone can give me an opinion regarding the following issue. What is the horizon of CPU % utilization and system load, after which the load begins to negatively affect delivery latency? Let's say, we talk about Linux system with 4GB RAM and 4 CPUs, using memcached, without GUI (only delivery)
  20. I'd totally disagree Snoork Hosting. I have a very positive experience with EC2, maintaining replicated database, distributed delivery, autoscaling, alarms, what ever you can imagine. arajakul, from my experience - you should run your own databases on instances, not on RDS. RDS is a bit more expensive, and less flexible. Look up on the internet how to set up distributed Revive deployment, and distribute your system across classic EC2 instances. To make it truly automatic, you should prepare an AMI that will contain the full installation if a delivery node, and a startup script that will configure the node finally. If you are already experienced with chef, this will be easy for you. When ever you need to upgrade Revive version, you will have to perform an upgrade and prepare a new AMI from the instance you made the upgrade on. Another tip - try not using Red Hat, as it's AMIs do not support spot instances.
  21. Erik, thank you for your reply. When you say "replicate" you mean the database? But the database is replicated automatically by MySQL replication, so, as I understand, this is not the procedure that I have to manually do. Or am I missing something? And, how exactly the update files get to the delivery node if I do not upload them there..? Or do you mean that after upgrading master node I just have to copy all the files to delivery node?
  22. The issue is considered a bug, and could be something to consider for fixing in 3.2. or 4.0. https://github.com/revive-adserver/revive-adserver/issues/459
  23. I was told to file the question on this forum, although, I am pretty sure this is a bug. Anyway, here is the problem: When limiting a banner with: "Is not any of": Country: United States Region: Florida What happens: Connecting from New York: banner is delivered (expected to deliver) Connecting from Florida: banner is not delivered (expected not to deliver) Connecting from Israel: banner is not delivered (expected to deliver!) Using the latest version of GeoIP database. Double-checked that the IPs I do checks from are detected correctly by Revive. Please help me to understand the issue. Thanks.
×
×
  • Create New...