Archive for the ‘应用技巧’ category

广告投放问题剖析

March 7th, 2010

本文英文原文地址:http://www.openxtips.com/2009/06/tip-14-troubleshooting-banner-delivery/

对于新的OpenX用户来说,对于广告投放出现的各种问题会很头大。即使是对于有经验的OpenX用户,也时不时会在广告投放上遇到一些困难。

您也知道,OpenX广告没有投放出来的原因有很多,很难有一个简单的方案能解决这个问题。幸运的是确认问题在哪的过程不是太难,下面我们一起来看下如何找到广告投放问题的Check List:

#1.0: 是否有广告在投放?

OpenX服务器是否可以投放广告(即使这些广告不是您想要的),或者说完全没有广告在投放?如果有广告可以投放,前往#2.0,如果确认没有广告在投放,前往#1.1。

#1.1: 您正在使用的是直接选择么?

如果您正尝试使用OpenX的直接选择方式投放广告,而非使用广告代码,那么请先尝试通过广告位投放广告。直接选择投放方式是一个非常复杂的过程,主要是针对OpenX的高级用户。如果您的广告不能正常投放,有可能只是因为您还不是一个高级的用户。所以,请先尝试使用广告代码进行投放。

#1.2: 您试过重新生成广告代码么?

有时候,广告不能投放的原因是一个简单的复制粘贴错误。尝试重新生成广告代码,并且复制粘贴到您的网站,看看有没有用。

如果还是不行,尝试将广告代码放到一个简单的无内容HTML页面。有可能是您页面的内容和广告代码之间有冲突。将广告代码放到一个简单的HTML页面可以保证不是页面内容与代码冲突的问题。

#1.3: 您尝试过使用别的广告代码么?

有可能是您选择的广告代码本身有问题,或者只是因为您所选择的广告代码不适合投放对应的广告类型,举个例子来说,图片广告代码只能显示图片广告,而HTML广告是不能在此类图片广告代码上线时的。

尝试别的广告代码类型,看看是不是有用。一般来说,Javascript代码适用于任何广告类型。

#1.4: 您确认广告位上有对应展示概率高于0%的有效广告么?

检查广告位显示概率界面,确认广告位有对应展示概率高于0%的有效广告。如果没有这种广告,您需要链接一些有效广告到广告位上,就可以看到广告了。

另外,如果您使用广告位链来投放另外一个广告位上的广告,尝试重新生成另外的广告位的广告代码并直接使用,看看是否有用。可能您的广告位链并没有设置好。

#1.5: 确认广告位上有可用的广告投放么?

根据实际经验,广告位上不显示广告,实际上是由于广告已经投放完了。举例来说,广告位上连接的所有广告都设置了一天显示一次,然后所有的广告都被显示过,于是乎对应的广告位就没有广告可以显示了。

由于有很多可能的投放限制或者频次限制导致广告无法显示,确认在广告位上有对应至少一个肯定可以投放的广告,来确认这个广告是否可以显示,而其他广告都不行。

#1.6: 您运行了广告屏蔽工具么?

广告屏蔽工具(类似Adblock Plus)会阻止广告展现。如果您正在运行此类工具,尝试禁止功能看看是不是可以看到广告。

#1.7: 确认广告代码服务器调用问题

如果上面所有步骤都试过后都没有用,那很有可能是广告代码在服务器调用的时候出了问题。为了找到问题在哪,您需要一步步的查看服务器调用过程。

举一个简单的例子,用一个简单的HTML页面,页面里没有任何内容,只有一个简单的OpenX Javascript代码,运行这个页面:假设OpenX服务器运行在”www.example.com”域名下。

<html>
<head>
  <title>Text OpenX Page</title>
</head>
<body>

<!--/* OpenX Javascript Tag v2.8.0 */-->
<script type='text/javascript'><!--//<![CDATA[
  var m3_u = (location.protocol=='https:'?'https://www.example.com/openx/www/delivery/ajs.php':'http://www.example.com/openx/www/delivery/ajs.php');
  var m3_r = Math.floor(Math.random()*99999999999);
  if (!document.MAX_used) document.MAX_used = ',';
  document.write ("<scr"+"ipt type='text/javascript' src='"+m3_u);
  document.write ("?zoneid=1");
  document.write ('&amp;cb=' + m3_r);
  if (document.MAX_used != ',') document.write ("&amp;exclude=" + document.MAX_used);
  document.write (document.charset ? '&amp;charset='+document.charset : (document.characterSet ? '&amp;charset='+document.characterSet : ''));
  document.write ("&amp;loc=" + escape(window.location));
  if (document.referrer) document.write ("&amp;referer=" + escape(document.referrer));
  if (document.context) document.write ("&context=" + escape(document.context));
  if (document.mmm_fo) document.write ("&amp;mmm_fo=1");
  document.write ("'><\/scr"+"ipt>");
