Google Analyticsでダウンロード数を計測したい
PDFをダウンロードできるようにするなら,どうせなら,そのダウンロード数もGoogle Analyticsでトラッキングできるようにしたいと思うのが人というもの.
こちらのサイトを参考にさせていただきました. > GoogleアナリティクスでPDFファイルのダウンロード数をカウントする方法 | weberNote
やり方は簡単で,
<a href="http://example.com/download/hoge.pdf" onClick="_gaq.push(['_trackEvent','download','click','hoge.pdf']);">PDFをダウンロード</a>
こうするだけ.
これだけで,Google Analyticsの「コンテンツ > イベント > サマリー」で確認することができる.
ちなみに,「downlad」がイベントカテゴリで,「click」がイベントアクションで,「hoge.pdf」がイベントラベルで,各々,わかりやすい名前を付ければいいと思う.
本番環境のPyramidでPDFをダウンロードできるようにしたい
Pyramidのプロジェクトで,静的ファイルとしてPDFを置いておき,aタグでリンクを張ることで,そのPDFをダウンロードできるようにしたい.
Pyramidプロジェクトを作成したときに,静的ファイル用のstaticディレクトリができるので,そこにfileディレクトリを作って,その中にPDFを置いた.
で,そのPDFのURLをaタグのhref要素に設定した.
ローカルでPyramidを実行した場合は,問題無くPDFをダウンロード出来た.
しかし,本番環境にあげてみると,404が返ってくる.
これには詰まった.
キャッシュのせいじゃないかとか,URLが間違ってるんじゃないかとか,パーミッションが悪いんじゃないかとか,aタグを使うのが間違ってるんじゃないかとか,かなり悩んだ.
検索しても全然情報が無い.
で,頑張って探してたら,MANIFEST.inが怪しいんじゃないかと.
include *.txt *.ini *.cfg *.rst recursive-include dicemaker *.ico *.png *.css *.gif *.jpg *.pt *.txt *.mak *.mako *.js *.html *.xml
MANIFEST.inの中身はこうなっている.
マニュアルを見てみると,pythonファイル以外についてはここに記述する必要があるっぽい.
というわけで,*.pdfを追加したら,無事に本番環境でもPDFがダウンロード出来た!
include *.txt *.ini *.cfg *.rst recursive-include dicemaker *.ico *.png *.css *.gif *.jpg *.pt *.txt *.mak *.mako *.js *.html *.xml *.pdf
もっと勉強します.はい.
やっぱり秋刀魚の塩焼きは美味しいと思う
今週のお題「秋の味覚」
秋の味覚と言ったら,やっぱり秋刀魚だと思う.
で,秋刀魚と言ったら,塩焼きがいいかなと思う.
学食でも秋刀魚は食べることができて,秋刀魚の南蛮漬けと秋刀魚の塩焼きがある.
168円くらいかな.
安いし,美味しいし,健康にいいし.
秋刀魚の塩焼き食べたい.
SQLiteでテーブルが存在するか確認したい
テーブルとか管理するテーブルとかがありそうな気はしてたし,あった気がしてた.
これでいいのね.
select count(*) from sqlite_master where type='table' and name='<テーブル名>';
Bing Search API を使いたいと思ったのでPythonでラッパーを作ってみた
Yahoo API が使えないので,Bing Search APIを使いたい.
5000トランザクション/月までなら無料で使えるのは素晴らしい.
登録
Bing Search APIのページに行き,右下の5000トランザクション/月のサインアップをクリック.
Microsoft アカウントがあるならそれでサインインし,持っていないなら登録する.
「購入手続き」とか出るが,怖がらずに進める.
Python Imaging Library (PIL)でpng画像を合成しても透過のままであってほしい
二つの画像を用意して,合成したときに,透過はそのままにしたい.
import Image import ImageDraw img1 = Image.new("RGB", (500, 500), (255, 0, 0)) img2 = Image.new("RGBA", (500, 500), (0, 0, 0, 0)) draw2 = ImageDraw.Draw(img2) draw2.ellipse(((100, 100), (400, 400)), (0, 255, 255), (0, 255, 255)) img1.paste(img2, (0, 0)) img1.save("test.png")続きを読む