gpt4 book ai didi

android - 谷歌标签管理器,安卓。事件仅在应用启动时发送

转载 作者:搜寻专家 更新时间:2023-11-01 08:52:15 26 4
gpt4 key购买 nike

我需要在我的应用程序中实现 GTM。我是通过这个 doc 做到的和分析工作,但不像我预期的那样。当我启动应用程序时,我之前推送到 dataLayer 的所有事件都会发送到分析,但不是每次我将一些数据推送到 dataLayer 时。看起来我正在启动应用程序,它向分析发送了一个事件,然后除了在 dataLayer 中收集数据外什么也没发生。当我再次启动应用程序时,每个收集到的数据都被发送到分析,然后再次将数据收集到 dataLayer 中。

在我的应用程序类中,我正在打开容器

mTagManager.openContainer(mContainerId, new Callback() {

@Override
public void containerRefreshSuccess(Container container, RefreshType refreshType) {

}

@Override
public void containerRefreshFailure(
Container container,
RefreshType refreshType,
RefreshFailure refreshFailure) {
}

@Override
public void containerRefreshBegin(Container container, RefreshType refreshType) {

}
});

在我的 Activity 中,我将数据推送到 dataLayer

TagManagager.getInstance(context).getDataLayer().push(map);

如果查看 logcat,我会看到以下消息:
这是发射后

02-27 18:35:55.468: V/TAG_MANAGER(14342): Sending hit to store  PATH: https:  PARAMS: ul=ru-ru,  cd3=,  cd4=,  cd1=,  ht=1393518945465,  sr=1920x1032,  cd2=,  aid=my.app,  cid=7087b6ed-b8e2-48b0-9979-c13399e119ff,  av=1,  v=1,  t=appview,  an=my.app,  tid=UA-203518-14,  _u=.4KnL,  cd=Main,  
02-27 18:35:55.515: V/TAG_MANAGER(14342): Dispatch running...
02-27 18:35:55.890: V/TAG_MANAGER(14342): sent 4 of 4 hits

这是在将数据推送到数据层之后

02-27 18:40:59.679: V/TAG_MANAGER(14342): putHit called
02-27 18:40:59.679: V/TAG_MANAGER(14342): Sending hit to store PATH: https: PARAMS: ul=ru-ru, cd3=some text, cd4=, cd1=80025, ht=1393519259690, sr=1920x1032, cd2=, aid=my.app, cid=7087b6ed-b8e2-48b0-9979-c13399e119ff, av=1, v=1, t=appview, an=my.app, tid=UA-203518-14, _u=.67rs3333KnL, cd=Portal,

我什至查看了来自 Google 的示例,但他们的应用程序 cuteAnimals 具有相同的行为。
如何在向dataLayer推送数据时每次都发送数据?

最佳答案

命中的发送是由定时器完成的。默认情况下为 30 分钟。所以我从来没有等过这么多时间。

要更改时间你可以打电话

// Set the dispatch period in seconds.
GAServiceManager.getInstance().setLocalDispatchPeriod(15);

要在推送 dataLayer 后立即发送命中,您可以调用

GAServiceManager.getInstance().dispatchLocalHits();

这里是我的实现:

public void pushDataLayer(Map<Object, Object> update) {
mTagManager.getDataLayer().push(update);

//in production we can use default logic with timer
GAServiceManager.getInstance().dispatchLocalHits();

// clear dataLayer
Map<Object, Object> empty = new HashMap<Object, Object>();
for (Map.Entry<Object, Object> values : update.entrySet()) {
empty.put(values.getKey(), DataLayer.OBJECT_NOT_PRESENT);
}
mTagManager.getDataLayer().push(empty);
}

更多信息:
https://developers.google.com/analytics/devguides/collection/android/v3/dispatch

关于android - 谷歌标签管理器,安卓。事件仅在应用启动时发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22074947/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com