//]]>--></script>

</body>
</html>

当用户浏览器运行这个页面代码时,会从您的OpenX服务器上调用多个不同的URL。您可以通过工具(类似IE下的iehttpheaders或者Firefox下的LiveHTTPHeaders)看到这些URL调用。下面是当页面运行时被调用的URL:

  • http://www.example.com/openx/www/delivery/ajs.php?zoneid=1&cb=15028591281&charset=UTF-8&loc=http%3A//www.example.com/test.html
  • http://www.example.com/openx/www/delivery/ai.php?filename=468×60.gif&contenttype=gif
  • http://www.example.com/openx/www/delivery/lg.php?bannerid=2&campaignid=1&zoneid=1&loc=http%3A%2F%2Fwww.example.com%2Ftest.html&cb=0c9f6849c2

您可以看到,第一个URL是用来获取显示广告的代码,第二个URL用来获取实际的广告图片,第三个URL用来调用1×1 .gif图片以记录广告展现PV。为了找到为什么广告显示不出来,第一个URL是最重要的,因为它是用来调用显示广告的代码。

将第一个URL通过浏览器打开,将会返回下面的结果:

var OX_cacd23fb = '';
OX_cacd23fb += "<"+"a href=\'http://www.example.com/openx/www/delivery/ck.php?oaparams=2__bannerid=2__zoneid=1__cb=b5fcef6ca8__oadest=http%3A%2F%2Fwww.openxtips.com%2F\' target=\'_blank\'><"+"img src=\'http://www.example.com/openx/www/delivery/ai.php?filename=468x60.gif&contenttype=gif\' width=\'468\' height=\'60\' alt=\'\' title=\'\' border=\'0\' /><"+"/a><"+"div id=\'beacon_b5fcef6ca8\' style=\'position: absolute; left: 0px; top: 0px; visibility: hidden;\'><"+"img src=\'http://www.example.com/openx/www/delivery/lg.php?bannerid=2&amp;campaignid=1&amp;zoneid=1&amp;loc=http%3A%2F%2Fwww.example.com%2Ftest.html&amp;cb=b5fcef6ca8\' width=\'0\' height=\'0\' alt=\'\' style=\'width: 0px; height: 0px;\' /><"+"/div>\n";
document.write(OX_cacd23fb);

这个是用来显示广告HTML内容的Javascript代码。

很显然,上面的示例和您的实际情况是不一样的,因为您不会使用“www.example.com”域名,可能您会将OpenX安装到不同的路径,也可能您用的不是Javascript代码。无论如何,基础的过程都是一样的,在包含广告代码的页面运行时,您看到的第一个URL调用应该就是用来产生广告内容的。

如果您发现本次调用并没有任何广告内容出现,那么很有可能是您的广告服务器安装出了些问题导致广告不能正常显示。可以通过下面的步骤来定位问题。

#1.7.1: 检查Web服务器日志

查看您的Web服务器日志,尝试找到用来返回广告内容的URL地址。如果这些URL被调用时出现了错误,将会在错误日志里有所记录。通过日志可以帮您找到为什么调用出错。最常见的调用错误原因是:

  • 文件或者目录的权限问题,没有权限调用OpenX下“var/cache”目录下的Cache文件或者没有权限运行OpenX下的某些代码。
  • 数据服务器出错导致无法读取必须的广告信息(举例来说,数据库服务器没有运行,数据库有错误数据或错误表,数据库的用户名密码或者权限被修改过等等)

#1.7.2: 打开调试状态

如果上面的Web服务器日志仍然不能帮助您找到为什么广告内容无法返回,您需要尝试打开系统调试状态以帮助您找到更多的信息。无论如何,在做这件事情前一定要小心,因为所有的错误信息都会在生产系统上时时显示。所以,这个是最后一招。

