Google Analytics 4 (GA4)

    Airbridge supports integration with Google Analytics 4 (GA4). With the integration, you can send attribution data from Airbridge to GA4 and uncover insights into how users interact with your product in GA4.

    Note

    Only apps registered with GA4 can be integrated with Airbridge.

    Integration

    To implement the server-to-server integration, the App Instance ID of the Firebase Analytics SDK should be set as the device alias of the Airbridge SDK.

    Minimum SDK version required

    • Airbridge Android SDK: v.2.19.5

    • Airbridge iOS SDK: v.1.18.0

    • Airbridge React Native SDK: v.1.5.0

    • Airbridge Flutter SDK: v.3.0.2

    • Airbridge Unity SDK: v.1.9.0

    SDK setup

    Attention

    Once the SDK setup is complete, make sure to complete the required setup process in the Airbridge dashboard to implement the integration successfully.

    Add the codes below to the Airbridge SDK. Without adding the codes, GA4 won't be properly integrated with Airbridge even if the necessary setup is completed in the Airbridge dashboard.

    Android SDK (v4)

    1234567891011121314151617181920
    // MainApplication.kt
    override fun onCreate() {
        super.onCreate()
        // Initialize Airbridge SDK
        val option = AirbridgeOptionBuilder("YOUR_APP_NAME", "YOUR_APP_SDK_TOKEN")
            .setAutoStartTrackingEnabled(false)
            .build()
        Airbridge.initializeSDK(this, option)
    
        // Set device alias into Airbridge SDK
        Firebase.analytics.appInstanceId.addOnCompleteListener { task ->
            val appInstanceId: String? = task.result
            if (appInstanceId != null) {
                Airbridge.setDeviceAlias("ga4_app_instance_id", appInstanceId)
            }
    
            // Explicitly start tracking
            Airbridge.startTracking()
        }
    }
    12345678910111213141516171819202122232425
    // MainApplication.java
    @Override
    public void onCreate() {
        super.onCreate();
        // Initialize Airbridge SDK
        AirbridgeOption option = new AirbridgeOptionBuilder("APP_NAME", "APP_TOKEN")
            .setAutoStartTrackingEnabled(false)
            .build();
        Airbridge.initializeSDK(application, option);
    
        // Set device alias into Airbridge SDK
        FirebaseAnalytics.getInstance(this).getAppInstanceId()
            .addOnCompleteListener(new OnCompleteListener<String>() {
                @Override
                public void onComplete(@NonNull Task<String> task) {
                    String appInstanceId = task.getResult();
                    if (appInstanceId != null) {
                        Airbridge.setDeviceAlias("ga4_app_instance_id", appInstanceId);
                    }
    
                    // Explicitly start tracking
                    Airbridge.startTracking();
                }
            });
    }

    Android SDK (Previous)

    1234567891011121314151617181920
    // MainApplication.kt
    override fun onCreate() {
        super.onCreate()
        // Initialize Airbridge SDK
        val config = AirbridgeConfig.Builder("YOUR_APP_NAME", "YOUR_APP_SDK_TOKEN")
            .setAutoStartTrackingEnabled(false)
            .build()
        Airbridge.init(this, config)
    
        // Set device alias into Airbridge SDK
        Firebase.analytics.appInstanceId.addOnCompleteListener { task ->
            val appInstanceId: String? = task.result
            if (appInstanceId != null) {
                Airbridge.setDeviceAlias("ga4_app_instance_id", appInstanceId)
            }
    
            // Explicitly start tracking
            Airbridge.startTracking()
        }
    }
    12345678910111213141516171819202122232425
    // MainApplication.java
    @Override
    public void onCreate() {
        super.onCreate();
        // Initialize Airbridge SDK
        AirbridgeConfig config = new AirbridgeConfig.Builder("APP_NAME", "APP_TOKEN")
            .setAutoStartTrackingEnabled(false)
            .build();
        Airbridge.init(this, config);
    
        // Set device alias into Airbridge SDK
        FirebaseAnalytics.getInstance(this).getAppInstanceId()
            .addOnCompleteListener(new OnCompleteListener<String>() {
                @Override
                public void onComplete(@NonNull Task<String> task) {
                    String appInstanceId = task.getResult();
                    if (appInstanceId != null) {
                        Airbridge.setDeviceAlias("ga4_app_instance_id", appInstanceId);
                    }
    
                    // Explicitly start tracking
                    Airbridge.startTracking();
                }
            });
    }

    iOS SDK (v4)

    12345678910111213141516171819202122
    import FirebaseAnalytics
    
    // AppDelegate.swift
    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
    
        let option = AirbridgeOptionBuilder(name: "YOUR_APP_NAME", token: "YOUR_APP_SDK_TOKEN")
            .setAutoStartTrackingEnabled(false)
            .build()
        Airbridge.initializeSDK(option: option)
    
        if let appInstanceID = Analytics.appInstanceID() {
            Airbridge.setDeviceAlias(key: "ga4_app_instance_id", value: appInstanceID)
        }
        
        // Explicitly start tracking
        Airbridge.startTracking()
    
        return true
    }
    123456789101112131415161718192021222324
    @import FirebaseAnalytics;
    
    // AppDelegate.m
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        AirbridgeOptionBuilder* optionBuilder = 
            [[AirbridgeOptionBuilder alloc] initWithName:@"YOUR_APP_NAME"
                                                   token:@"YOUR_APP_SDK_TOKEN"];
    
        [optionBuilder setAutoStartTrackingEnabled:NO];
        AirbridgeOption* option = [optionBuilder build];
        [Airbridge initializeSDKWithOption:option];
    
        NSString *appInstanceID = [FIRAnalytics appInstanceID];
        if (appInstanceID) {
            [Airbridge setDeviceAliasWithKey:@"ga4_app_instance_id" 
                                       value:appInstanceID];
        }
        
        // Explicitly start tracking
        [Airbridge startTracking];
    
        return YES;
    }

    iOS SDK (Previous)

    1234567891011121314151617181920
    import FirebaseAnalytics
    
    // AppDelegate.swift
    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
    
        AirBridge.setAutoStartTrackingEnabled(false)
        AirBridge.getInstance("YOUR_APP_SDK_TOKEN", appName:"YOUR_APP_NAME", withLaunchOptions:launchOptions)
    
        if let appInstanceID = Analytics.appInstanceID() {
            AirBridge.state()?.setDeviceAlias(key:"ga4_app_instance_id", value: appInstanceID)
        }
        
        // Explicitly start tracking
        AirBridge.startTracking()
    
        return true
    }
    123456789101112131415161718192021
    @import FirebaseAnalytics;
    
    // AppDelegate.m
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        AirBridge.autoStartTrackingEnabled = NO;
        [AirBridge getInstance:@"YOUR_APP_SDK_TOKEN"
                       appName:@"YOUR_APP_NAME"
             withLaunchOptions:launchOptions];
    
        NSString *appInstanceID = [FIRAnalytics appInstanceID];
        if (appInstanceID) {
            [AirBridge.state setDeviceAliasWithKey: @"ga4_app_instance_id"
                                             value: appInstanceID];
        }
        
        // Explicitly start tracking
        [AirBridge startTracking];
    
        return YES;
    }

    1
    import analytics from '@react-native-firebase/analytics';

    React Native SDK (v4)

    Set autoStartTrackingEnabled to false in the airbridge.json.

    123
    const appInstanceId = await analytics().getAppInstanceId();
    Airbridge.setDeviceAlias('ga4_app_instance_id', appInstanceId);
    Airbridge.startTracking();

    React Native SDK (Previous)

    Set autoStartTrackingEnabled to false in the airbridge.json.

    123
    const appInstanceId = await analytics().getAppInstanceId();
    Airbridge.state.setDeviceAlias("ga4_app_instance_id", appInstanceId);
    Airbirdge.state.startTracking();

    12
    import 'package:firebase_core/firebase_core.dart';
    import 'package:firebase_analytics/firebase_analytics.dart';

    Flutter SDK (v4)

    Set autoStartTrackingEnabled to false in the airbridge.json.

    1234567
    final appInstanceId = await FirebaseAnalytics.instance.appInstanceId;
    
    if (appInstanceId != null) {
        Airbridge.setDeviceAlias("ga4_app_instance_id", appInstanceId);
    }
    
    Airbridge.startTracking();

    Flutter SDK (Previous)

    Set autoStartTrackingEnabled to false in the airbridge.json.

    1234567
    final appInstanceId = await FirebaseAnalytics.instance.appInstanceId;
    
    if (appInstanceId != null) {
        Airbridge.state.setDeviceAlias("ga4_app_instance_id", appInstanceId);  
    }
    
    Airbridge.state.startTracking();

    Unity SDK (v4)

    Set Auto Start Tracking Enabled to false in the project settings.

    12345678
    private async void SetupAirbridgeIntegration()
    {
    #if UNITY_ANDROID || UNITY_IOS
        string appInstanceId = await Firebase.Analytics.FirebaseAnalytics.GetAnalyticsInstanceIdAsync();
        Airbridge.SetDeviceAlias("ga4_app_instance_id", appInstanceId);
    #endif
        Airbridge.StartTracking();
    }

    Unity SDK (Previous)

    Set Auto Start Tracking Enabled to false in the project settings.

    12345678
    private async void SetupAirbridgeIntegration()
    {
    #if UNITY_ANDROID || UNITY_IOS
    	string appInstanceId = await Firebase.Analytics.FirebaseAnalytics.GetAnalyticsInstanceIdAsync();
    	AirbridgeUnity.SetDeviceAlias("ga4_app_instance_id", appInstanceId);
    #endif
    	AirbridgeUnity.StartTracking();
    }

    Airbridge dashboard setup

    The Airbridge dashboard setup must be completed to implement the integration. For detailed instructions, refer to the user guide below.

    このページは役に立ちましたか?

    ご質問やご提案はありますか?