フォームIDのログ表示をもう少しデキる子にしよう

Category : カスタマイズ < a-blog cms

Tags : a-blogcms

フォームIDのログ表示が損してた

a-blog cmsのフォームは、投稿されたデータをDBに保存しているので、後からCSV形式としてダウンロードして集計等に再利用できます。そんな投稿データですが、管理ページ上からもログとして確認することができます。


表示できるものは必要十分に備えているのですが、ちょっと大振りな感じすぎて肝心の投稿データの中身は読みづらい感じです。見栄えで損している感じですね。見せるものはあるのに、もったいないです。


じゃあ変えてみよう

/themes/system/admin/form/log.htmlを編集します。40〜57行目のtable.adminTableを下のコードに貼り替えてみます。アップデート時に上書きされないようにする場合は、件のlog.htmlを、使用中のテーマ/admin/form/log.htmlとしてコピーして編集します。

<table class="adminTable">
    <thead>
        <tr>
            <th>日時</th>
            <th>宛先</th>
            <th>件名 / 本文</th>
        </tr>
    </thead>
    <tbody><!-- BEGIN log:loop -->
        <tr>
            <td nowrap="nowrap">{datetime}[datetime(Y/m/d H:i)]</td>
            <td><p>宛先: <a href="mailto:{mail_to}[raw]">{mail_to}</a></p></td>
            <td>
                <p>件名: {mail_subject} ( <a href="#" class="{datetime}[datetime(YmdHis)]-fade-head">本文を表示</a> )</p>
                <p class="{datetime}[datetime(YmdHis)]-fade-body" style="border-top:1px solid silver;">本文:<br />{mail_body}[nl2br]</p>
            </td>
        </tr>
    </tbody><!-- END log:loop -->
</table>

なんということでしょう


劇的ビフォーアフターとまではいきませんが、ちょっとはソレっぽい感じになったのではないでしょうか。宛先にメールアドレスのmailtoリンクも貼ってみました。


送信時のテンプレートに、To[]でお問い合わせ主のメアドを仕込んで自動応答メール風にしている場合は、このフォームのログ画面からメーラーを起動して、お問い合わせ主に返信を書くこともできます。

「一般メール」をフォームからの送信者への自動応答メールに、「管理者宛メール」をクライアント(orサイト管理者)への送信内容の通知、というように設定しておけば、クライアントに対しては「ここでお問い合わせを確認して、送信者に返信できます」とか言うこともできるかも。

モノは言いようというヤツですね。もっとキレイに飾ってあげれば、もっとモノを言えるかもしれません。



携帯向けGoogle Analyticsの計測異常(au, softbank)

Category : ウェブ開発

Tags : Google Analytics

計測異常

今回は以下のエントリーのシリーズ編です。

そいで、前エントリーあたりで言及していた計測異常について。

au
直帰率が100%・新規セッションも100%・ページビューは1
softbank
見あたらない。(not set)とかいうのがソレっぽい

なーんかauとsoftbank取れてないなー。おかしいなーと思っていたら只の間違い探しでした。

ga.phpがお茶目すぎた

端末情報ちゃんと食ってるよねぇ〜?と、ga.phpの140-149行目を見てました。

    $guidHeader = $_SERVER["HTTP_X_DCMGUID"];
    if (empty($guidHeader)) {
      $guidHeader = $SERVER["HTTP_X_UP_SUBNO"]; // えっ?
    }
    if (empty($guidHeader)) {
      $guidHeader = $SERVER["HTTP_X_JPHONE_UID"]; // えっ?
    }
    if (empty($guidHeader)) {
      $guidHeader = $SERVER["HTTP_X_EM_UID"]; // えっ?
    }

ん?

$SERVERってなんやねん。

    $guidHeader = $_SERVER["HTTP_X_DCMGUID"];
    if (empty($guidHeader)) {
      $guidHeader = $_SERVER["HTTP_X_UP_SUBNO"];
    }
    if (empty($guidHeader)) {
      $guidHeader = $_SERVER["HTTP_X_JPHONE_UID"];
    }
    if (empty($guidHeader)) {
      $guidHeader = $_SERVER["HTTP_X_EM_UID"];
    }

こうでしょ!

ってことで、たぶん解決。

どうしたGoogle! 大丈夫かGoogle!

ga.phpの140-149行目における、$SERVERになっているところを、$_SERVERに修正してください。(アンダースコアが足りてない)

これでたぶんdocomo以外の計測も正常に行われるようになるんじゃないでしょーか。きっと。おそらく。清々しいケアレスミスだけど、それが大公開されっぱなしって、Google先生ほどの大家になると誰も突っ込んでくれないのかな...。

うまくいったよー、っていう人とかいたら教えてくださいまし。



携帯電話向けGAモジュール for a-blog cms

Category : a-blog cms

Tags : a-blogcms Google Analytics module

携帯向けGoogle Analyticsとa-blog cms