要想打开系统调试状态,编辑OpenX配置文件,按下面的说明修改:

[debug]
production=1

将production值设为0(或者”false”)。

同时,您可能需要修改PHP设置以显示错误信息。

上面这些操作只能让您看到一些错误信息,这些可能会帮助您找到错误并修改错误。如果实在没有办法修复,可以给OpenX的开发团队提交Bug

#2.0: 有广告显示,但不是想要的广告

有时候,广告可以显示,但是显示的不是应该出现的广告。举例来说,可能会出现下面几种状况:

  • 所有您看到的广告都不是您认为应该看到的;
  • 有些广告您认为应该看到的,但是从来都没有看到;
  • 广告显示的次数和您的期望不一样。

上面说的集中情况,下面这些步骤可能可以帮助您。

#2.1: 您使用的是正确的广告代码么?

一般来说,您看到的广告都不对的话都是因为使用的广告代码错了,经常都是在复制粘贴过程中弄错了。

尝试重新直接生成广告代码,并重新放到网站需要的位置。

#2.2: 您希望看到的广告看不到,确认其已经生效或者连接到广告位上了么?

重新确认下在广告位显示概率界面上,您期望显示的广告是有效的并且已经连接到您看到的广告位上了。另外重新确认下该广告的显示概率大于0!

#2.3: 您希望看到的广告看不到,是新加的广告或者最近刚刚修改过的么?

OpenX广告服务器使用缓存系统来保证广告投放的效率。因此,对广告的任何修改,包括连接新的广告到广告位上,将不会马上在投放中生效,除非广告缓存时间到了。

如果您希望看到的广告看不到,并且广告是新加的,或者是刚刚连接到广告位上,亦或是修改过,在缓存时间到了后在确认广告是否能够正常显示。

#2.4: 您希望看到的广告看不到,确认该广告设置了目标用户或者频次?

有时候,广告实际上是被投放了,但只是您看不到,可能是因为您设置了广告投放的目标用户或者频次,导致这些广告只能被其他特定用户看到。

使用广告位显示概率界面快速的查看下广告是否设置了目标用户或者频次,如果设置了,看下这些设置是否正确。您也可以查看下报表确认您看不到的广告是否被投放了。

#2.5: 您运行的是第三方的广告联盟广告么?

有时候,您可能在您的网站上看到了不应该出现的广告。常见的原因是因为您正在展示第三方的广告联盟广告,而第三方广告提供了新的广告主,亦或是提供了以前没有使用过的新广告格式。

尝试使用工具(类似IE下的iehttpheaders或者Firefox下的LiveHTTPHeaders)查看广告点击时的URL调用。这些可以帮您确认是哪个广告联盟在显示这些不期望展示的广告。

#2.6: 您在运行OpenX的Market么?

在OpenX 2.8版本,OpenX Market为网站主提供了为广告项目设置基础价格的功能,当某个OpenX Market里面的广告主希望付高于这个价格的钱来买这个广告展示的时候,OpenX Market将会代替原有广告项目的广告而显示这个广告主的广告。

虽然这个对于使用OpenX的发布商是一个好的消息,因为这是一种无风险的提升收入的方式。但同时也意味着任何时候,只要有OpenX Market的广告主愿意付更多的钱购买当前的广告展示,那所谓的“意外”广告就会被显示。

如果您发现当前显示的“意外”广告不是来自于第三方广告联盟,检查下广告项目,确认您是否打开了OpenX Market。这些可能是为什么您看到了“意外”广告的原因(令人高兴的赚钱广告!)。

OpenX上如何安装插件?

December 31st, 2009

英文原文地址:http://www.adserverplugins.com/openx/how-to-install-a-plugin-in-openx-ad-server/

在OpenX服务器上安装插件非常简单,只需要按照下面的步骤进行。

系统需求

  • 独立的OpenX广告服务器安装。OpenX主机版本不能添加插件。
  • OpenX 2.8版本之后才可以添加插件,之前的版本不支持插件。
  • 在安装新插件或更新插件之前您需要以系统管理员身份登录。只有管理员才有权限管理插件。

安装新插件步骤

