当前位置: 首页>>代码示例>>PHP>>正文


PHP MAX_cacheGetTrackerLinkedCreatives函数代码示例

本文整理汇总了PHP中MAX_cacheGetTrackerLinkedCreatives函数的典型用法代码示例。如果您正苦于以下问题:PHP MAX_cacheGetTrackerLinkedCreatives函数的具体用法?PHP MAX_cacheGetTrackerLinkedCreatives怎么用?PHP MAX_cacheGetTrackerLinkedCreatives使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了MAX_cacheGetTrackerLinkedCreatives函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: OA_Dal_Delivery_getLinkedAds

/**
 * The function to get and return the ads for direct selection
 *
 * @param string  $search       The search string for this banner selection
 *                              Usually 'bannerid:123' or 'campaignid:123'
 * @param string  $campaignid   The campaign ID to fecth banners from, added in 2.3.32 to allow BC with 2.0
 * @param boolean $lastpart     Are there any other search strings left
 *
 * @return array|false          The array of ads matching the search criteria
 *                              or false on failure
 */
function OA_Dal_Delivery_getLinkedAds($search, $campaignid = '', $lastpart = true)
{
    $conf = $GLOBALS['_MAX']['CONF'];
    // Sanitise parameteres
    $campaignid = (int) $campaignid;
    if ($campaignid > 0) {
        $precondition = " AND d.campaignid = '" . $campaignid . "' ";
    } else {
        $precondition = '';
    }
    $aRows['xAds'] = array();
    $aRows['ads'] = array();
    $aRows['lAds'] = array();
    $aRows['count_active'] = 0;
    $aRows['zone_companion'] = false;
    $aRows['count_active'] = 0;
    $totals = array('xAds' => 0, 'ads' => 0, 'lAds' => 0);
    $query = OA_Dal_Delivery_buildQuery($search, $lastpart, $precondition);
    $rAds = OA_Dal_Delivery_query($query);
    if (!is_resource($rAds)) {
        return defined('OA_DELIVERY_CACHE_FUNCTION_ERROR') ? OA_DELIVERY_CACHE_FUNCTION_ERROR : null;
    }
    // Get creatives with conversions enabled
    $aConversionLinkedCreatives = MAX_cacheGetTrackerLinkedCreatives();
    while ($aAd = OA_Dal_Delivery_fetchAssoc($rAds)) {
        $aAd['tracker_status'] = !empty($aConversionLinkedCreatives[$aAd['ad_id']]['status']) ? $aConversionLinkedCreatives[$aAd['ad_id']]['status'] : null;
        // Is the creative from an override, contract or remnant campaign?
        if ($aAd['campaign_priority'] == -1) {
            // Creative is in an override campaign
            $aAd['priority'] = $aAd['campaign_weight'] * $aAd['weight'];
            $aRows['xAds'][$aAd['ad_id']] = $aAd;
            $aRows['count_active']++;
            $totals['xAds'] += $aAd['priority'];
        } elseif ($aAd['campaign_priority'] == 0) {
            // Creative is in a remnant campaign
            $aAd['priority'] = $aAd['campaign_weight'] * $aAd['weight'];
            $aRows['lAds'][$aAd['ad_id']] = $aAd;
            $aRows['count_active']++;
            $totals['lAds'] += $aAd['priority'];
        } elseif ($aAd['campaign_priority'] == -2) {
            // Creative is in an eCPM campaign
            $aRows['eAds'][$aAd['campaign_priority']][$aAd['ad_id']] = $aAd;
            $aRows['count_active']++;
        } else {
            // Creative is in a contract campaign
            $aRows['ads'][$aAd['campaign_priority']][$aAd['ad_id']] = $aAd;
            $aRows['count_active']++;
        }
    }
    // If there are override campaign creatives, sort by priority
    if (isset($aRows['xAds']) && is_array($aRows['xAds'])) {
        $totals['xAds'] = _setPriorityFromWeights($aRows['xAds']);
    }
    // If there are contract campaign creatives, prepare array of priority totals
    // to allow delivery to do the scaling work later
    if (isset($aRows['ads']) && is_array($aRows['ads'])) {
        // Are there any "lower" level creatives?
        if (isset($aRows['lAds']) && is_array($aRows['lAds']) && count($aRows['lAds']) > 0) {
            // "Lower" level creatives exist, INCLUDE the "blank" priority
            $totals['ads'] = _getTotalPrioritiesByCP($aRows['ads'], true);
        } else {
            // "Lower" level creatives do NOT exist, EXCLUDE the "blank" priority
            $totals['ads'] = _getTotalPrioritiesByCP($aRows['ads'], false);
        }
    }
    // eCPM remnant campaigns
    if (is_array($aRows['eAds'])) {
        $totals['eAds'] = _getTotalPrioritiesByCP($aRows['eAds']);
    }
    // If there are remnant campaign creatives, sort by priority
    if (isset($aRows['lAds']) && is_array($aRows['lAds'])) {
        $totals['lAds'] = _setPriorityFromWeights($aRows['lAds']);
    }
    $aRows['priority'] = $totals;
    return $aRows;
}
开发者ID:Spark-Eleven,项目名称:revive-adserver,代码行数:87,代码来源:Delivery.php

