Adsense Mobile sur 1 site WAP SANS inclure le script Adsense

Consultez la formation au REFERENCEMENT naturel Google de WebRankInfo / Ranking Metrics

Sébastien Night
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 21
Inscription: 6 Avr 2007

Adsense Mobile sur 1 site WAP SANS inclure le script Adsense

Message le Jeu Sep 20, 2007 2:03

Je démarre mon expérience dès cette semaine (semaine du lancement d'Adsense for Mobiles en France) en essayant de trouver une alternative à l'inclusion du script PHP de Google dans mon site*.

Le script PHP qu'Adsense nous demande d'inclure dans nos sites est le suivant :

Code: Tout sélectionner
<?php

$GLOBALS['google']['ad_type']='text';
$GLOBALS['google']['channel']='3765672551';
$GLOBALS['google']['client']='pub-6864074922661047';
$GLOBALS['google']['color_border']='555555';
$GLOBALS['google']['color_bg']='FFFFFF';
$GLOBALS['google']['color_link']='0000CC';
$GLOBALS['google']['color_text']='000000';
$GLOBALS['google']['color_url']='008000';
$GLOBALS['google']['format']='mobile_single';
$GLOBALS['google']['https']=$_SERVER['HTTPS'];
$GLOBALS['google']['host']=$_SERVER['HTTP_HOST'];
$GLOBALS['google']['ip']=$_SERVER['REMOTE_ADDR'];
$GLOBALS['google']['markup']='wml';
$GLOBALS['google']['output']='wml';
$GLOBALS['google']['ref']=$_SERVER['HTTP_REFERER'];
$GLOBALS['google']['url']=$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$GLOBALS['google']['useragent']=$_SERVER['HTTP_USER_AGENT'];
require('http://pagead2.googlesyndication.com/pagead/show_ads.php');

?>


Un coup d'oeil à la page show_ads nous permet d'en lire le code source :

Code: Tout sélectionner
<?php

/**
* Copyright (C) 2007 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     @license http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

$google_dt = time();

function google_append_url(&$url, $param, $value) {
  $url .= "&" . $param . "=" . urlencode($value);
}

function google_append_globals(&$url, $param) {
  google_append_url($url, $param, $GLOBALS["google"][$param]);
}

function google_append_color(&$url, $param) {
  global $google_dt;

  $color_array = split(",", $GLOBALS["google"][$param]);
  google_append_url($url, $param,
                    $color_array[$google_dt % sizeof($color_array)]);
}

function google_get_ad_url() {
  $google_ad_url = "http://pagead2.googlesyndication.com/pagead/ads?";
  $google_scheme = ($GLOBALS["google"]["https"] == "on")
      ? "https://" : "http://";
  foreach ($GLOBALS["google"] as $param => $value) {
    if ($param == "client") {
      google_append_url($google_ad_url, $param,
                        "ca-mb-" . $GLOBALS["google"][$param]);
    } else if (strpos($param, "color_") === 0) {
      google_append_color($google_ad_url, $param);
    } else if ((strpos($param, "host") === 0)
               || (strpos($param, "url") === 0)) {
      google_append_url($google_ad_url, $param,
                        $google_scheme . $GLOBALS["google"][$param]);
    } else {
      google_append_globals($google_ad_url, $param);
    }
  }
  google_append_url($google_ad_url, "dt",
             round(1000 * array_sum(explode(" ", microtime()))));

  return $google_ad_url;
}

$google_ad_handle = fopen(google_get_ad_url(), "r");
while (!feof($google_ad_handle)) {
  echo fread($google_ad_handle, 8192);
}
fclose($google_ad_handle);

?>


Pourquoi ne pas copier ce fichier tel quel en local ?
Je ne vois pas d'indication contraire à cela dans les conditions d'utilisation que j'ai signées AVANT l'existence d'Adsense Mobile.

Je vais donc vérifier en parallèle de mon expérience, en demandant par mail à l'équipe Google. (si quelqu'un a l'adresse email en question...?)

*Car les risques de XSS - cross site scripting - sont trop élevés : il est trop "facile" de faire croire à un ordinateur (donc à un serveur web) que google.com est à l'adresse xx.yyy.xx.zz (qui est l'IP de l'ordinateur du pirate, comme vous avez deviné)


Serious
WRInaute passionné
WRInaute passionné
 
Messages: 2438
Inscription: 21 Nov 2005

Message le Jeu Sep 20, 2007 9:13

La solution utilisee par les autres regies est d'autoriser la mise en cache pour 1h ou 24h. Si tu fais une simple copie et que Google modifie le script, les majs ne seront pas prises en compte. Ca n'empeche pas l'attaque.

Une solution est de controler le md5 du script pour voir s'il a change. Si oui, ne rien faire et envoyer un mail pour validation. Comme ca, plus de pub pendant qqs heures mais au moins on llimite les risques.

Dans tous les cas, tu auras toujours une connexion car Google veut connaitre l'IP, le nombre d'impressions, etc. Mais au moins on evite l'execution de script externe.

John Smith
WRInaute impliqué
WRInaute impliqué
 
Messages: 526
Inscription: 4 Avr 2007

Message le Jeu Sep 20, 2007 17:25

Bonsoir,

J'ai installé Adsense mobile sur la partie mobile de mon site et une chose m'échappe. En local, j'ai bien la pub qui s'affiche mais sur mon site, je n'ai rien ! Est-ce que c'est normal ?

Sébastien Night
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 21
Inscription: 6 Avr 2007

Message le Ven Sep 21, 2007 11:25

Serious a écrit:Une solution est de controler le md5 du script pour voir s'il a change. Si oui, ne rien faire et envoyer un mail pour validation. Comme ca, plus de pub pendant qqs heures mais au moins on llimite les risques.

Wait... Comment je calcule le md5 d'un script externe ? Ta solution est effectivement très intéressante.


Serious
WRInaute passionné
WRInaute passionné
 
Messages: 2438
Inscription: 21 Nov 2005

Message le Ven Sep 21, 2007 11:55

En gros:
Code: Tout sélectionner
$script=@file_get_contents('http://google...');
if(md5($script)=='637bca36b40282103c7ecf6ed88f7186')
  eval($script);
else
  mail();


Apres, il y aurait plein de choses a ameliorer (cache, timeout reseau, externaliser les md5 valides pour eviter de modifier le source a chaque fois, ...).


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation REFERENCEMENT naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité