【问题标题】:Parcelable array event parameter problem for GTMGTM 的 Parcelable 数组事件参数问题
【发布时间】:2021-01-23 12:32:42
【问题描述】:

我尝试创建一个简单的自定义标记来捕获来自 Firebase Analytics 的“购买”事件。我的标签配置如下。

Tag Type : Function Call
ClassPath : com.xx.xx.GTMProvider

Key                  -   Value 
items                -   {{Items-Custom}}
action_type          -   FBevent
class_name           -   NmEventPurchase

{{Items-Custom}} 用于在变量部分添加的关键“项目”。

问题是每当我触发下面的代码时;

Bundle params = new Bundle();
Bundle item1 = new Bundle();
item1.putString(FirebaseAnalytics.Param.ITEM_ID, "ABCD123");
item1.putString(FirebaseAnalytics.Param.ITEM_NAME, "jeggings");
item1.putString(FirebaseAnalytics.Param.ITEM_CATEGORY, "pants");

Bundle item2 = new Bundle();
item2.putString(FirebaseAnalytics.Param.ITEM_ID, "1234");
item2.putString(FirebaseAnalytics.Param.ITEM_NAME, "boots");
item2.putString(FirebaseAnalytics.Param.ITEM_CATEGORY, "shoes");

Parcelable[] products = new Parcelable[]{item1,item2};
params.putParcelableArray("items",products);
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.PURCHASE, params);

我收到以下错误;

E/GoogleTagManager:内部错误 - 函数调用:__md_main 类型不受支持:类 [Landroid.os.Parcelable;

如果我只是为 items 参数发送一个字符串(例如 json 字符串)而不是 parcelable[],那么一切正常。 我需要了解如何在 GTM 控制台中添加包含混合数组类型的自定义变量。

我真的被困在这一点上,对此问题没有任何解释。任何帮助将不胜感激。

PS:跟踪代码管理器 Android 依赖项:'com.google.android.gms:play-services-tagmanager:17.0.0'

谢谢大家..

【问题讨论】:

    标签: android google-tag-manager firebase-analytics


    【解决方案1】:

    首先,为了保持一致性,您应该使用 params.putParcelableArray(FirebaseAnalytics.Param.ITEMS, products); 将物品放入捆绑包中

    而不是:params.putParcelableArray("items",products);

    我需要了解如何在 GTM 控制台中添加包含混合数组类型的自定义变量。

    不幸的是,在增强型电子商务中,您无法将自定义参数添加到您的捆绑包中。

    关于您的错误,您应该使用 ArrayList 而不是 Parcelable。看看documentation。它应该看起来像这样:

    ArrayList items = new ArrayList();
    items.add(item1);
    items.add(item2);
    params.putParcelableArrayList(FirebaseAnalytics.Param.ITEMS, items );
    mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.PURCHASE, params);
    

    【讨论】:

    • 感谢 Nil,我也想为捆绑包添加自定义参数,但不太确定。很好的解释谢谢。
    • 没问题。我很高兴它有帮助。如果它解决了您的问题,请接受我的回答。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-17
    • 1970-01-01
    • 2023-04-07
    相关资源
    最近更新 更多