- Why do my HTML banners not serve on my SSL (https://) website?
- Why is maintenance logging a 'Maintenance tasks not run: could not acquire lock' message?
- I see a dashboard error when I login, how can I fix it?
- Are Local Mode tags from 2.0 compatible with 2.4 local mode tags?
- Why is there a database integrity error message during the system check page of the upgrade?
- How do I reset my password?
- How come I can't see the Global Settings tab under My Account?
- Why do I receive no Geotargeting options for delivery limitations after installing a paid MaxMind GeoDB, but I did when I was using a free DB?
- I have set a click target in the banner or zone invocation tag properties but it is not taking affect, why?
- When linking a zone to a banner or campaign why do none/not all of my advertisers/campaigns appear in the list?
- No banner is displayed on my site by the invocation tag. Why?
- On the first page impression, no banner appears. Afterwards, the banner will appear for a user. Why?
- I have problems uploading banners while using an IIS webserver.
- How do I report a bug?
- What steps can I take when I think I have a problem?
- How can I install OpenX without php safe_mode disabled?
- The banner has been added or changed but has not updated on the publisher website. What's wrong?
- I have invocation tags on my website but no ads are displaying. Why?
- Where can I go for support?
- What can I do if OpenX fails with the "not enough memory" error?
- Why is PHP 4.3.11 the minimum version?
OpenX will not serve HTML ads on SSL sites because it cannot be guaranteed that the HTML code generated will obey SSL restrictions, which could generate "Mixed content" browser warnings on SSL pages.
However there are situations where you may know that an HTML creative is SSL safe and want to override this restriction to allow this creative to be served on SSL pages.
- Set the "Alter HTML to enable tracking of Clicks" option to enabled and set the type to "Rich Media - OpenX".
For example, an HTML banner containing "<img src="http://example.com/image.gif" alt="">" would not be allowed on an SSL page, this would have to request the media from an SSL source e.g. "<img src="https://example.com/image.gif" alt="">"
If these two conditions are satisfied, then OpenX will allow this creative to be served on an SSL site.
The "contains non-SSL media" check is a regex match using the following regular expression: /src\s?=\s?['\"]http:/
Maintenance locks tables to prevent multiple maintenance procedures from running at the same time.
The 'Maintenance tasks not run: could not acquire lock' message means that a table is locked and maintenance will not run.
It could be that maintenance really is running and a 2nd maintenance procedure was ordered which did not run because the tables were locked. In this case you should let maintenance complete and wait before calling for a further maintenance procedure to run.
Two instances being called could mean that you have both auto-maintenance and a cron job for maintenance enabled. Only one will run per Operation Interval (default of 1 hour).
There is high probability that you might be getting this message if you are using Auto-maintenance and it gets called many times within an Operation Interval.
If you keep an eye on the openx/var/maintenance.log and never see any messages except for this locked warning, then it could be that maintenance is never able to run because the tables are not unlocking.
In this case, try:
- Restart MySQL, which should release the locks
- Execute repair commands on the 'log_maintenance_%' tables.
There are the most common causes of a dashboard error message.
Note: In most cases a dashboard error will not affect your ad servers ability to deliver advertising.
1. Your installation does not currently support GD
OpenX 2.6+ requires the PHP GD extension to generate graphs on the Home page. If the extension is not enabled you will not be able to view graphs of statistics on your Home page.
You will may need to install or enable the GD extension, see here for more details.
2. The server can't connect to the central server
Error: XML-RPC connection error (code: 800)
The dashboard pulls information from a central server for some widgets. There are several things which can affect this.
Your server may not have the the Curl extension enabled. You may need to install or enable the Curl extension, see here for more details.
You should also check that your firewall isn't blocking outbound connections.
3. Your installation does not currently support SSL.
You don't have 'openssl.so' or 'php_openssl.dll' extensions enabied in your php.ini file.
You may need to enable or install the OpenSSL extension. See here for more information.
If you get any other Dashboard error than listed above please describe your problem in details and post it on the OpenX forum.
A Local Mode tag involves placing PHP code directly on your website and needs to be carefully handled.
Using 2.0 local mode tags with 2.4+ is fully compatible. However, if you are trying to use both a 2.0 local mode tag and a 2.4+ local mode tag on one page this can have complications.
It is recommended to use only 1 type of Local Mode tag on a single page.
All other 2.0 invocation tags should be fully compatible with 2.4+ tags, even when used on the same page.
During the system check page the upgrader will detect what version of OpenX you are currently running and will compare the structure of the database versus the standard database schema for the detected version.
If it detects any differences it will halt the upgrade and report to you the fact that such differences need to be researched and fixed. It will not continue because the upgrade may need to alter the database in a way which may fail because of such differences.
If you view the openx/var/install.log file it will provide you details of what needs changing. For example:
task found: doRemoveIndex__audit__account_id task found: doRemoveIndex__audit__advertiser_account_id task found: doRemoveIndex__audit__website_account_id #! database integrity check detected problems with the database #! 3 indexes to remove
In this install.log it is saying that 3 indexes need removing.
task found: doRemoveIndex__audit__account_id
This shows you that the task is 'doRemoveIndex' the table is 'audit' and the index name is 'account_id'.
There could be many causes for an integrity issue.
- The changes could be minor, like altering indexes, or could be major. Review the list of changes required and it should be possible to put your database back to a standard layout. If critical tables are missing, it may mean your current install is not fully correct and some parts of the program may not function properly.
- If you install a new copy of OpenX, the same version of which you are trying to upgrade, into an empty database you will be able to compare the database structure to assist with fixing your database.
NOTE: If you attempted an upgrade which did not give an integrity issue but failed for some other reason and then did not properly rollback, your second upgrade attempt may give you the integrity error. In this case an upgrade has been only partially performed on your database without a proper rollback and the structure could be heavily altered. It would be recommended to restart with a backup of your database from before the upgrade attempt.
OpenX provides a "Forgot your password?" link on the main login page for resetting your password. OpenX will send you a new password by email.
Note: make sure you are using the correct username and the correct capitalization.
If for some reason this doesn't work for you, you can update your database directly to reset your password. You should do this only if you have sufficient knowledge.
Please note that the queries below use the default table prefix. Your tables might use a different prefix, so you should change 'ox_' to your correct prefix: perhaps 'oa_' or 'phpads_'
For OpenX 2.6 and above:
Browse the users table to see a list of users. You will want to find the 'user_id' and 'username' field values for the user you want to change the password of.
UPDATE `ox_users` SET password = MD5('admin') WHERE user_id = 1;
Make sure to change the user_id to the proper value.
For OpenX 2.4:
Look in the preference database table for agencyid=0 and look at the 'admin' field - this will tell you your admin username. Then look at the admin_pw field, it should be a 'hashed' value (not readable by naked eye). You can reset the password to be admin by running a query:
UPDATE `ox_preference` SET admin_pw = MD5('admin') WHERE agencyid = 0;
In OpenX 2.6+ a logged in user is able to switch between account types. Inventory can not be owned by an administrator account type, but only an admin can view the Global Settings tab.
If you have logged in as a user with administrator account permissions, you might be set to 'Working as->Manager' so that you are able to modify inventory.
If you wish to then check Global Settings, you should click on My Account and then, at the top right, set 'Working as->Administrator' so that the Global Settings tab is available.
Why do I receive no Geotargeting options for delivery limitations after installing a paid MaxMind GeoDB, but I did when I was using a free DB?
If you have purchased a MaxMind database for a specific country or region, rather than worldwide, then OpenX might not realize that your database is fully working.
This is because OpenX is testing the database against a pre-supplied IP which is located in the USA. If your database can't resolve the city information of the IP, then city targeting options won't be available.
To fix this, go to your Geotargeting settings page and tick the box for "Show geotargeting delivery limitations even if GeoIP data unavailable" - make sure to submit the page after changing the option.
I have set a click target in the banner or zone invocation tag properties but it is not taking affect, why?
If you are using a flash banner:
Click targets are not so straight forward with flash banners. Flash objects do not accept HTML's standard target parameter as the click link and target is actually coded inside the flash file.
You should talk to the creator of the file and ask what method they used to create the click link inside the banner.
If they used the industry standard 'clickTAG' variable, then they might have hardcoded the click target value and OpenX is not able to change it. Ask them to use the 'clickTARGET' variable inside flash and OpenX will be able to assign a click target using the banner properties.
If they used a hard-coded link, they might have not defined a click target. In such a case OpenX can't edit the target. If they did place a target, OpenX is able to edit the target when using a Local Webserver banner using the main banner properties 'target' value (not the invocation tag target property).
For other banners:
Perhaps you have browser settings which are over-riding the target settings. Also do note that an invocation tag can set a target as well as the banner's properties. A tag's target will be used ahead of the banner's.
An Image invocation tag doesn't ability of using the target set in the banner properties - it should be set in the invocation tag options.
When linking a zone to a banner or campaign why do none/not all of my advertisers/campaigns appear in the list?
In order for an advertiser or campaign to appear in the list for inventory to a zone, the advertiser/campaign must have at least one banner which matches the zone size and type.
A zone's size is set on the main zone properties page. Any banner type can be linked to most zone types, unless the zone is set to the text ad type or the email/newsletter zone type. An email zone will only accept campaigns with an end date, and displays only one active image banner. A text ad zone is intended for text-only banners.
A local banner will automatically determine the banner size. An external, html, or text banner must be assigned a size.
If wanted, you can set a zone to accept any width or height of banner. For more information please click here
There could be numerous reasons that no banner is displayed. Please go through this list for some tips on finding the cause.
- If you are using an Image invocation tag, make sure that only image banners are being used. For other types of banners, including SWF banners, you should use any other type of invocation tag - IMG tags can only display image banners.
- Have you waited? There is a delivery cache for active servers. The default is 20 minutes - it can take time before new inventory or updated Limitation/Capping settings are added into rotation.
- Try placing the invocation tag on a plain/empty HTML page rather than on your website. Your website might have CSS or HTML which is interfering.
- If using a Zone Invocation tag, check the zone's probability tab to see what banners are expected to be used and how often. This page will also tell you if the banner has any Delivery Limitations or Capping. If all banners have limitations or capping, this can prevent delivery. Also, if capping is being used make sure to read this.
- You can clear your browser cookies to restart your session and allow yourself more impressions if the banner/campaign has session based capping.
- If the banners simply don't add up to a 100% chance of invocation, this could be caused by using High Priority campaigns without having any Low Priority (Remnant) campaigns linked to the zone. A High Priority Campaign will limit impressions across a time frame and might currently have a very low probability. Linking a Low Priority banner with no capping or limitations will guarantee that a banner is always displayed.
- If using Direct Selection, be careful to make sure that the banner selection string that you are using actually does actually match a banner and that there is not capping or limitations on such banners which would cause this.
- Can your browser correctly render the banner being used when not using OpenX? Open the OpenX admin page and check the banner's properties - there should be a banner preview above the main options. If it isn't displayed here, it means that the actual banner has an issue rather than OpenX's rendering of it. You can also test by opening the browser in a test HTML page without using the OpenX invocation tag.
- Is any ad-blocking or internet security software being used? Try using a different browser, or even a different computer (hopefully not that of a co-worker who has the exact same ad blocking software being used!).
- If a flash banner is being used, make sure that your browser has the correct flash plugin version for displaying the version. You should make sure that the banner only requires a flash version that is common among users - when generating the SWF the producer has a choice of what flash version to require. If they require version 9 of the flash player, you might have only version 8 and therefore can't display the SWF.
- If you are using Local Mode or XML-RPC invocation there could be issues with the server-side code you are using. Make sure to check web server logs to see if there are any PHP (or other language) errors. You are placing PHP code directly on your website - test it on a test page alone or test another invocation tag to see if the banner works. You will need to debug the PHP code on your own website. If you upgraded from 2.0, using Local Mode code from 2.0 and from 2.4+ on one page can have issues. It is recommended to just use one or the other on a single page.
- If you are trying to display HTML banners on an SSL website please read this.
On the first page impression, no banner appears. Afterwards, the banner will appear for a user. Why?
This will happen if all banners available for the invocation tag have capping on them, and the user has yet to create a session cookie with your installation of OpenX.
On the second invocation, OpenX will know whether a cookie can be set and will proceed to deliver the capped banner.
The reason for this is that if OpenX does not know whether a cookie can be set for the user, it will not deliver any banners with capping. If a capped banner is delivered in such a scenario, the banner or campaign could end up being over-delivered, because any users who block or can't receive cookies would obtain many more impressions than expected.
To avoid this, always have one low-priority uncapped banner assigned to a zone, or used as a backup selection in direct selection.
Alternatively you could have one invocation tag placed above this capped spot. This way there will have been at least one invocation attempt, which will let OpenX know whether a cookie can be set or not.
The following answer to this question was given by the user 'brashguido' for version 2.0. It has been modified to be appropriate for version 2.4.
Things to check:
- Make sure your files are not corrupted and and are in a valid format (gif, jpeg, png, swf, dcr, rpm, mov).
- Check your PHP environment. Both the file_uploads and the upload_tmp_dir options need to be set correctly in order for OpenX to be able to upload. Be sure that the upload_tmp_dir setting is correct, as this is what tripped me up. I have phpAdsNew installed as a subdirectory of an Xoops installation which does not use the upload_tmp_dir to upload files.
file_uploads = on
upload_tmp_dir = "x:\php\uploads"
NOTE: Once you have modified these settings you will need to restart IIS in order for them to take effect!
- Create a file with the following code in the root of your phpAdsNew installation:
Save the file as something like phpinfo.php and then access it via 'http:///phpinfo.php' and it will print your PHP environment settings to screen. Ensure that the file_uploads and upload_tmp_dir are set correctly. After you've verified this you may want to delete or move this file as it can be a security risk.
- If you are using Local SQL for storage, you should now be able to upload. If using Local Webserver mode with a local directory as the storage method there are a few extra steps.
- Make sure the Public URL value in your OpenX -> Settings -> Delivery Settings page is correct for the value of 'Image Store URL'
- Make sure that on the same Settings page, the 'Local Directory' configuration is correct.
- Finally, when using Webserver mode you might need to ensure that the webserver has NTFS write permissions to your OpenX/www/images directory. Please see IIS support pages for how to set Folder Permissions within IIS.
All things equal, you should now be able to upload banners to OpenX on IIS without any problem.
NOTE: These tips assume that PHP is configured using ISAPI mode rather than CGI. If you are using CGI you will need to modify NTFS permissions as well.
We love to fix bugs and really appreciate help identifying the ones that have escaped into the wild.
We have an extensive troubleshooting page within our main support section to help. Follow this link to go directly to that page.
Sorry, but you can't! The setting 'safe_mode' has to be disabled to install OpenX, as it is not compatible with certain functions and requirements of OpenX. If your website is hosted, you can ask your host to disable the safe_mode setting.
The safe_mode setting is not supported in newer versions of PHP. We suggest exploring other options for security settings within PHP. For instance, the 'open_basedir' setting.
When you add or change a banner, it takes around 20 minutes for the change to appear on the publisher website. This is to stop overloading problems, and to protect you from having banners/campaigns go live before you are finished configuring them.
You can change the cache time in the Admin -> Settings -> Main Settings -> Delivery settings page, under the heading "Global Delivery Caching Settings".
If you need to push something live immediately, and you have file access to the OpenX program directory on the server, then you can delete the cache files by browsing to path/to/openx/var/cache and deleting the deliverycache_* files.
There are many possible reasons why ads are not being displayed as expected. We've listed the common issues in this FAQ entry. Please review these before posting your question on the forum:
- Double check that you have active banners linked to the zone: go to zone properties and look at the Linked Banners tab and the Probability tab. (For advanced users using Direct Selection, make sure that you have active banners in your inventory which match the Selection String.)
- Have you recently upgraded OpenX or changed your server setup? Try generating new invocation tags inside OpenX and see if these work. If your old tags don't work but the new ones do:
- Perhaps you placed the new OpenX files in a different folder on your server. Your old invocation tags would be pointing at the old folder. You either need to generate new tags, edit your old tags to use the correct folder name, or move OpenX back to the folder it used to be in.
- Did the domain name you use change? Similar to above, the old tag would be using the old domain.
- Have you recently changed MySQL settings in any way? OpenX might not be able to correctly connect to MySQL and you will need to review the database settings in your configuration file at openx/var/www.yourwebsite.com.conf.php.
- When upgrading or moving your files, did you copy the banner images from your images directory? In 2.4, the default image directory is openx/www/images. Your images might be contained in a different folder if you have modified this default setting.
- Check that the problem is repeatable on different web browsers and computers. You may have ad blocking software which is preventing the banner from being delivered.
- If you have changed what banners are linked to the zone, there is a delivery cache time before changes become viewable - the default is 20 minutes.
- Do you have a banner linked to the zone which is in a low-priority non-limited campaign? If you have banners which have session-capping enabled your session might have already viewed all possible banners, and now OpenX has nothing to display. Make sure a non-limited banner is linked to the zone so that a banner is always delivered. You could delete your cookies if you think this might be the issue.
The support section of the OpenX website provides lots of information to help you get the most from your OpenX.
Visit the getting help section of the FAQ for more information about where you can go for free and paid support.
OpenX is making an attempt to increase the memory limit however it may not work in all PHP versions. OpenX can't increase your memory limit if your PHP version is older than 4.2 and wasn't compiled with option '--enable-memory-limit'.
OpenX requires 16MB for all PHP versions older than PHP5.2 and 24MB for PHP 5.2 or any newer version.
There are two ways of increasing PHP memory_limit manually:
- Edit php.ini file and set the "memory_limit".
- If you do not have access to your php.ini but your webserver uses Apache you may try to put following line into your .htaccess file: "php_value memory_limit 24M" and save ".htaccess" file in your main folder where Openads is installed. In order to do the latter Apache needs to allow use of .htaccess files. For more information on .htaccess file see the Apache documentation.
We test OpenX with the latest release of PHP 4.3, 4.4, 5.0, 5.1 and 5.2. You should always upgrade your PHP version to the latest release, to ensure that you have the most stable, bug free and secure version of PHP that is available. Contact your hosting provider and ask them to upgrade your system if they manage your hosting.
If you're stuck on PHP 4.3.11 or older, and simply cannot upgrade, you can install OpenX anyway. However, we cannot provide any guarantee that OpenX will work correctly, and we are unlikely to be able to help you with any problems that arise if those problems are a result of running a (very) old version of PHP.
Please note: There are known bugs in PHP 4.4.1 that prevent OpenX from working. As a result, OpenX will not allow you to install on this version.