コンバージョンをフォトフレームにお届け!
以前、GoogleアナリティクスAPIから数値を取ってきて自動でメールさせるスクリプトを公開しましたが、今回はそれを更に強化して、フォトフレームに届くようにしました。
この記事の目次
環境や必要となるライブラリ
◆ライブラリ
・class.phpmailer.php (メール送信)
・googleanalytics.class.php (GoogleアナリティクスAPI)
※参考 GAPI – Google Analytics API PHP Interface
・GD (PHPによる画像修正)
◆環境
・PHP
・CRON (自動実行)
・フォント (画像合成時に変換される)
※宜しければカグア!作成のTA微妙体(プロポーショナル)をご利用下さい。GPLで公開中です。
◆画像サイズ
・800×480
・画像は複数でもいいでしょうし、固定で決めるのも良いかと思います。改造すればヤフーの画像検索などで持ってこれるとも思います。
スクリプト
ソースはこれだけです。MITライセンスとしますので、どうぞお使い下さい。応用すればHTMLメールにしたり、Yahoo!画像検索APIと絡めれば好きなアーチスト画像が毎日届くなども出来たりすると思います。
// 日付生成
$today = date(“Ymd”);
$ff1 = $today .”.jpg”;
$today = date(‘Y-m-d’);
//画像名は任意
$img = ImageCreateFromJPEG(‘./画像ファイル名’);
//ライブラリ読込
include(‘googleanalytics.class.php’);
try {
//アカウント
$ga = new GoogleAnalytics(‘ログインID’,’パスワード’);
$ga->setProfile(‘ga:プロファイル番号’);
//日付
$gatoday = mktime(0, 0, 0, date(“m”), date(“d”)-1, date(“Y”));
$five = mktime(0, 0, 0, date(“m”), date(“d”)-3, date(“Y”));
$g1 = date(“Y-m-d”, $gatoday);
$g2 = date(“Y-m-d”, $five);
$ga->setDateRange($g2,$g1);
//Google Analytics 読込(a)
$report = $ga->getReport(
array(‘dimensions’=>urlencode(‘ga:date’),
‘metrics’=>urlencode(‘ga:goal1Completions’),
‘sort’=>’ga:date’
)
);
//PVなど数値取得
$i = 0;
$j = 0;
$games = “”;
foreach( $report as $date => $dimensions ){
$dd[$i] = $date;
$i++;
foreach( $dimensions as $metrics){
$mm[$j] = $metrics;
$j++;
}
}
//メッセージ表示
$games1 = “CVだけど・・、\n昨日は”.$mm[2].”件!\n”;
$games2 = “一昨日は”.$mm[1].”件\n”;
$games3 = “その前は”.$mm[0].”件\n”;
$games = $games1.$games2.$games3;
} catch (Exception $e) {
print ‘Error: ‘ . $e->getMessage();
}
// 必要に応じてUTF-8へ変換(環境依存)
$tt = $games;
$text = mb_convert_encoding($tt, ‘EUC-JP’, ‘auto’);
// 文字を黒で表示
$black = ImageColorAllocate($img, 0x00, 0x00, 0x00);
ImageTTFText($img, 58, 0, 50, 120,$black, ‘./tabimyou_add_p.TTF’, $today);
ImageTTFText($img, 36, 0, 50, 210,$black, ‘./tabimyou_add_p.TTF’, $text);
// 画像を $ff1 として保存します
imagejpeg($img,$ff1);
// メモリを開放します
imagedestroy($img);
//ライブラリ読み込み
require(“./PHPMailer/class.phpmailer.php”);
//言語設定、内部エンコーディングを指定する
mb_language(“japanese”);
mb_internal_encoding(“EUC-JP”);
//日本語添付メールを送る
$to = “フォトフレームのメール”; //宛先
$subject = $today.”タイトル”; //題名
$body = “本文”.$ff1; //本文
$from = “差出人のメール”; //差出人
$fromname = “差出人名”; //差し出し人名
$attachfile = $ff1 ; //添付ファイルパス
$mail = new PHPMailer();
$mail->CharSet = “iso-2022-jp”;
$mail->Encoding = “7bit”;
$mail->AddAddress($to);
$mail->From = $from;
$mail->FromName = mb_encode_mimeheader(mb_convert_encoding($fromname,”JIS”,”EUC-JP”));
$mail->Subject = mb_encode_mimeheader(mb_convert_encoding($subject,”JIS”,”EUC-JP”));
$mail->Body = mb_convert_encoding($body,”JIS”,”EUC-JP”);
//添付ファイル追加
$mail->AddAttachment($attachfile);
if (!$mail->Send()){
echo(“メールが送信できませんでした。エラー:”.$mail->ErrorInfo);
}
?>
参考URL
Geekなぺーじ:UstreamのテロップをPHP GDで自動生成する方法
PHPで日本語メールを送る – 応用編 (添付ファイル、HTMLメール) – EC studio 技術ブログ
PHPMailer – PHP言語でメール送信ライブラリ – オープンソースコラム
PHP: GD – Manual
Data Export API – 一般的なクエリ – Google アナリティクス – Google Code
PHPMailer を使ってのメール送信の文字化けについて – PHPプロ!Q&A掲示板
HTMLメールで画像を埋め込むphpmailerのにいただきました!正しい方法?
Yahoo!デベロッパーネットワーク – 検索 – 画像検索
毎日コミュニケーションズ
売り上げランキング: 1587