示例2: MAX_trackerCheckForValidAction

/**
 * This function checks if the specified tracker connects back to a valid action
 *
 * @param integer $trackerid The ID of the tracker to look up in the database
 * @return mixed If action occurred: array indexed on [#s since action] => array('type' => <connection type>, 'id' => <creative ID>
 *               else false
 */
function MAX_trackerCheckForValidAction($trackerid)
{
    // Get all creatives that are linked to this tracker
    $aTrackerLinkedAds = MAX_cacheGetTrackerLinkedCreatives($trackerid);
    // This tracker is not linked to any creatives
    if (empty($aTrackerLinkedAds)) {
        return false;
    }
    // Note: Constants are not included n the delivery engine, the values below map to the values defined in constants.php
    $aPossibleActions = _getActionTypes();
    $now = MAX_commonGetTimeNow();
    $aConf = $GLOBALS['_MAX']['CONF'];
    $aMatchingActions = array();
    // Iterate over all creatives linked to this tracker...
    foreach ($aTrackerLinkedAds as $creativeId => $aLinkedInfo) {
        // Iterate over all possible actions (currently only "view" and "click")
        foreach ($aPossibleActions as $actionId => $action) {
            // If there is both a connection window set, and this creative has been actioned
            if (!empty($aLinkedInfo[$action . '_window']) && !empty($_COOKIE[$aConf['var']['last' . ucfirst($action)]][$creativeId])) {
                // Check for any custom data which a plugin may have stored in the cookie
                if (stristr($_COOKIE[$aConf['var']['last' . ucfirst($action)]][$creativeId], ' ')) {
                    list($value, $extra) = explode(' ', $_COOKIE[$aConf['var']['last' . ucfirst($action)]][$creativeId], 2);
                    $_COOKIE[$aConf['var']['last' . ucfirst($action)]][$creativeId] = $value;
                } else {
                    $extra = '';
                }
                list($lastAction, $zoneId) = explode('-', $_COOKIE[$aConf['var']['last' . ucfirst($action)]][$creativeId]);
                // Decode the base32 timestamp
                $lastAction = MAX_commonUnCompressInt($lastAction);
                // Calculate how long ago this action occurred
                $lastSeenSecondsAgo = $now - $lastAction;
                // If the action occurred within the window (and sanity check that it's > 0), record this as a matching action
                if ($lastSeenSecondsAgo <= $aLinkedInfo[$action . '_window'] && $lastSeenSecondsAgo > 0) {
                    // Index the matching array against the # seconds ago that the action occurred
                    $aMatchingActions[$lastSeenSecondsAgo] = array('action_type' => $actionId, 'tracker_type' => $aLinkedInfo['tracker_type'], 'status' => $aLinkedInfo['status'], 'cid' => $creativeId, 'zid' => $zoneId, 'dt' => $lastAction, 'window' => $aLinkedInfo[$action . '_window'], 'extra' => $extra);
                }
            }
        }
    }
    // If no actions matched, return false
    if (empty($aMatchingActions)) {
        return false;
    }
    // Sort by ascending #seconds since action
    ksort($aMatchingActions);
    // Return the first matching action
    return array_shift($aMatchingActions);
}
开发者ID:Jaree,项目名称:revive-adserver,代码行数:55,代码来源:tracker.php

示例3: MAX_trackerCheckForValidAction

