google AnalyticsのUA→GA4対応をしたのでメモ

その内しないとと思いつつ、永らく放置していたのですが一念発起して対応しました。これはその時のメモです。

なにせ殆どアクセスのないサイトがたくさんありまして、中々虚しい作業でした。

Analytics側の設定

これはそんなに大変ではありません。簡単です。
適当にググると、親切なページがたくさん見つかるので、適当に覗いて真似すればOKです。

サイト側の設定

Analytics側の設定が終われば、サイト側の対応をするのですが、これが物によってえらく大変でした。

ココログ

ココログは簡単です。
設定>基本情報>ブログのサブタイトル(キャッチフレーズ)
の箇所にIDを含むコードを貼り付ければ終わりです。

WordPress

これも簡単です。
テーマによってというか、入れているプラグインによっても微妙に違いますが、IDを貼り付ければOKです。

htmlファイルのサイト

問題はこれでした。海部郡山川町の本体のサイトです。
ここは大量のhtmlファイルで出来ていますので、その一つ一つにコードを設定する必要があります。これはちょっと気の遠くなる作業です。

ググっていたら、「タグマネージャー」なる物があり、それを使えばソースを直す必要がないと書いてあります。
「いったいどんな方法でそんなことを実現しているのだ?! 」
「いや、そんなこと出来るはずがない!!」
という状態だったのですが、少し調べてみたら、
「すべてのページのhtmlにタグマネージャのコードを貼り付けます」
って書いてあるではないですか!
つまり最初にタグマネージャのコードを入れておけば以後の修正は不要という事のようです。

ほんの一瞬でも期待自分が愚かでした。

対応方法(ファイル構成の設計)

大量のhtmlファイルがある一方、いつの日か、Analyticsのバージョンが変わることは容易に想像できますから、Analyticsのコードを直書きというのは論外です。

タグマネージャのコードを書くというのも考えましたが、タグマネージャを別のにするとなったら大変です。

ということで、それぞれのhtmlファイルに、「Analyticsのコードを書いたテキストファイル」を読み込んで展開するphpのプログラムをincludeする記述を追加することにしました。

[①htmlファイル(②を呼び出すだけ)]➡[②テキストファイル③を読んで展開]➡[③テキストファイル(Analyticsのコードを書いてある)]

htmlファイルから直接、Analyticsのコードを書いたテキストファイル(③)を読み込んでもいいのですが、将来別の事もやりたくなった時のために、間にワンクッション入れました。

phpを呼ぶけどファイルは*.htm、*.htmlのままにする

今回の対応によって、ほぼすべてのファイルが、ただのhtmlファイルからphpのファイルになります。本来なら〇〇〇.htm、〇〇〇.htmlを〇〇〇.phpにする必要があるのですが、膨大な内部リンクが参照していますから、ファイル名を〇〇〇.phpにする訳には行きません。
ファイル名は*htm、*.htmlのまま、PHPを呼べるようにします。

これは、.htaccessのファイルをいじります。( 既に*.htmlのファイルはそうしていたので、*htmも追加)

という感じです。

対応方法(移行)

さて、問題はこれです。なんだかんだ移行が一番メンドイ。そして、いつも悩まされるのは文字コード。

サイトの現況

海部郡山川町のサイトは、川原の温泉旅館のごとく、ぐちゃぐちゃです。

・700個余りのhtmlファイルがある
・拡張子がhtmlのファイルとhtmのファイルが混在
・SJISとUTF-8のファイルが混在
・ディレクトリ構造の中に、WordPressのディレクトリがあったりする
・本番ファイルの他に、バックアップのファイルやアーカイブのファイルが混在
・google Analyticsのコードが既に入っているファイルと何も入っていないファイルが混在

なんというか、フォルダ構成は己を映す鏡ですね。

手順