要在OpenX服务器上安装新插件,先检查下系统需求是否满足,然后按照以下步骤进行:

  1. 使用管理员帐号信息登录。
  2. 确认您是在使用管理员帐号。如果不是,在右上方有一个选择下拉,选择“使用管理员账户”。
  3. 在Logo的下方,您将会看到有两个新的标签出现,“配置”和“插件”。
  4. 点击“插件”标签查看所有已经安装的插件清单。
  5. 在“安装新插件”下方,点击“浏览…”按钮,选择您准备安装的插件文件。
  6. 找到您选择的文件后,您将会被带往插件界面。
  7. 点击“安装”按钮。
  8. 系统将会检查并安装新的插件。安装过程一般只需几秒钟。有些插件可能需要在数据库里创建单独的表,如果那样的话,可能安装时间会稍微长一点,取决于创建表的数目。
  9. 一旦插件安装完毕,界面将会刷新,您可以看到新的插件显示在插件清单中。

更新插件步骤

如果您收到了已经安装好的插件的更新版本,下面将说明更新的步骤:

  1. 使用管理员帐号信息登录。
  2. 确认您是在使用管理员帐号。如果不是,在右上方有一个选择下拉,选择“使用管理员账户”。
  3. 在Logo的下方,您将会看到有两个新的标签出现,“配置”和“插件”。
  4. 点击“插件”标签查看所有已经安装的插件清单。
  5. 点击您需要更新的插件旁边的“详情”链接。
  6. 系统将会显示您选择的插件的详情页面,包括版本号、创建日期和作者的相关信息。
  7. 在“更新插件”下方,点击“浏览…”按钮,选择您准备更新的插件文件。
  8. 一旦您找到并选择相应的文件后,点击“更新”按钮。
  9. 系统将会自动更新插件,也包括对上传文件的检查。安装持续时间一般只需要几秒,长短取决于更新量的大小。
  10. 更新完成后,在界面上将会显示新版的详情信息。

作者注:根据实际安装插件的经验,切记不要修改下载的安装包名,上传安装包的时候,OpenX会自动检查安装包是否可用,中间会用到安装包名,笔者之前就曾因为修改了安装包名而无法安装插件的经历。

Openx用户权限

November 26th, 2009

本人查看了openx网站帮助后总结了一个图,拿出来给大家分享一下,

Openx用户权限

Openx用户权限
管理理员
* 创建经理帐户
* 将用户添加到经理帐户
* 可以作为一个经理
* 创建其他管理员用户
* 查看主页和用户日志页
* 管理全球和维护设置
* 获得直接选择
Default manager  客户经理的权利
* 创建和管理广告商和网站
* 添加其他经理帐户
* 将用户添加到广告商和网站
* 查看主页和用户日志页
* 管理帐户偏好
* 进入渠道管理
网站的权利:
* 创建区
* 链接区
* 生成调用代码
* 其他用户连结此帐户
广告客户的权利:
* 查看活动
* 修改广告
* 激活运动
* 停用运动
* 其他用户连结此帐户

【应用技巧】测试的时候调整缓存生效时间

November 20th, 2009

英文原文地址:http://www.openxtips.com/2009/11/tip-36-change-the-banner-cache-value-when-testing/

在测试广告投放的时候,可以调整缓存时间为1秒,以让缓存失效,以便广告能够及时生效

如果您在调试广告投放,或者想试一试调整竞价模式以及广告显示设置的时候,降低广告缓存时间可以让您的设置能够更快的生效。当然,如果这种调整是在生产系统上进行的,则会影响到广告投放的性能。

如何在一个广告位中投放多个广告?

October 10th, 2009

英文原文地址:http://www.openx.org/en/faq/how-do-i-serve-multiple-ads-single-zone

使用广告包的概念,你可以通过创建一个HTML Banner的方式来投放多个广告。

下面的说明告诉您如何为每个独立的广告生成特定代码以在广告位中展现。

举例来说:

1、设置两个广告位尺寸为234×60

2、关联两个(或更多)的广告到这个广告位

3、创建一个新的HTML Banner(468×60),并将上面创建的两个234*60的广告代码粘贴到广告代码中。

以上操作将可以实现在一个468×60的Banner(关联到您网站上的468×60广告位)来投放两个234×60的半广告。

如果您希望两个子广告不出现同样的内容,在生成子广告代码的时候可以选择“不要在同一页面展示相同规格”的选项。

在虚拟主机上安装Openx