function MAX_trackerCheckForValidAction($trackerid)
{
    $aTrackerLinkedAds = MAX_cacheGetTrackerLinkedCreatives($trackerid);
    if (empty($aTrackerLinkedAds)) {
        return false;
    }
    $aPossibleActions = _getActionTypes();
    $now = MAX_commonGetTimeNow();
    $aConf = $GLOBALS['_MAX']['CONF'];
    $aMatchingActions = array();
    foreach ($aTrackerLinkedAds as $creativeId => $aLinkedInfo) {
        foreach ($aPossibleActions as $actionId => $action) {
            if (!empty($aLinkedInfo[$action . '_window']) && !empty($_COOKIE[$aConf['var']['last' . ucfirst($action)]][$creativeId])) {
                if (stristr($_COOKIE[$aConf['var']['last' . ucfirst($action)]][$creativeId], ' ')) {
                    list($value, $extra) = explode(' ', $_COOKIE[$aConf['var']['last' . ucfirst($action)]][$creativeId], 2);
                    $_COOKIE[$aConf['var']['last' . ucfirst($action)]][$creativeId] = $value;
                } else {
                    $extra = '';
                }
                list($lastAction, $zoneId) = explode('-', $_COOKIE[$aConf['var']['last' . ucfirst($action)]][$creativeId]);
                $lastAction = MAX_commonUnCompressInt($lastAction);
                $lastSeenSecondsAgo = $now - $lastAction;
                if ($lastSeenSecondsAgo <= $aLinkedInfo[$action . '_window'] && $lastSeenSecondsAgo > 0) {
                    $aMatchingActions[$lastSeenSecondsAgo] = array('action_type' => $actionId, 'tracker_type' => $aLinkedInfo['tracker_type'], 'status' => $aLinkedInfo['status'], 'cid' => $creativeId, 'zid' => $zoneId, 'dt' => $lastAction, 'window' => $aLinkedInfo[$action . '_window'], 'extra' => $extra);
                }
            }
        }
    }
    if (empty($aMatchingActions)) {
        return false;
    }
    ksort($aMatchingActions);
    return array_shift($aMatchingActions);
}
开发者ID:JackyKit,项目名称:revive-adserver,代码行数:34,代码来源:ti.php

示例4: OA_Dal_Delivery_getZoneLinkedAds

/**
 * The function to get and return the ads linked to a zone
 *
 * @param  int   $zoneid The id of the zone to get linked ads for
 *
 * @todo   Refactor this query (and others) to use OA_Dal_Delivery_buildQuery()
 * @return array|false
 *               The array containg zone information with nested arrays of linked ads
 *               or false on failure. Note that:
 *                  - Exclusive ads are in "xAds"
 *                  - Normal (paid) ads are in "ads"
 *                  - Low-priority ads are in "lAds"
 *                  - Companion ads, in addition to being in one of the above, are
 *                    also in "cAds" and "clAds"
 *                  - Exclusive and low-priority ads have had their priorities
 *                    calculated on the basis of the placement and advertisement
 *                    weight
 */
