どのようにお手伝いできますか?

AppsFlyerでのFirebaseとGoogleタグマネージャーの活用|インストールとイベントの送信

  • 更新

概要:Firebase SDKで記録したイベントをAppsFlyerに送信するための、アプリ側の設定手順を説明します。

アプリでのイベントの設定

このセクションでは、Googleタグマネージャー(GTM)を使用する場合に、アプリでイベントを設定・作成する方法を説明します。

イベントが送信されると、GTMはイベントトリガーを使って、そのイベントを処理するタグが設定されているか確認します。イベントトリガーは、特定のイベントが送信されるたびにタグを発火させるよう設定します。送信されたイベントに対応するトリガーがあると、タグが発火します。タグが発火すると、Googleタグマネージャーがイベント内のすべてのデータを収集します。このデータには、AppsFlyer ID、イベント名、イベントパラメータなどが含まれます。データをすべて収集すると、GoogleタグマネージャーがAppsFlyerにイベントを送信します。

収益と価格のイベント変数の作成

Android

JavaKotlin
  1. MainActivityクラスに、AppsFlyer Device IDを保持する変数を作成します。
    public static String appsFlyerID; 
  2. MainActivityクラスのonCreateメソッドで、super.onCreateの後にAppsFlyer IDを変数に渡します。
    appsFlyerID = AppsFlyerLib.getInstance().getAppsFlyerUID(this);

iOS

iOSでは、アプリ全体からパラメータを利用できます。 AppsFlyerTrackerのインスタンスから取得できます。

Objective C Swift
  1. AppsFlyerデバイスID:
    [AppsFlyerTracker sharedTracker].getAppsFlyerUID
  2. Apple App ID:
    [AppsFlyerTracker sharedTracker].appleAppID

アプリへのイベントの追加

まず、アプリでイベントを設定します。イベントはFirebaseのイベントロギング機能を使って送信します。イベントにはAppsFlyer ID、イベント名、イベントパラメータを指定します。 AppsFlyer IDは、設定手順で作成した変数から取得します。

GoogleタグマネージャーはFirebase Analyticsのイベントをきっかけにタグを発火させます。 Firebaseにイベントが送信されるたびに、タグマネージャーがイベントを認識し、AppsFlyerにも送信します。

Android

JavaKotlin
  1. 対象のアクティビティに、Firebaseのimport文を追加します。
    import com.google.firebase.analytics.FirebaseAnalytics;
  2. 購入イベントが発生するたびに実行されるよう、以下のコードを追加します。
    Bundle bundle = new Bundle();
      // notice "af_id", this is the name of the event parameter 
      // for AppsFlyer ID that we created in the previous step
      bundle.putString("af_id", appsFlyerID);
      bundle.putString("af_revenue", "200");
      bundle.putString("af_price", "250");
      mFirebaseAnalytics.logEvent("af_purchase", bundle);
        

iOS

Objective-CSwift
  1. イベントを送信するビューに@import Firebaseを追加します。
  2. 購入イベントが発生するたびに実行されるよう、以下のコードを追加します。
    NSString *id_prefix = @"id";
    NSString *apple_app_id = [id_prefix stringByAppendingString:[AppsFlyerTracker sharedTracker].appleAppID];

    [FIRAnalytics logEventWithName:@"af_purchase" parameters:@{ @"apple_app_id": apple_app_id, @"af_id": [AppsFlyerTracker sharedTracker].getAppsFlyerUID, @"af_revenue": @250, @"af_price": @375 }];

Firebaseへのインストールイベントの送信

インストールに関するすべてのデータを含むインストールイベントを、Firebaseに送信することもできます。

Android

Java Kotlin

AndroidでインストールイベントをFirebaseに送信するには、conversionDataオブジェクトを使用できます。

イベント送信用メソッドの作成

AFApplicationクラスのonCreateメソッドのすぐ下に、以下のメソッドを追加します。

public void sendInstallToFirebase(Map<String, String> conversionData){
       mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
       Bundle bundle = new Bundle();
       bundle.putString("install_time", conversionData.get("install_time") == null ? String.valueOf(new Date().getTime()) : conversionData.get("install_time"));
       bundle.putString("click_time", conversionData.get("click_time"));
       bundle.putString("media_source", conversionData.get("media_source") == null ? "organic": conversionData.get("media_source"));
       bundle.putString("campaign", conversionData.get("campaign") == null ? "organic": conversionData.get("campaign"));
       bundle.putString("install_type", conversionData.get("af_status"));
       mFirebaseAnalytics.logEvent("install", bundle);
    }

このメソッドは、conversionDataオブジェクトを受け取ります。このメソッドは、インストール時刻、メディアソース、キャンペーンがnullかどうかを確認します。nullの場合、インストール時刻を現在時刻に、メディアソースとキャンペーンをorganicに設定します。それ以外の場合は、conversionDataオブジェクトからデータを取得し、Firebaseに送信します。

インストールイベントの送信

onConversionDataSuccessメソッドに、以下のコードを追加します。

if(conversionData.get("is_first_launch").equals("true")){
       sendInstallToFirebase(conversionData);
    }

このコードは、アプリの初回起動かどうかを確認します。条件に該当する場合は、sendInstallToFirebaseメソッドを呼び出します。

iOS

Objective-CSwift

イベント送信用メソッドの作成

AppDelegate.mファイルの末尾に、次のメソッドを追加します。

- (void)sendInstallToFirebase:(NSDictionary *)installData{
      NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
      [dateFormatter setDateFormat:@"dd/MM/yyyy HH:mm:ss"];
      NSDate *date = [NSDate date];
      NSString *newDate = [dateFormatter stringFromDate:date];
    
      if([[installData objectForKey: @"af_status"] isEqual: @"Organic"]){
        [FIRAnalytics logEventWithName:@"install"
         parameters:@{
          @"install_time": newDate,
          @"media_source": @"organic",
          @"campaign": @"organic"
    
        }];
      }
      else {
        [FIRAnalytics logEventWithName:@"install"
          parameters:@{
          @"install_time": [installData objectForKey: @"install_time"],
          @"click_time": [installData objectForKey: @"click_time"],
          @"install_type": [installData objectForKey: @"af_status"],
          @"media_source": [installData objectForKey: @"media_source"],
          @"campaign": [installData objectForKey: @"campaign"]
        }];
      }
    }

このメソッドはinstallDataオブジェクトを受け取り、インストールがオーガニックかどうかを確認します。オーガニックの場合は、インストール時刻を現在の時刻に設定し、メディアソース、キャンペーン、インストールタイプをorganicに設定します。

非オーガニックインストールの場合、対応する非オーガニックインストールのデータを取得します。

パラメータを設定すると、このメソッドがFirebaseにインストールイベントを送信します。

インストールイベントの送信

AppDelegate.mのdidFinishLaunchingWithOptionsメソッドに、[FIRApp configure]を追加します。

AppDelegate.mのonConversionDataSuccessメソッドの末尾に、次のコードを追加します。

if([installData objectForKey:@"is_first_launch"]){
      [self sendInstallToFirebase: installData];
    }

上記のコードは、アプリの初回起動かどうかを確認します。条件に該当する場合は、sendInstallToFirebaseメソッドを呼び出します。

警告

一部のメディアソースは、サードパーティのプラットフォームやサービスとのデータ共有を許可していません。 Meta広告、Twitter、Snap、Pinterestなど、サードパーティのプラットフォームやサービスへのデータ共有を制限しているパートナーを利用する場合は、必ず各社のガイドラインに従い、制限対象のデータを除外してください。