当前位置:首页 > 技术文章 > openx > OpenX 三大模块简单分析
OpenX 三大模块简单分析
文章来源:本站原创  浏览次数:311  发布日期:2013-04-16

OpenX 三大模块 简单分析


1. Delivery Engine 广告推送模块

2. Maintenance
2.1 MSE (Maintenance Statistics Engine)
2.2 MPE (Maintenance Priority Engine)

3. Statistics 报表

-------------------------------------------------------------

=== Delivery Engine ===
1. 相关文件

1.1 /www/delivery/ (此目录下的文件是经过"预编译"的,源文件可以其官方SVNhttps://svn.openx.org/openx/trunk的 www/delivery_dev 目录里找到)

1.2 /lib/max/Delivery
1.3 /lib/OA/Dal/Delivery
1.4 /plugins/ Delivery开头的 Plugin

2. 获取Banner的重要方法

总体流程( 输入zoneid )
| 广告请求 -->
| 初始化相关系统信息 -->
| 入口 [ MAX_adSelect() , /lib/max/Delivery/adSelect.php ]-->

| 调用方法 [ _adSelectZone() ] -->

---| 01 根据zoneid找到此zone的相关信息( cache或数据库)[MAX_cacheGetZoneInfo] -->
---| 02 判断此zone是否有Cap等限制条件 [MAX_limitationsIsZoneForbidden],如果满足,返回 01, 继续下一个zoneid -->
---| 获取所有与此zone linked 的 banner [MAX_cacheGetZoneLinkedAdInfos() ] -->

---| 获取一个广告[_adSelectCommon()] -->
---|---| 调用 preAdSelect hook (默认是没有这类hook的)-->
---|---| 根据banner所在的campaign的类型选择广告 [ _adSelectInnerLoop() ]-->

---|---| 获取一组广告[ _adSelect() ] -->
---|---|---|去除不满足条件的广告[ _adSelectDiscardNonMatchingAds()]
---|---|---|根据广告过期时间,Cap, ACLs等去除广告[ _adSelectCheckCriteria()]

---|---|---|---| 广告Cap [ MAX_limitationsIsAdForbidden() ]-->
---|---|---|---| 广告ACLs,如时段、地域、频道、关键字、网站等 [MAX_limitationsCheckAcl() ] ->
---|---|---|---|---| MAX_limitationsCheckAcl方法,会调用/plugins/deliveryLimitations/ 的相关插件

---|---|---| _adSelect()方法里再根据广告的权重,随机选择一个广告返回

| 记录request, 如果配置要求记录广告请求数的话
| 显示广告
| 记录impression -> lg.php ->返回一个1X1 gif pixel

3. 记录广告impression, click
默认的请求是lg.php, ck.php

4. 如何增加自定义的广告推送限制条件?deliveryLimitations Extension

5. 如何记录广告IP,UV?
可实现 logImpression和logClickExtension。


原文来自:OpenX 三大模块简单分析 http://www.redyun.net/technology/86.html

红云案例Case