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

概要:Googleタグマネージャーを使用して、Firebase SDK経由で計測されたイベントをAppsFlyerに送信します。

アプリでイベントを設定する

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

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

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

Android

JavaKotlin
  1. MainActivityクラスで、AppsFlyerのデバイス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 Device ID -
    [AppsFlyerTracker sharedTracker].getAppsFlyerUID
  2. Apple App ID -
    [AppsFlyerTracker sharedTracker].appleAppID

アプリでイベントを追加する

最初のステップは、アプリでイベントの設定をすることです。イベントは、Firebase Event Loggingを使用して送信されます。イベント内で、AppsFlyer ID、Dev Key、イベント名、イベントパラメータを指定します。AppsFlyer IDは、 設定ステップで作成された変数から取得されます。

GoogleタグマネージャーはFirebase Analyticsイベントを使用してタグイベントを発生させます。Firebaseにイベントが送信されるたびに、タグマネージャーはイベントを認識しAppsFlyerにも送信します。

Android

JavaKotlin
  1. 目的のアクティビティにて、Firebaseの import statement を追加します:
    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-C Swift
  1. イベントが送信される view に @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にインストールイベントを送信するには、conversionDataobject を使用できます。

send event method を作成する

onCreateメソッドの下のAFApplication クラスに次のメソッドを追加します:

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 object を受け入れます。このメソッドは、インストール時間、メディアソース、およびキャンペーンがNullであるかどうかをチェックし、その場合はインストール時間を現在の時刻に設定し、メディアソースとキャンペーンをオーガニックに設定します。それ以外の場合は、 conversionData オブジェクトからデータを取得し、Firebaseに送ります。

インストールイベントを送信する

onConversionDataSuccess メソッドに次のコードを追加します:

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

このコードは、アプリが初めて起動されるかどうかをチェックします。その場合は、 SendInstallToFireBase メソッドを呼び出します。

iOS

Objective-C Swift

send event method を作成する

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 オブジェクトを受け取り、インストールがオーガニックであるかどうかをチェックします。オーガニックの場合は、インストール時間を現在の時刻に設定し、メディアソース、キャンペーン、インストールの種類をオーガニックに設定します。

インストールが非オーガニックの場合、メソッドは関連する非オーガニックインストールデータを取得します。

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

インストールイベントを送信する

AppDelegate.m で、DidFinishLaunchingWithOptions メソッド内に、[FIRApp configure] を追加します

AppDelegate.m で、OnConversionDataSuccess メソッド内にで、メソッドの最後に次のコードを追加します:

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

上記のコードは、アプリが初めて起動されるかどうかをチェックします。その場合は、SendInstallToFireBase メソッドを呼び出します。

 警告

一部のメディアソースでは、サードパーティのプラットフォームやサービスとのデータの共有が許可されていません。第三者のプラットフォームやサービスとのデータの共有に制限を設けているMeta ads、Twitter、Snap、Pinterest などのパートナーと提携している場合は、必ずパートナーのガイドラインに従い、これらの制限下にあるデータを削除してください