はてなブログの Google Analytics で /realtime_preview などを集計対象外にする
Google Analytics のデータを久しぶりに見たときに思いました。
「あれ? この /realtime_preview ってなに・・・?」
他のページの数倍の PV 数を作り出しているんですよ(笑)
これはおかしいな、と思って調べました。
そしてたどり着いたのがこちら : Google AnalyticsのPV数に自分のプレビューとリアルタイムプレビューをカウントさせない方法 - Pocket of time
1. /realtime_preview と /preview の正体
どうやら、記事を書いているときに右側に表示されるのが /realtime_preview にあたるようです。
文字を書くごとに自動更新される箇所なので、それは PV 数もどんどん増えていくわけです。
なお、私はあんまり使わないんですが、
編集画面の上部にある『プレビュー』を押したときに表示されるのは
/preview にアクセスしに行ってるそうなので、こちらも除外するのが良さそうです。
2. フィルタ機能を使って集計対象から除外する
このままでは、ブログを書いている日だけ PV 数が上昇してしまい、
PV数の遷移グラフが信用ならないものになってしまいます。
フィルタ設定をおこなうことで、集計結果を正常化させましょう。
Google Analytics のホーム画面 にアクセスしたら、
左下にある歯車マークが添えられた「管理」をクリックしてください。
いろいろ出てきますが、一番右のカラムから「フィルタ」を選んでください。
「+ フィルタを追加」ボタンを押します。
例えば以下のように入力します。
- フィルタ名は自分のわかりやすいようお好みで
- 「フィルタの種類」は「カスタム」
- 「フィルタ フィールド」は「リクエスト URI」
- 「フィルタ パターン」には正規表現が使えるので「^/(realtime_)?preview$」と入力。
これで /realtime_preview も /preview もフィルタの対象となります - 最後に下にある「このフィルタを確認する」でどう変化するのか確認しておくと安心です
- 問題なければ「保存」ボタンで設定を保存します
以上です。
3. 下書きプレビュー共有URLも除外対象にする
もうひとつ、はてなブログでは、下書き保存したあとに共有URLの取得ができますが、
それについても除外対象にしておきましょう。
個人ブログではあんまり使わない機能ですが、
会社のブログなどでは使うことの多い機能かと思います。
以下のような設定になりました。
2. で記載した設定とほぼ同じですが、
「フィルタ パターン」を「^/draft/.+」としているのが重要な違いです。
下書きプレビュー共有URLは /draft/<文字列> のような作りになっているので、それらを除外しているわけですね。
4. おわりに
一度作ったフィルタ設定は、仮に他のブログを作ったときでも、
「+ フィルタを追加」ボタンを押したあとの画面で「既存のフィルタを適用」を選択することにより、かんたんに再利用できます。
フィルタ設定は、設定した後のアクセスのみに反映されますから、
ブログを作ったらすぐにフィルタ設定を入れて、正確な Google Analytics データを最初から取得できるようにしておくことがおすすめです!
Unity Hub でインストールした Unity の C# Script テンプレートを変更
以前の Unity では以下の記事にあるように、 /Applications/Unity/Editor/Data/Resources/ScriptTemplates
以下のファイルを編集することで、
C# Script テンプレートをデフォルトから変更することが出来ていました。
しかし、 Unity Hub で Unity をインストールした場合には、
そのディレクトリは存在しないし、仮にそのディレクトリにファイルを作成したところで Unity は影響を受けません。
では、 Unity Hub でインストールした Unity の C# Script テンプレートがどこにあるのか?
探してみました。
cd /Applications/Unity find . -name *Script.cs.txt ./Hub/Editor/2019.1.3f1/Unity.app/Contents/Resources/ScriptTemplates/86-C# Script-NewSubStateMachineBehaviourScript.cs.txt ./Hub/Editor/2019.1.3f1/Unity.app/Contents/Resources/ScriptTemplates/81-C# Script-NewBehaviourScript.cs.txt ./Hub/Editor/2019.1.3f1/Unity.app/Contents/Resources/ScriptTemplates/83-C# Script-NewTestScript.cs.txt ./Hub/Editor/2019.1.3f1/Unity.app/Contents/Resources/ScriptTemplates/86-C# Script-NewStateMachineBehaviourScript.cs.txt
というわけで、目的のファイルは
/Applications/Unity/Hub/Editor/2019.1.3f1/Unity.app/Contents/Resources/ScriptTemplates/81-C# Script-NewBehaviourScript.cs.txt
にありました。
(※「2019.1.3f1」の部分は、インストールした Unity のバージョンによって変わります)
いちおう変更前に、念のためバックアップをとっておきます。
cd /Applications/Unity/Hub/Editor/2019.1.3f1/Unity.app/Contents/Resources/ScriptTemplates cp "81-C# Script-NewBehaviourScript.cs.txt" "81-C# Script-NewBehaviourScript.cs.txt.bak" ls 81-C# Script-NewBehaviourScript.cs.txt 86-C# Script-NewSubStateMachineBehaviourScript.cs.txt 81-C# Script-NewBehaviourScript.cs.txt.bak 87-Playables__Playable Behaviour C# Script-NewPlayableBehaviour.cs.txt 83-C# Script-NewTestScript.cs.txt 88-Playables__Playable Asset C# Script -NewPlayableAsset.cs.txt 83-Shader__Standard Surface Shader-NewSurfaceShader.shader.txt 90-Shader__Compute Shader-NewComputeShader.compute.txt 84-Shader__Unlit Shader-NewUnlitShader.shader.txt 91-Assembly Definition-NewAssembly.asmdef.txt 85-Shader__Image Effect Shader-NewImageEffectShader.shader.txt 92-Assembly Definition-NewEditModeTestAssembly.asmdef.txt 86-C# Script-NewStateMachineBehaviourScript.cs.txt 92-Assembly Definition-NewTestAssembly.asmdef.txt
81-C# Script-NewBehaviourScript.cs.txt
をこのように変更してみました。
using UnityEngine; namespace Hatone { public class #SCRIPTNAME# : MonoBehaviour { #region Unity Methods void Start() { } void Update() { } #endregion } }
なお、個人的な好みで {
が始まる前の改行を無くしていますが、
Microsoft の C# コーディング規約 としては
{
の前に改行を入れることを要求していますので、上のは一般的な書き方ではないことにご注意ください。
デフォルトのテンプレートに namespace を毎回付けるのが面倒だったり、
なにげに文字エンコーディングが UTF-8 with BOM であることも気になっていましたので(BOM無しの UTF-8 にしたい)、
テンプレートを変えることで作業効率がアップできそうだと思います!
デフォルトのテンプレートが肌に合わない方はぜひお試しください。
macOS の Unity_lic.ulf の場所
Unity のライセンスファイルの場所についてメモ。
Linux は $HOME/.local/share/unity3d/Unity/Unity_lic.ulf
にあるが、
macOS は /Library/Application\ Support/Unity/Unity_lic.ulf
にある。
ついでに暗号化と復号についてもメモ。
export UNITY_LICENSE_ENCODE_KEY="secret_keyword" # 暗号化の例 openssl aes-256-cbc -e -in Unity_lic.ulf -out Unity_lic.ulf.enc -k $UNITY_LICENSE_ENCODE_KEY # 復号の例(復号しつつ Linux の適切なディレクトリに置く) openssl aes-256-cbc -md md5 -d -in Unity_lic.ulf.enc -out $HOME/.local/share/unity3d/Unity/Unity_lic.ulf -k $UNITY_LICENSE_ENCODE_KEY
参考
- Gabriel Le Breton / unity3d-gitlab-ci-example · GitLab
- CircleCIでUnityのTest&Buildを雰囲気理解で走らせた - Qiita
はぁー、今日は Unity の Android ビルドを CircleCI で回したいなぁって挑戦してたんですけど、
1日かけても全く出来ませんでした。
いちおう Unity の Docker イメージ はあるんですけど、
Android SDK などは内包されていないので、このままだと Android ビルドに使えず……。
いろいろ試してはいたんですが普通に疲れてしまいました。難しい……