1.まず、PC上で、ディレクトリのトップから一式を作業フォルダにコピーする。
2.作業フォルダで、*.htm、*.html以外のファイルを片っ端に削除する。(コマンドプロンプトで、例えば、del /s *.jpg みたいなのをしまくる。)
3.アーカイブのフォルダやファイルは残すけど、バックアップのフォルダやファイルは削除
4.htmlファイルであっても、WordPress関係のものは変更対象から外れるので作業フォルダから削除

➡ここまでで、作業フォルダを修正対象ファイルとそれを含むフォルダだけにします。

5.Analyticsのコードを除去

6.phpのプログラム呼び出しステートメントを追加

7.アップロード

8.「.htaccess」の修正

大体こんな感じです。

既存のAnalyticsのコードを除去

これは、さくらエディタでのgrep置換です。
さくらエディタは複数行にまたがる置換が出来ないみたいなので、一度、\r\n→@@@@@に置換します。(@@@@@はファイル内に存在しない文字列なら何でも可)
次に、既存のAnalyticsのコードを除去(書き方に複数のパターンがあるので、grepで残っているか確認しながら複数回実施)

複数の置換ステップがあるので、いくつか実施したら物理的にファイルを避けておきます。
(ミスした時に置換手順の初めからやり直すのが面倒なため)

phpのプログラム呼び出しステートメントを追加

次に、Analyticsのコードを呼び出すphpのファイルを呼び出す行を<head>の後に追加します。
これもさくらエディタのGrep置換です。
( 例 <head>→<head>\r\n<php? include〇〇〇〇〇 ?>みたいな置換。

.htaccessの修正

アップロードした後、表示してみると、*.htmはいいが、*.htmlのファイルが機能しません。
以前、phpのファイルだけど、*htmのままにしたかった時に、
.htaccessに

<FilesMatch “.htm$”>
AddType application/x-httpd-php .htm
</FilesMatch>
php_value default_charset none

を追加していたので、下記を追記します

<FilesMatch “.html$”>
AddType application/x-httpd-php .htm
</FilesMatch>

これで表示されるようになりました。

発生した問題 - コメントの文字化け

これは大勢には影響しない事でした。表示されたページのソースを見ると、コメントが文字化けしているのです。化けているのは、PHPから呼び出したファイル(UTF-8)の中に書かれているコメントです。

これは、SJISで書かれたページで発生しました。
おそらく、SJISで書かれたページからUTF-8のPHPのファイルをincludeしたからでしょう。

コメントだけなので、別に放置でも良かったのですが、気持ち悪いので解決を目指したのですが沼にはまりました。

まず、この際なので、全てのファイルをUTF-8にしようと考えました。
コード変換のマクロ(さくらエディタ)を書いて、バッチファイルから実行します。

しかし、インプットファイルにはSJISもUTF-8もあります。
SJISは良かったのですが、元々UTF-8のファイルに「SJIS⇒UTF-8の変換」を掛けるとおかしなことになってしまいました。

ファイルの文字コードを検査して、SJISの時のみ変換すればいいのですが、そもそもさくらエディタでそれが出来るのか?

それを調べて、ダメなら他の方法を考えるという体力と気力はもはや残されていませんでした。

それで、UTF-8のファイルをいったん、SJISに換えて、その上でUTF-8に換えようと考えました。

さくらエディタのマクロには「自動判別⇒UTF-8」はないけど、「自動判別⇒SJIS」はあったのです。

いちど、全ファイルをSJISに変換した後、UTF-8に変換を掛けました。

よしこれで漸く終わったと思ったのですが、新たな問題が発覚しました。

UTF-8のファイルをSJISに変換することで、UTF-8のみでサポートされている文字が、下駄文字になってしまったのです。たとえば、『︽』とか『︾』とかですね。

ここで、精も魂も尽き果てました。

コメントの文字化け対応は断念です。

なので、SJISのページのソースを表示すると、いまでも文字化けしております。

文字コードはホント疲れます。

コメント

タイトルとURLをコピーしました