Google Analytics(GA4) の導入から特定IPアドレスの除外まで【Rails】

## **はじめに**

はじめまして、kzkio（[@kzkio_0114](https://x.com/kzkio_0114)）と申します。

まず、初学者の記事に足を運んでいただきありがとうございます。

今回は、アウトプットを兼ねて、**Google Analytics(GA4) の導入方法と**特定IPアドレスの除外を記事にしました。

特定IPアドレスの除外を試みた際、公式ドキュメントを参考にしながら設定を進めましたが、上手くいかず時間がかかりました。そのため、**初学者でもスムーズに設定できるよう、シンプルでスクリーンショットを取り入れた手順**を自分なりにわかりやすくまとめることにしました。

:::note warn
留意点：
記事作成用に、アナリティクス アカウントとアプリを作成しているため、できる限り伏せ字を減らし、わかりやすさを重視しています。ただし、地域やIPアドレスなどの情報はセキュリティ上の理由で非公開としていますので、ご了承お願いします！
:::

### **用意するもの**

- 使用するアプリ（今回はRailsで作成したアプリを使用）
- Googleアカウント

### **使用スタック**

- **Rails** 7.2.1
- **Ruby** 3.3.1

---

## **Google Analyticsとは**

Google アナリティクスは、Googleが提供する無料のウェブ解析サービスで、ウェブサイトのトラフィック分析やユーザー行動の把握が可能です。具体的には、以下のようなデータの収集と分析が行えます。

### **主な機能と用途**

- **ユーザー分析**：訪問者数、新規/リピーター、地域、言語、デバイスなどの情報を提供
- **トラフィック源分析**：どの経路（検索エンジン、リファラル、ソーシャルメディアなど）を通じてサイトに来たかを追跡
- **コンテンツ分析**：最も閲覧されているページ、ページビュー数、滞在時間の計測
- **コンバージョン追跡**：特定の行動（購入、フォーム送信、登録など）に対するユーザーの行動を測定
- **ユーザー行動追跡**：サイト内でのユーザーの行動パターンや影響を与えるコンテンツの特定

### **注意点**

Google Analyticsを使用する場合、プライバシーポリシーにアクセス解析の内容を記載することが推奨されます。特に、Cookieや個人情報の収集に関する情報を明確にした方がいいでしょう。

## **基本設定の手順**

### **1. Googleアカウントのログインとアナリティクスの開始**

1. Googleアカウントにログインし、[Google Analytics 設定ページ](https://analytics.google.com/analytics/web/provision/?hl=ja&pli=1#/provision)にアクセスします。
    - *ログイン済みの場合、「測定を開始」をクリックして、設定を開始します。*
[![Image from Gyazo](https://i.gyazo.com/28391ffaaca80b9d402a963c8a9b57ea.png)](https://gyazo.com/28391ffaaca80b9d402a963c8a9b57ea)

### **2. アナリティクス アカウント名の設定**

1. アカウント名を入力し、「次へ」を選択します。
    - *Googleのプロダクトとサービスのオプションは必要に応じて選択できます。*

[![Image from Gyazo](https://i.gyazo.com/78b2675b0fc92d25e9e372dc3f46ea2e.png)](https://gyazo.com/78b2675b0fc92d25e9e372dc3f46ea2e)

### **3. プロパティ名、タイムゾーン、通貨の設定**

1. プロパティ名を入力し、レポートのタイムゾーンと通貨を設定します。

[![Image from Gyazo](https://i.gyazo.com/f3d7d4deba621185727526b84d26fdf4.png)](https://gyazo.com/f3d7d4deba621185727526b84d26fdf4)

### **4. 業種とビジネス規模の選択**

1. アプリ内容に最も近い業種を選択し、ビジネスの規模を設定します。

[![Image from Gyazo](https://i.gyazo.com/cd9011b4146bd7b0a884becc340201ba.png)](https://gyazo.com/cd9011b4146bd7b0a884becc340201ba)

[![Image from Gyazo](https://i.gyazo.com/f88a75070f90d4ac66c28d90c96217a4.png)](https://gyazo.com/f88a75070f90d4ac66c28d90c96217a4)

### **5. ビジネス目的の選択と利用規約への同意**

1. ビジネスの目的を選択し、Google Analyticsの利用規約に同意します。

[![Image from Gyazo](https://i.gyazo.com/53e965a43ac15cc560338eaddc2d06aa.png)](https://gyazo.com/53e965a43ac15cc560338eaddc2d06aa)

[![Image from Gyazo](https://i.gyazo.com/e6010ba411236ac3d37197b1b5bc9b10.png)](https://gyazo.com/e6010ba411236ac3d37197b1b5bc9b10)

### **6. プラットフォームの選択**

1. 「ウェブ」を選択して次に進みます。

[![Image from Gyazo](https://i.gyazo.com/5ec98760890bee820b287f17fa28f522.png)](https://gyazo.com/5ec98760890bee820b287f17fa28f522)

### **7. アプリURLとストリーム名の記入**

1. アプリのURLとストリーム名を入力し、ウェブサイトのタグが正しく動作するかテストします。

[![Image from Gyazo](https://i.gyazo.com/b5dff82b193f06b0b62ca665a510101b.png)](https://gyazo.com/b5dff82b193f06b0b62ca665a510101b)

### **8. トラッキングコードの組み込み**

1. 「手動でインストールする」からトラッキングコードをコピーし、`app/views/layouts/application.html.erb` ファイルの `<head>` 内に貼り付けます。
（Rails以外のアプリの場合は、`layouts/application.html.erb`と同様の役割を持つファイルに貼り付けてください。）

```jsx
<!DOCTYPE html>
<html>
  <head>
    <title><%= content_for(:title) || "analytics-test" %></title>
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <meta name="mobile-web-app-capable" content="yes">
    <%= csrf_meta_tags %>
    <%= csp_meta_tag %>

    <!-- Google tag (gtag.js) -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=G-25LB5Z9TEW"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());

      gtag('config', 'G-25LB5Z9TEW');
    </script>

    <%= yield :head %>

    <link rel="manifest" href="/manifest.json">
    <link rel="icon" href="/icon.png" type="image/png">
    <link rel="icon" href="/icon.svg" type="image/svg+xml">
    <link rel="apple-touch-icon" href="/icon.png">
    <%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
    <%= javascript_include_tag "application", "data-turbo-track": "reload", type: "module" %>
  </head>

  <body>
    <%= yield %>
  </body>
</html>
```

:::note warn
トラッキングコードの一部が欠けていてもテストは通る場合がありますが、正確なデータ収集ができなくなるため、注意が必要です。


テストが通ってもデータ収集ができない例
gtag('config', 'G-25LB5Z9TEW');の欠如など

[![Image from Gyazo](https://i.gyazo.com/f8769a2be796de9683e1ed6006ee51e7.gif)](https://gyazo.com/f8769a2be796de9683e1ed6006ee51e7)
:::
### **9. トラッキングコードのデプロイとテスト**

1. トラッキングコードを反映させた後、再デプロイを行い、リアルタイムでのデータ収集が行われているか確認します。
2. レポート画面のリアルタイムで、トラッキングコードが有効かどうかをテストします。

　テスト方法は、自分のアプリにアクセスしてアクティブユーザー数がカウントされれば問題ないです。
 
:::note info
基本設定が完了したら、特定IPアドレスの除外が必要な場合は、次のステップに進みます。
:::
---

[![Image from Gyazo](https://i.gyazo.com/7b069e65f30423125caf3c02c58534e0.png)](https://gyazo.com/7b069e65f30423125caf3c02c58534e0)

## **特定IPアドレスの除外方法**

### **1. 管理画面に移動**

1. Google Analyticsホーム画面に移動し、左下の「管理」をクリックして管理者設定を開きます。

[![Image from Gyazo](https://i.gyazo.com/139899415cd52a79c3fa733aadca6843.png)](https://gyazo.com/139899415cd52a79c3fa733aadca6843)

### **2. データストリームを選択**

1. 「データストリーム」を選択し、自分で作成したデータストリームを選択し、ウェブストリームの詳細に進みます。

[![Image from Gyazo](https://i.gyazo.com/8c9a7247b455aeffd7614a20704321ce.png)](https://gyazo.com/8c9a7247b455aeffd7614a20704321ce)

### **3. タグ設定を行う**

1. データストリームの詳細画面にある「タグ設定を行う」をクリックします。

[![Image from Gyazo](https://i.gyazo.com/dd3d9b9130344a125826cce61d18ea1a.png)](https://gyazo.com/dd3d9b9130344a125826cce61d18ea1a)

### **4. 内部トラフィックの定義を設定**

1. 「もっとみる」をクリックし、「内部トラフィックの定義」を選択を行う。「内部トラフィックルールを作成」を行います。

[![Image from Gyazo](https://i.gyazo.com/3bbc36eb2939e0a9a8f080ce15fde083.png)](https://gyazo.com/3bbc36eb2939e0a9a8f080ce15fde083)

### **5.** 内部トラフィックルールを作成し、ルール・**IPアドレスを設定**

1. ルール名を設定（例：analytics-test）、「traffic_type」を「internal」に設定します。
2. 「IPアドレスのマッチタイプ」を選択し、IPアドレスを入力します。
(IPアドレスが不明の場合は、ページ内のIPアドレスを確認からできます。)

| **マッチタイプ** | **設定方法** | **値の例** |
| --- | --- | --- |
| IPv4 | IPアドレスが次と等しい | 111.222.33.444 |
| IPv6 | IPアドレスに含む | 1111:2222:3333:4444: |

:::note info
今回は、以下の設定でIPアドレスを追加しています。
 - IPv4は固定アドレスであるため、「次と等しい」を選択しています。
 - IPv6は変動しやすいため、「IPアドレスに含む」を選択し、変動が少ない左側の4つのセグメントを対象としています。
:::

[![Image from Gyazo](https://i.gyazo.com/9bb01d6863102d0f46e3bebcf4899d0d.png)](https://gyazo.com/9bb01d6863102d0f46e3bebcf4899d0d)

### **6. フィルタの保存と適用**

1. IPアドレス設定が完了したら、フィルタ設定を保存します。データフィルタの適用には24～36時間かかる場合があります。

反映されていない場合

[![Image from Gyazo](https://i.gyazo.com/7a63fa1c070fdfa77b0bf9a7c74d5220.png)](https://gyazo.com/7a63fa1c070fdfa77b0bf9a7c74d5220)

### **7. フィルタのテスト**

1. レポートのスナップショットまたは、リアルタイムの概要を開き、比較の作成をしフィルタが正しく反映しているか確認します。

[![Image from Gyazo](https://i.gyazo.com/aa012a4a860de98b2f6b923a48fdf9cb.png)](https://gyazo.com/aa012a4a860de98b2f6b923a48fdf9cb)

1. 「比較対象を追加」機能を使用後、比較を表示を押しフィルタされたデータを確認しアプリにアクセスしたものが対象になっているかを確認します。（オレンジの右がテストデータ）

[![Image from Gyazo](https://i.gyazo.com/b592db0b963160de95964bf08ea9501b.png)](https://gyazo.com/b592db0b963160de95964bf08ea9501b)

### **8. テストデータの有効化**

1. フィルタのテストが完了したら、管理画面から「データフィルタ」に移動し、ステータスを「有効」に変更します。

[![Image from Gyazo](https://i.gyazo.com/5b3a67d92f5133cb5038afc069255d1c.png)](https://gyazo.com/5b3a67d92f5133cb5038afc069255d1c)

### **9. 最終確認**

1. リアルタイムに戻り、アプリやウェブサイトにアクセスして、除外が正しく適用されているか最終確認します。

この動画の様に、除外ができていればイベントを起こしても何も反映されないです。

[![Image from Gyazo](https://i.gyazo.com/d3e120c48a22e5a81b6cb7984bf6d211.gif)](https://gyazo.com/d3e120c48a22e5a81b6cb7984bf6d211)
---

## **まとめ**

この記事では、Google Analytics (GA4) の初期設定と特定IPアドレスの除外に関する手順を、**初学者でもスムーズに進められるようにできるだけシンプルに**まとめました。公式ドキュメントや他の記事では分かりづらい部分もあったため、**スクリーンショットを取り入れて視覚的に理解しやすくすること**を心掛けました。

今回の記事が、皆さんのGoogle Analytics導入・設定に役立つことを願っています！
**不明点や改善点があれば、お気軽にコメントいただけると嬉しいです！**

長い記事となりましたが、最後までお読みいただきありがとうございました。