Google Analytics全般とa-blog cmsの相性の良さは後日言及するとして、今回は携帯対応ということでa-blog cmsのワンソースマルチユースの特徴が特に生きてきます。

同じURLでパソコンにも携帯にもiPhoneにもコンテンツを出力できるので、まとめてアクセス解析したときにも端末ごとの分析が容易になります。たとえば「PCで見られないこのコンテンツはiPhoneで多く見られてる」とか「携帯のときのトラフィックが特定エリアだけ高い」とかですね。

もちろん、絶対数の埋め合わせとかの調整は必要ですし、PCとモバイル用サイトが同じような構成とも限らないので、単純比較というよりも傾向のあぶり出しになりそうですが。サイトによっては興味深いデータが得られるのではないでしょうか。

今回はa-blog cmsでGoogle Analyticsの携帯電話向けトラッキングに対応するための、GETモジュール対応手順をまとめてみます。

GAの携帯電話向けサイト用PHPコードを出すまで



まずはここから。以下に手順を示します。

  1. Google Analyticsのプロファイルを「編集」をクリック
  2. 画面右上の「ステータス確認」をクリック
  3. トラッキングコードの追加手順の「アドバンス」タブを選択
  4. "(1) 何をトラッキングしますか?"の「携帯電話向けのサイト」を選択

以上で、"(2) 携帯電話向けのサイトにコードを貼り付けます" にPHPのコードが表示されます。スクリーンショットで示している所の文字列を控えてください。これが、携帯電話向けのトラッキングアカウントです。コードの他の部分はモジュールのサンプルコードに書いてあるので必要ありません。(今後Google側で変更があれば、サンプルコードも変更する必要がありますが、そのときはそのときで

ga.phpをダウンロード

前項からの続きで、"(3) ファイルをルート ディレクトリにコピーします" から、ga.phpをダウンロードします。これをルートディレクトリに置くわけですが、a-blog cmsの設置先、index.phpと同階層のディレクトリにga.phpをアップロードします

トラッキングアカウントをコードに組み込む

下記のサンプルコードにトラッキングアカウントを埋め込み、/php/ACMS/GET/AnalyticsMobile.phpとしてファイルを作成します。これが後でテンプレートに記述するGETモジュールになります。

<?php
require_once ACMS_LIB_DIR.'GET.php';

class ACMS_GET_AnalyticsMobile extends ACMS_GET
{
    function get()
    {
        $Tpl    = new Template($this->tpl, new ACMS_Corrector());

        // 下記の " MO-0000000-0 " の所を前項で控えた文字列に書き換えます
        $GA_ACCOUNT = 'MO-0000000-0';
        $GA_PIXEL   = 'ga.php';

        $url    = "";
        $url   .= $GA_PIXEL . "?";
        $url   .= "utmac=" . $GA_ACCOUNT;
        $url   .= "&utmn=" . rand(0, 0x7fffffff);

        $refer  = REFERER;
        $query  = $_SERVER["QUERY_STRING"];
        $path   = $_SERVER["REQUEST_URI"];

        if ( empty($refer) )
        {
        $refer  = "-";
        }

        $url   .= "&utmr=" . urlencode($refer);

        if ( !empty($path) )
        {
        $url   .= "&utmp=" . urlencode($path);
        }

        $url   .= "&guid=ON";
        $url    =  str_replace("&", "&amp;", $url);

        $Tpl->add(null, array('tracksrc' => $url));

        return $Tpl->get();
    }
}
?>

テンプレートにモジュールを書く

先ほど作成した AnalyticsMobileモジュールを、携帯向けのテンプレートに記述してください。大まかには下記のサンプルコードをコピー&ペーストするだけで大丈夫なはずです。場所はbody要素の閉じタグの直前です

(前略)
<!-- BEGIN_MODULE AnalyticsMobile -->
<img src="%{HTTP_ROOT}{tracksrc}[raw]" height="1" width="1" />
<!-- END_MODULE AnalyticsMobile -->
</body>
</html>

これでOK

あとは適当な日を置いて、Google Analyticsからレポートを確認しましょう。DoCoMoとかが解析結果にあれば大体成功です。

携帯かどうかというのは、ユーザーのOSの情報として代替的に示されるので、ちゃんと絞り込まないと携帯の情報は取得できません。カスタムレポートやアドバンスセグメントを併用するのが良い感じですが、とっかかりとしては下記の記事のカスタムレポートをそのまま使うのが良さそうです。

携帯用カスタムレポート for Google Analytics | カグア!Google Analytics 活用塾:事例や使い方

a-blog cms v1.3.0では、モバイルトラッキング用のアカウントと、ga.phpのパスを設定項目として、標準実装に滑りこませてしまおうかなーと勝手に検討中です。(他に影響があるような機能でもないので割と気軽)

それまではひとまず、こちらのモジュールを使っていただければと思います!ご質問なりトラブルがあれば、@ahomuまでどうぞ☆