2010-09-14 10 views
5

Ho scaricato l'ultima versione di OpenX 2.8.6 e sto tentando di impostare il targeting geografico, ma non funziona. Ho abilitato geoTargeting nel pannello di amministrazione (Configurazione -> Impostazioni globali -> Tipo di modulo di targeting geografico -> Mind di OpenX Max (file flat)). Ho letto nella documentazione di OpenX che non è necessario inserire alcun percorso nel database nelle impostazioni del plugin, quindi ho provato senza. Ho impostato le opzioni di consegna del banner di prova da mostrare solo in Serbia. Sto aggiornando la pagina che mostra i banner, ma questo banner non mostra mai.OpenX e problema di targeting geografico

Ho pensato che forse il problema è nel vecchio database e che il mio indirizzo IP non è riconosciuto, quindi ho scaricato l'ultimo database (file .dat) da MaxMind (versione lite del database Paese) e ho inserito il percorso nelle impostazioni del plugin, ma ancora non funziona.

Qualcuno può aiutarmi a risolvere questo problema?

risposta

5

Ho avuto lo stesso problema. Sembra che OpenX dalla versione 2.8.x stia utilizzando il proprio lettore di database GeoIP basato su php (ad esempio l'opzione "flatfile" nelle impostazioni) invece di utilizzare un modulo geoip - che non sembra funzionare con GeoIP.dat attuale

per risolvere questo problema ho fatto la seguente:

1) aperto plugins/targeting geografico/oxMaxMindGeoIP/oxMaxMindGeoIP.delivery.php

2) ricerca per:

if (isset($GLOBALS['_MAX']['GEO_IP'])) { 
     $ip = $GLOBALS['_MAX']['GEO_IP']; 
     OX_Delivery_logMessage('['.$ip.'] : ip from cookie. Plugin_geoTargeting_oxMaxMindGeoIP_oxMaxMindGeoIP_Delivery_getGeoInfo', 7); 
    } else { 
     $ip = $_SERVER['REMOTE_ADDR']; 
     OX_Delivery_logMessage('['.$ip.'] : ip from remote addr. Plugin_geoTargeting_oxMaxMindGeoIP_oxMaxMindGeoIP_Delivery_getGeoInfo', 7); 
    } 
    $aGeoConf = (is_array($conf['oxMaxMindGeoIP'])) ? $conf['oxMaxMindGeoIP'] : array(); 

3) Inserire qui di seguito:

$ret = array(
    "country_code" => $_SERVER['GEOIP_COUNTRY_CODE'] 
); 
return $ret; 

4) salvare & fatto

Troverete possibili valori di ritorno nell'intestazione della funzione:

* @return array An array(
*     'country_code', 
*     'region', 
*     'city', 
*     'postal_code', 
*     'latitude', 
*     'longitude', 
*     'dma_code', 
*     'area_code', 
*     'organisation', 
*     'isp', 
*     'netspeed' 
*    ); 
*/ 

letto il tuo modulo-doc (di mod_geoip) come ottenere i dati geografici dall'IP corrente (o dato). Nel mio esempio sopra sto usando lighttpd 1.5 + mod_geoip (modulo non ufficiale). Ma questa soluzione dovrebbe funzionare anche con apache_note/pecl-geoip/mod_geoip env ...

Oh e btw. è ovviamente molto più veloce affidandosi a mod_geoip che memorizza il db nella memoria, che fa tutto via php su ogni richiesta (come openx lo fa).

Problemi correlati