Firebase 向け Google アナリティクス SDK を使用してモバイルアプリを構成し、Google タグ マネージャーのサーバーサイド タグ設定と連携させることができます。
サーバーサイド タグ設定を使用すると、データをステージング、削除、拡張してから、Google アナリティクスなどのリンク先のサービスに送信することができます。詳しくは、サーバーサイド タグ設定についてをご覧ください。
モバイルアプリのサーバーサイド タグ設定をセットアップする手順は次のとおりです。
前提条件
- アプリに Firebase 向け Google アナリティクス SDK を組み込み、Google アナリティクス 4 プロパティに接続する必要があります。詳しくは、Firebase 向け Google アナリティクス SDK をご覧ください。
- Google タグ マネージャーのアカウントとサーバー コンテナが必要です。アカウントをお持ちでない場合は、新しいタグ マネージャー アカウントとコンテナを作成します。
- タグ設定サーバーをセットアップする必要があります。
ステップ 1: サーバーサイド タグ設定に対応するアプリを準備する
iOS
サーバーサイド タグ設定のアップロード機能を有効にし、
Info.plist
ファイルでサーバーサイド タグ設定のデバッグモードのカスタム URL スキームを設定します。以下のBUNDLE_ID
は、アプリのバンドル ID に置き換えます。<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> ... <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleTypeRole</key> <string>None</string> <key>CFBundleURLName</key> <string>BUNDLE_ID</string> <key>CFBundleURLSchemes</key> <array> <string>tagmanager.sgtm.c.BUNDLE_ID</string> </array> </dict> </array> <key>GOOGLE_ANALYTICS_SGTM_UPLOAD_ENABLED</key> <true/> </dict> </plist>
デバッグモードまたはプレビュー モードを有効にするには、ライフサイクル メソッドに
Analytics.handleOpen(_:)
の呼び出しを追加して、起動 URL を渡します。SwiftUI
@main struct MyApplication: App { var body: some Scene { WindowGroup { ContentView() .onOpenURL { url in Analytics.handleOpen(url) } } } }
UIScene
class SceneDelegate: UIResponder, UIWindowSceneDelegate { func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { ... if let urlContext = connectionOptions.urlContexts.first { let url = urlContext.url Analytics.handleOpen(url) } } }
SwiftUI または UIScene を使用していないアプリの場合、対応は必要ありません。SDK は
ApplicationDidFinishLaunchingNotification
から起動 URL を受信します。
Android
- Firebase 向け Google アナリティクス SDK の最新のリリースをインストールします。
アプリケーションの
AndroidManifest.xml
ファイルに次の行を追加して、sGTM を有効にします。<!-- Preview Activity to enable preview mode –-> <activity android:name="com.google.firebase.analytics.GoogleAnalyticsServerPreviewActivity" android:exported="true" android:noHistory="true" > <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="tagmanager.sgtm.c.<APP_PACKAGE_ID>" /> </intent-filter> </activity> <!-- Meta-data that enables uploads to sGTM –-> <meta-data android:name="google_analytics_sgtm_upload_enabled" android:value="true" />
ステップ 2: モバイル トラフィックをサポートするようにサーバー コンテナを構成する
次のセクションの内容は、サーバーサイド タグ設定がすでにあり、そのコンセプトに精通していることを前提としています。サーバーサイド タグ設定を初めて使用する場合は、「サーバーサイド タグ設定の基礎」コースを受講してください。
Google アナリティクス: GA4(アプリ)クライアントをセットアップする
クライアントはタグ マネージャーのリソースタイプの 1 つで、特定の種類の受信リクエストをインターセプトして、宛先(Google アナリティクス 4 など)に渡すことができるイベントを生成します。この場合、HTTP リクエストは Google アナリティクス 4 のイベントであるため、コンテナにあらかじめ組み込まれている「Google アナリティクス: GA4(アプリ)」クライアントの設定を調整して使用します。GA4 クライアントは、GA SDK やウェブサイトなどのデータソースごとに 1 つあれば十分です。詳しくは、クライアントの仕組みをご覧ください。
- 使用するサーバー コンテナで [クライアント] に移動し、[新規] をクリックします。
[クライアントの構成] をクリックし、[Google アナリティクス: GA4(アプリ)] を選択します。
クライアントの名前を入力して、[保存] をクリックします。
Google アナリティクス: GA4 タグを設定する
Google アナリティクスにデータを送信するには、サーバー コンテナ内に「Google アナリティクス: GA4」タグを作成する必要があります。コンテナに HTTP リクエストが届くと、クライアントがパースしてイベントデータ オブジェクトを生成します。タグは、このイベントデータ オブジェクトを適切なフォーマットにマッピングして、Google アナリティクス 4 に送信します。
- 使用するサーバー コンテナで [タグ] に移動し、[新規] をクリックします。
[タグの設定] をクリックし、[Google アナリティクス: GA4] を選択します。
デフォルトでは、タグの関連フィールドおよびパラメータはすべて、クライアントが作成したイベントデータ オブジェクトから引き継がれます。
- コンテナに届いた Google アナリティクス 4 リクエストは「Google アナリティクス: GA4(アプリ)」クライアントが受け取って処理するため、タグにはアプリ ID とイベント パラメータが引き継がれることになります。
- 受信した Google アナリティクス 4 リクエストが「Google アナリティクス: GA4(ウェブ)」クライアントを経由する場合、タグでは測定 ID とイベント パラメータが継承されます。
モバイル トラフィックのトリガーを設定する
次に、GA4 タグを配信するタイミングを決めます。コンテナにリクエストが届くと、Google アナリティクス: GA4(アプリ)クライアントがそれをもとにイベントデータ オブジェクトを生成し、その値がタグに引き継がれます。そのため通常は、GA4 クライアントがリクエストを受け取るたびにタグが配信されるようにします。
トリガーを設定するには:
- タグ設定で [トリガー] をクリックします。
- 新しいトリガーを作成するには、右上の + アイコンをクリックします。
- [トリガーの設定] をクリックして、トリガーの種類を選択します。
リストから [カスタム] または [カスタム イベント] を選択します。
- カスタム トリガー タイプは、サーバーサイド クライアントがイベントを生成するたびに、そのイベントの種類を問わずタグを配信するのがデフォルト動作です。
- カスタム イベント トリガー タイプを使用すると、特定のイベント名または正規表現パターンに一致するイベントでタグを配信できます。
モバイル イベントデータまたはウェブ イベントデータでのみトリガーを実行するなど、このトリガーの発動条件のリストを有効にするには、[一部のイベント] を選択します。
- [イベント名] が事前に選択されています。そのセレクタをクリックし、リストから [組み込み変数を選択します] を選択します。
- イベントを生成したクライアントの名前を自動的に返すには、[Client Name] を選択します。
先ほど構成したクライアントの名前を使用して、条件を設定します。トリガーは次のようになります。
トリガーを保存し、わかりやすい名前を入力します。たとえば、[すべての GA4 アプリイベント] を使用できます。
タグの設定画面に戻り、トリガーの欄には新規作成したトリガーが加わっているはずです。タグを保存し、わかりやすい名前(「GA4」など)を入力します。タグは次のようになります。
コンテナをプレビューする
変更を公開する前に、Google タグ マネージャーを使用すると、サーバー コンテナをプレビューしてデバッグできます。なお、GA4 プロパティでサーバーサイド タグ設定を有効にしない限り、プレビューは機能しません。
アプリのリクエストでプレビュー構成をトリガーするには、次の操作を行う必要があります。
- Google タグ マネージャーのサーバー コンテナで [プレビュー] を選択します。
- 右上のその他の操作アイコン ⋮ をクリックし、[アプリからリクエストを送信] を選択します。
アプリ ID を入力し、[QR コードを生成] をクリックします。
スマートフォンのカメラアプリで QR コードをスキャンし、プレビュー イベントを生成する場合と同様に、アプリを操作します。
[OK] をクリックしてダイアログを閉じます。
コンテナを公開する
変更を確認したら、コンテナを公開して、すべてのトラフィックに変更を適用します。詳しくは、公開、バージョン、承認をご覧ください。
ステップ 3: GA4 プロパティでサーバーサイド タグ設定を有効にする
- Google アナリティクス 4 プロパティで [管理] に移動します。
- [データ ストリーム] を開きます。
[iOS] または [Android] タブから、アプリケーションのストリーム構成を選択します。
[SDK の設定を構成する]、[サーバーサイド タグ マネージャーを構成する] の順にクリックします。
SDK がサーバー コンテナの URL に測定データを送信できるようにするには:
- [サーバーサイドのタグ マネージャー コンテナにデータを送信する] のオン / オフを切り替えます。
- サーバー コンテナの URL をコピーします。Google タグ マネージャーで、[管理] > [コンテナの設定] > [サーバー コンテナの URL] に移動すると確認できます。
サーバー コンテナに転送するトラフィックの割合を選択します。100% 未満のオプションを選択して、すべてのトラフィックでサーバーサイド タグ設定を使用する前に、サーバーのセットアップと構成を検証することもできます。
[保存] をクリックします。SDK は更新されたサーバー コンテナ URL を取得し、測定データをその URL に直接送信します。
既知の制限事項
Android アプリの場合:
- サーバー コンテナと Google Play 開発者サービスに関連する潜在的なセキュリティ上の脆弱性を回避するため、イベントは SDK とサーバー コンテナの間にあるステートレス プロキシ サーバーを経由します。このプロキシはリクエストの送信元とエンドポイントを検証しますが、イベントに関するデータを検査または保存することはありません。GA4 が EU 域内のデバイスからデータを収集する方法と同様、EU 域内のトラフィック用のプロキシは EU 域内に配置されます。
- 自動的に記録されるアプリ内購入は、Google Play バックエンドとの統合に依存しており、サーバー コンテナには送信されません。
app_remove
イベントは Android では報告されません。
SDK データとコンバージョンを Google 広告にインポートするには、Google アナリティクスのアプリデータ ストリームを Google 広告アカウントに接続する必要があります。サーバーサイド タグ設定では、SDK と Google 広告の統合は行われません。
API
タグ マネージャーの設定データにアクセスするには、タグ マネージャー REST API を使用します。API の詳細については、以下をご覧ください。
- API の使用方法については、デベロッパー ガイドをご覧ください。
- タグ マネージャーのリソースと実施できる操作については、Tag Manager API のリファレンスをご覧ください。