Firebase와 Google Tag Manager를 앱스플라이어와 함께 사용하기—설치 및 이벤트 보내기

한눈에 보기: Firebase SDK를 통해 보고된 이벤트를 앱에서 앱스플라이어로 전송하기 위한 설정 지침입니다.

앱에서 이벤트 구성하기

이 섹션에서는 Google Tag Manager(GTM)를 사용하여 앱에서 이벤트를 설정하고 생성하는 방법에 대해 설명합니다.

이벤트가 전송되면 GTM은 이벤트 트리거의 도움을 받아 이 이벤트를 처리하도록 구성된 태그가 있는지 확인합니다. 이벤트 트리거는 특정 이벤트가 전송될 때마다 태그를 실행하도록 설정됩니다. 특정 이벤트가 전송되고 해당 트리거가 있으면 태그가 실행됩니다. 태그가 실행되면 Google Tag Manager가 이벤트의 모든 데이터를 수집합니다. 이러한 데이터에는 앱스플라이어 ID, 이벤트 이름, 이벤트 파라미터가 포함됩니다. 모든 데이터를 수집한 후, Google Tag Manager는 이벤트를 앱스플라이어로 전송합니다.

매출 및 가격에 대한 이벤트 변수 생성

안드로이드

JavaKotlin
  1. MainActivity 클래스에서 앱스플라이어 디바이스 ID를 저장할 변수를 생성합니다.
    public static String appsFlyerID; 
  2. MainActivity 클래스로 돌아가서 onCreate 메서드 내와 super.onCreate 뒤에서 변수에 앱스플라이어 ID를 전달합니다.
    appsFlyerID = AppsFlyerLib.getInstance().getAppsFlyerUID(this);

iOS

iOS의 경우 앱 전체에서 파라미터를 사용할 수 있습니다. AppsFlyerTracker 인스턴스를 통해 파라미터를 검색할 수 있습니다.

Objective C Swift
  1. 앱스플라이어 디바이스 ID -
    [AppsFlyerTracker sharedTracker].getAppsFlyerUID
  2. 애플 앱 ID -
    [AppsFlyerTracker sharedTracker].appleAppID

앱에서 이벤트 추가하기

첫 번째 단계에서는 앱에서 이벤트를 구성합니다. 이벤트는 앱스플라이어 ID, 이벤트 이름, 이벤트 파라미터를 지정하는 경우 Firebase 이벤트 로깅을 사용하여 전송됩니다. 앱스플라이어 ID는 설정 단계에서 생성된 변수에서 검색됩니다.

Google Tag Manager는 Firebase Analytics 이벤트를 사용하여 태그 이벤트를 트리거합니다. 이벤트가 Firebase로 전송될 때마다 Tag Manager가 이벤트를 인식하여 앱스플라이어에도 전송합니다.

안드로이드

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-C Swift
  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로 보낼 수도 있습니다.

안드로이드

Java Kotlin

Android에서 설치 이벤트를 Firebase로 전송하려면 conversionData 객체를 사용하면 됩니다.

이벤트 보내기 메서드 만들기

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 객체를 받습니다. 이 메서드는 설치 시간, 미디어소스, 캠페인이 null인지 확인하고 null인 경우 설치 시간을 현재 시간으로, 미디어소스 및 캠페인을 오가닉으로 설정합니다. 그렇지 않으면 conversionData 객체에서 데이터를 가져와서 Firebase로 보냅니다.

설치 이벤트 보내기

onConversionDataSuccess 메서드에 다음 코드를 추가합니다.

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

이 코드는 앱이 처음 실행되는 것인지 확인합니다. 처음 실행되는 것일 경우 sendInstallToFirebase 메서드를 호출합니다.

iOS

Objective-C Swift

이벤트 보내기 메서드 만들기

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 광고, Twitter, Snap, Pinterest 등의 파트너와 협력하는 경우 해당 파트너의 가이드라인을 따르고 이러한 제한이 적용되는 데이터를 모두 삭제해야 합니다.