使用 Google 追踪标签管理器记录 Branch 事件

概述

用例 :使用 Google 追踪代码管理器 (Google Tag Manager),Firebase 和 Branch library 记录 Branch 事件。这是使用 GTM 自定义功能完成的。

先决条件 :Branch SDK 必须在 iOS 和 Android App 内。

🚧

警告

This has not been tested intensively (with different use cases)!

在 Android 上设置自定义标签

🚧

先决条件

请确保您在 Android 上安装了 Branch SDK。

  1. 导入您的 GTM container
  2. Implement a class that extends com.google.android.gms.tagmanager.CustomTagProvider.
    Please see an example below :
import android.support.annotation.Keep;
    import java.util.Map;
    import branch
    @Keep
    public class HighScoreProvider implements com.google.android.gms.tagmanager.CustomTagProvider {
      @Override
      ...
    }
  1. If using ProGuard, make sure that the class names and methods are not obfuscated. Use the Keep annotation to specify this.
  2. 在此自定义类中,使用下面的以下 function
    public abstract void execute (Map<String, Object> parameters)
  3. Within this function, read the parameters passed by GTM within the "execute" function and log a Branch standard /custom event. Please ensure you import the Branch library.
@Keep
    public class TagProviderImpl implements CustomTagProvider {
    ...

        @Keep
        public void execute(Map<String, Object> variables) {
            BranchEvent event = new BranchEvent("View Event");
            for (String key: variables.keySet()) {
                event.addCustomDataProperty(key, variables.get(key).toString());
            }
            event.logEvent(context);
        }
    }

在 iOS 上设置自定义标签

🚧

先决条件

请确保您在 iOS 上安装了 Branch SDK。

  1. 导入您的 GTM container
  2. 确保您包含了 bridging header(尤其是对于同时使用 Swift 和 Objective-C 的代码库)
    1. 打开 Xcode。
    2. 点击 File > New > File。
    3. 在 iOS > Source下,选择 Header File。
    4. 点击 Next。
    5. Enter the header file name BridgingHeader.h
1296
    6. Click Create.
  1. 在 build settings 上添加 Objective-C bridging header
    1. 在 Xcod e中,点击您的项目。
1886
2. Click Build Settings in the editor area.
3. Select All and Combined and search for bridging.
4. In the right column of the row containing Objective-C Bridging Header, enter `BridgingHeader.h`.
1884
  1. 实现一个 custom class,例如 CustomEventTagFunction
import Foundation
import GoogleTagManager

@objectivec(CustomEventTagFunction)
final class CustomEventTagFunction : NSObject, TAGCustomFunction {
 ...
}
  1. 在此 custom class 中,使用下面的以下 function:
    @objectivec func execute(withParameters parameters: [AnyHashable : Any]!) -> NSObject! { ...}
  2. Within this function, read the parameters passed by GTM within the "execute" function and log a Branch standard or custom event. Please ensure you import the Branch library. This is an example:
import Foundation
    import GoogleTagManager
    import Branch

    @objectivec(CustomEventTagFunction)
    final class CustomEventTagFunction : NSObject, TAGCustomFunction {
        @objectivec func execute(withParameters parameters: [AnyHashable : Any]!) -> NSObject! {
            print("********************* parameters: \(String(describing: parameters))")

            let event_Name = parameters["event_name"] as! String
            let event = BranchEvent.customEvent(withName: event_Name)

            parameters.keys.forEach { key in
                let a = parameters[key] as! String
                event.customData[key] = a
                print("*", a)
            }
            event.logEvent()
            return nil
        }
    }

通过 Firebase 事件触发事件

  1. 确保您有通过 GTM 触发的事件。

示例:
dataLayer.push(["event": "branch_event", "screenName": "Home Screen"])

设置 GTM 配置

  1. 为您的事件设置触发器。
    1. Add filters for when this trigger is fired.
1856
  1. Add relevant event variables of what to add in.
    1. 创建一个新变量
    2. 选择 ‘Event Parameter’
    3. 与 Branch 销售工程师或解决方案工程师一起确定要创建的变量。
1818
  1. Create a new Tag under the Tags section and provide a name.
    1. Click on Tag Configuration, and under Tag type, select Function Call.
    2. 在 Class path 部分下提供创建的 classpath
      1. iOS:请看本节
      2. Android:请看本节
    3. Expand the “Add Argument” section and provide the key as "event_name" with the event name macro. Add in other keys which you need.
  2. 点击触发部分,然后选择您要触发此代码的适当触发器。
1916
  1. 请确保分别在 iOS 和 Android 上更新 container。