パンプキンスパイスラテ

IT系のことが多めの日記帳です

モバイル用Googleアドセンス設置でてこずったので、今後の為にメモっとく

追記:あれ?見直して見るとなんか変かも。あとで直す

コンテンツ用アドセンスは簡単で、javascriptソースを貼り付けるだけでいいんだけど、モバイル用アドセンスSmartyのテンプレートファイルに表示させたい場合はちょっと面倒(でもないけど、分からなかったので)。
まぁ、ソースを貼るだけっちゃ貼るだけなんだけど。

まずはユーザーエージェントから「pc」か「mobile」かを判断

$agent = $_SERVER['HTTP_USER_AGENT'];
if(preg_match("/^DoCoMo/i", $agent) or preg_match("/^(J\-PHONE|Vodafone|MOT\-[CV]|SoftBank)/i", $agent) or preg_match("/^KDDI\-/i", $agent) || preg_match("/UP\.Browser/i", $agent)){
   $userAgent = 'mobile';
}else{
   $userAgent = 'pc';
}

変数 agent にその情報を格納。
その後、mobileだったら下記を通す。

if($userAgent == 'mobile'){

googleに貼り付けなさいって言われたPHPソース

$google_ad_handle = @fopen(google_get_ad_url(), 'r');
if ($google_ad_handle) {
  while (!feof($google_ad_handle)) {
    //元はここで広告表示してるけど、今回テンプレートを使うので、
    //変数にセット。
    //echo fread($google_ad_handle, 8192);
    $googleAdsenseMobile = fread($google_ad_handle, 8192);
    $o_smarty->assign("googleAdsenseMobile",$googleAdsenseMobile);
  }
  fclose($google_ad_handle);
}

}

これらは別ファイルにしてインクルードすると良い。

smarty

$o_smarty->display("index.html");

必ず、これの前に下記を記載。

$o_smarty->assign("userAgent",$userAgent);

Smartyテンプレート

{if $userAgent == "pc"}
{include file="pc版ファイル"}
{else}
{$googleAdsenseMobile}
{/if}

これでOK。