August 21st, 2009

Openx和美国的虚拟主机提供商DreamHost合作,使用DreamHost主机,可以实现一键安装Openx系统。对于不太懂如何配置服务器的使用者来讲,的确是一个不错的选择。

对于Openx提供的Hosting服务和DreamHost服务对比:

  1. 免费Hosting服务只提供每月1亿PV的展现,超过的部分要付费。
  2. 付费的Hosting服务按照CPM来计费,核算下来每CPM需要0.05元人民币的成本
  3. 免费Hosting服务不支持API和插件
  4. DreamHost年费$107

在购买的时候输入以下优惠券代码,可以省$50。

前往DreamHost主机官网 【优惠券码:OPENXCHINA】

在Banner HTML和URL中应用宏(Macro)

August 10th, 2009

英文原文地址:http://www.openx.org/en/docs/whitepapers/magic-macros

宏(Macro)指的是可以应用在Banner HTML(或目标URL)中的宏命令,通过这些宏命令,可以在生产的广告代码中添加不同的属性值。

说明:
每个宏包括:

  • 宏名称
  • 描述包括使用目的、实例和结果
  • 更多信息的链接
神奇的宏 说明
{clickurl} 投放广告时的Openx点击跟踪地址,例如: http://…/delivery/ck.php?oaparams=2__bannerid=…
{timestamp} 时间戳(自Unix元时间的毫秒数)例如: 1185290310.72
{random} 10个字符的随机字符串例如:b616f31e72
{logurl}* Openx展示计数用URL,例如: http://…/delivery/lg.php?bannerid=…
{logurl_enc}* 和 {logurl}一样,但只是被URL编码过,例如: http%3A%2F%2F…%2Fdelivery%2Flg.php%3Fbannerid%3D…
{target} 被选择Banner的Target值,例如: _blank
{url_prefix} Openx投放服务器的根目录,例如: http://ads.example.com/www/delivery
{bannerid} 所选Banner的ID,例如:123
{zoneid} 所选广告位的ID,例如:456
{source} 在网站代码中传递的Source参数值,例如:source=cat123/cat456…
{pageurl} 广告请求所在页面地址(URL编码过),例如: http%3A%2F%2Flocalhost%2Fmagic_macros%2Ftest.html
{referer} 广告请求页面的Referer(URL编码过),例如:http%3A%2F%2Flocalhost%2Fmagic_macros%2F
{width} 当前广告的宽度(像素),例如:468
{height} 当前广告的高度(像素),例如:60
{clickurlparams} 将会被传递给{clickurl}的参数值,例如: 2__bannerid=X__zoneid=Y__source=cat123/cat456__cb=0d9139d879__maxdest=
{ANY_INPUT_VARIABLE} 任何在php $_REQUEST数组中表现的值($_GET/$_POST/$_COOKIE),例如:{OAID} -> $_COOKIE['OAID'] = 1fd819ffc7267757ba681ff5daa3007e


如果在HTML中使用了宏,但是相应的值没有找到,则视宏的类型而定赋予相应的值:

  • 以ID结尾的核心宏 — 赋值为0
  • 其他核心宏 — 空值
  • 任何”ANY_INPUT_VARIABLE”宏  — 宏字符串将不会被替换

 *注意:如果在HTML广告中发现了{logurl}或者{logurl_enc},Openx将不会直接记录展现日志,而是将此日志记录URL传递给第三方并通过他们来执行提供的日志记录URL。

在URL中使用宏

{clickurl} 

通过在第三方方服务器上的广告HTML中添加{clickurl}宏,Openx可以跟踪对应广告上的点击数。

更多信息: 第三方点击跟踪白皮书将描述如何应用这个功能。

 当广告被点击时,Openx替换掉点击跟踪URL中的宏,例如:http://.../delivery/ck.php?oaparams=2__bannerid=.... 浏览器将前往该URL,而这个URL则是Openx用来记录点击数并转向浏览广告地址的。

{clickurlparams}

{clickurlparams}是用来为第三方点击跟踪传递{clickurl}中的相关参数,这些参数是:

  •  bannerid
  • zoneid
  • source
  • cb
  • maxdest

{pageurl}

广告请求页面的URL(URL编码),例如:http%3A%2F%2Flocalhost%2Fmagic_macros%2Ftest.html