function OA_Dal_Delivery_getZoneLinkedAds($zoneid)
{
    $conf = $GLOBALS['_MAX']['CONF'];
    // Sanitise parameteres
    $zoneid = (int) $zoneid;
    $aRows = OA_Dal_Delivery_getZoneInfo($zoneid);
    $aRows['xAds'] = array();
    $aRows['cAds'] = array();
    $aRows['clAds'] = array();
    $aRows['ads'] = array();
    $aRows['lAds'] = array();
    $aRows['eAds'] = array();
    $aRows['count_active'] = 0;
    $aRows['zone_companion'] = false;
    $aRows['count_active'] = 0;
    $totals = array('xAds' => 0, 'cAds' => 0, 'clAds' => 0, 'ads' => 0, 'lAds' => 0);
    $query = "\n        SELECT\n            d.bannerid AS ad_id,\n            d.campaignid AS placement_id,\n            d.status AS status,\n            d.description AS name,\n            d.storagetype AS type,\n            d.contenttype AS contenttype,\n            d.pluginversion AS pluginversion,\n            d.filename AS filename,\n            d.imageurl AS imageurl,\n            d.htmltemplate AS htmltemplate,\n            d.htmlcache AS htmlcache,\n            d.width AS width,\n            d.height AS height,\n            d.weight AS weight,\n            d.seq AS seq,\n            d.target AS target,\n            d.url AS url,\n            d.alt AS alt,\n            d.statustext AS statustext,\n            d.bannertext AS bannertext,\n            d.adserver AS adserver,\n            d.block AS block_ad,\n            d.capping AS cap_ad,\n            d.session_capping AS session_cap_ad,\n            d.compiledlimitation AS compiledlimitation,\n            d.acl_plugins AS acl_plugins,\n            d.append AS append,\n            d.appendtype AS appendtype,\n            d.bannertype AS bannertype,\n            d.alt_filename AS alt_filename,\n            d.alt_imageurl AS alt_imageurl,\n            d.alt_contenttype AS alt_contenttype,\n            d.parameters AS parameters,\n            d.transparent AS transparent,\n            d.ext_bannertype AS ext_bannertype,\n            az.priority AS priority,\n            az.priority_factor AS priority_factor,\n            az.to_be_delivered AS to_be_delivered,\n            c.campaignid AS campaign_id,\n            c.priority AS campaign_priority,\n            c.weight AS campaign_weight,\n            c.companion AS campaign_companion,\n            c.block AS block_campaign,\n            c.capping AS cap_campaign,\n            c.session_capping AS session_cap_campaign,\n            c.clientid AS client_id,\n            c.clickwindow AS clickwindow,\n            c.viewwindow AS viewwindow,\n            m.advertiser_limitation AS advertiser_limitation,\n            a.account_id AS account_id,\n            z.affiliateid AS affiliate_id,\n            a.agencyid as agency_id\n        FROM\n            " . OX_escapeIdentifier($conf['table']['prefix'] . $conf['table']['banners']) . " AS d JOIN\n            " . OX_escapeIdentifier($conf['table']['prefix'] . $conf['table']['ad_zone_assoc']) . " AS az ON (d.bannerid = az.ad_id) JOIN\n            " . OX_escapeIdentifier($conf['table']['prefix'] . $conf['table']['zones']) . " AS z ON (az.zone_id = z.zoneid) JOIN\n            " . OX_escapeIdentifier($conf['table']['prefix'] . $conf['table']['campaigns']) . " AS c ON (c.campaignid = d.campaignid) LEFT JOIN\n            " . OX_escapeIdentifier($conf['table']['prefix'] . $conf['table']['clients']) . " AS m ON (m.clientid = c.clientid) LEFT JOIN\n            " . OX_escapeIdentifier($conf['table']['prefix'] . $conf['table']['agency']) . " AS a ON (a.agencyid = m.agencyid)\n        WHERE\n            az.zone_id = {$zoneid}\n          AND\n            d.status <= 0\n          AND\n            c.status <= 0\n    ";
    //    $query = OA_Dal_Delivery_buildQuery('', '', '');
    $rAds = OA_Dal_Delivery_query($query);
    if (!is_resource($rAds)) {
        if (defined('OA_DELIVERY_CACHE_FUNCTION_ERROR')) {
            return OA_DELIVERY_CACHE_FUNCTION_ERROR;
        } else {
            return null;
        }
    }
    // Get timezone data
    $aTimezones = MAX_cacheGetAccountTZs();
    $aConversionLinkedCreatives = MAX_cacheGetTrackerLinkedCreatives();
    while ($aAd = OA_Dal_Delivery_fetchAssoc($rAds)) {
        // Add timezone
        if (isset($aAd['account_id']) && isset($aTimezones['aAccounts'][$aAd['account_id']])) {
            $aAd['timezone'] = $aTimezones['aAccounts'][$aAd['account_id']];
        } else {
            $aAd['timezone'] = $aTimezones['default'];
        }
        $aAd['tracker_status'] = !empty($aConversionLinkedCreatives[$aAd['ad_id']]['status']) ? $aConversionLinkedCreatives[$aAd['ad_id']]['status'] : null;
        // Is the ad Exclusive, Low, or Normal Priority?
        if ($aAd['campaign_priority'] == -1) {
            // Ad is in an exclusive placement
            $aRows['xAds'][$aAd['ad_id']] = $aAd;
            $aRows['count_active']++;
        } elseif ($aAd['campaign_priority'] == 0) {
            // Ad is in a low priority placement
            $aRows['lAds'][$aAd['ad_id']] = $aAd;
            $aRows['count_active']++;
        } elseif ($aAd['campaign_priority'] == -2) {
            // Ad is in a low priority eCPM placement
            $aRows['eAds'][$aAd['ad_id']] = $aAd;
            $aRows['count_active']++;
        } else {
            // Ad is in a paid placement
            $aRows['ads'][$aAd['campaign_priority']][$aAd['ad_id']] = $aAd;
            $aRows['count_active']++;
        }
        // Also store Companion ads in additional array
        if ($aAd['campaign_companion'] == 1) {
            if ($aAd['campaign_priority'] == 0) {
                // Store a low priority companion ad
                $aRows['zone_companion'][] = $aAd['placement_id'];
                $aRows['clAds'][$aAd['ad_id']] = $aAd;
            } else {
                // Store a paid priority companion ad
                $aRows['zone_companion'][] = $aAd['placement_id'];
                $aRows['cAds'][$aAd['campaign_priority']][$aAd['ad_id']] = $aAd;
            }
        }
    }
    // If there are exclusive ads, sort by priority
    if (is_array($aRows['xAds'])) {
        $totals['xAds'] = _setPriorityFromWeights($aRows['xAds']);
    }
    // If there are paid ads (or eCPM ads), prepare array of priority totals
    // to allow delivery to do the scaling work later
    if (is_array($aRows['ads'])) {
        $totals['ads'] = _getTotalPrioritiesByCP($aRows['ads']);
    }
    if (is_array($aRows['eAds'])) {
        $totals['eAds'] = _getTotalPrioritiesByCP($aRows['eAds']);
    }
    // If there are low priority ads, sort by priority
    if (is_array($aRows['lAds'])) {
//.........这里部分代码省略.........
开发者ID:villos,项目名称:tree_admin,代码行数:101,代码来源:Delivery.php


注:本文中的MAX_cacheGetTrackerLinkedCreatives函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。