You are here

function click_filter_status in Advertisement 6.3

Same name and namespace in other branches
  1. 5.2 statistics/click_filter/click_filter.module \click_filter_status()
  2. 5 statistics/click_filter/click_filter.module \click_filter_status()
  3. 6 statistics/click_filter/click_filter.module \click_filter_status()
  4. 6.2 statistics/click_filter/click_filter.module \click_filter_status()
  5. 7 statistics/click_filter/click_filter.module \click_filter_status()

Perform on-the-fly click filtering.

1 call to click_filter_status()
ad_redirect in ./ad.module
Update click counter then redirect host to ad's target URL.
1 string reference to 'click_filter_status'
ad_redirect in ./ad.module
Update click counter then redirect host to ad's target URL.

File

statistics/click_filter/click_filter.module, line 60
Filter duplicate and other unwanted clicks from ad statistics.

Code

function click_filter_status($aid, $hostid) {
  global $user;
  if (user_access('filter clicks')) {
    return CLICK_FILTER_ROLE;
  }
  if (preg_match('/bot|crawl|spider/i', $_SERVER['HTTP_USER_AGENT'])) {
    return CLICK_BOT;
  }

  // See if the click came from an owner of the ad.
  if (module_exists('ad_owners')) {
    $result = db_query('SELECT oid FROM {ad_owners} WHERE aid = %d AND uid = %d', $aid, $user->uid);
    if (db_result($result)) {
      return CLICK_OWNER;
    }
  }

  // See if the click came from a duplicate uid or ip address.
  if ($user->uid) {
    $result = db_query("SELECT cid FROM {ad_clicks} WHERE aid = %d AND status = %d AND (uid = %d OR hostname = '%s')", $aid, CLICK_VALID, $user->uid, ip_address());
  }
  else {
    $result = db_query("SELECT cid FROM {ad_clicks} WHERE aid = %d AND status = %d AND hostname = '%s'", $aid, CLICK_VALID, ip_address());
  }
  if (db_result($result)) {
    return CLICK_DUPLICATE;
  }
  return CLICK_VALID;
}