gpt4 book ai didi

android - 在 Android 中实现 Google 标签管理器

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:09:52 26 4
gpt4 key购买 nike

我正尝试按照本教程实现 Google 跟踪代码管理器:https://developers.google.com/tag-manager/android/v4/

当我运行应用程序时,我在控制台中收到以下错误:

    05-22 12:27:44.490    V/GoogleTagManager﹕ Attempting to load a container from the resource ID 2131099650 (testconverteo.ismail.converteotag:raw/gtm_default_container)
05-22 12:27:44.520 E/GoogleTagManager﹕ Invalid macro: _gtm.loadEventEnabled
05-22 12:27:44.520 V/GoogleTagManager﹕ loadAfterDelay: containerId=GTM-XXXXX delay=29397190
05-22 12:27:44.530 E/GoogleTagManager﹕ Invalid macro: _gtm.loadEventEnabled
05-22 12:27:44.490 W/GoogleTagManager﹕ Failed to extract the container from the resource file. Resource is a UTF-8 encoded string but doesn't contain a JSON container

而且我在 Google Analytics 中没有实时数据,更没有任何可以证明我的应用程序被跟踪的数据。

如果有人遇到同样的问题,或者他按照同样的步骤操作并且知道如何解决这个问题,请在评论中留下解释。

我完成的步骤:

  • 我通过在 builde.gradle(模块:应用程序)中添加这部分代码来设置 Google Play 服务 SDK:编译 'com.google.android.gms:play-services:7.3.0'
  • 我将权限添加到 AndroidManifest.xml 文件
  • 我下载默认容器二进制文件并将其添加到应用程序
  • 我创建了一个闪屏 Activity ,我按照教程的模式在其中初始化 GTM
  • 我已将事件推送到数据层

我目前在启动画面 Activity 中的内容如下:

public class SplashScreenActivity extends Activity {

private static final String CONTAINER_ID = "GTM-XXXX";

@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splashscreen);

TagManager tagManager = TagManager.getInstance(this);
tagManager.setVerboseLoggingEnabled(true);

PendingResult<ContainerHolder> pending = tagManager.loadContainerPreferNonDefault(
CONTAINER_ID,
R.raw.gtm_default_container
);

pending.setResultCallback(new ResultCallback<ContainerHolder>() {
@Override
public void onResult(ContainerHolder containerHolder) {
ContainerHolderSingleton.setContainerHolder(containerHolder);
Container container = containerHolder.getContainer();
if (!containerHolder.getStatus().isSuccess()) {
Log.e("IL", "failure loading container");
return;
}
ContainerHolderSingleton.setContainerHolder(containerHolder);
ContainerLoadedCallback.registerCallbacksForContainer(container);
containerHolder.setContainerAvailableListener(new ContainerLoadedCallback());
startMainActivity();
}
}, 2, TimeUnit.SECONDS);
}

private void startMainActivity() {
Intent intent = new Intent(SplashScreenActivity.this, MainActivity.class);
startActivity(intent);
}

private static class ContainerLoadedCallback implements ContainerHolder.ContainerAvailableListener {
@Override
public void onContainerAvailable(ContainerHolder containerHolder, String containerVersion) {
// We load each container when it becomes available.
Container container = containerHolder.getContainer();
registerCallbacksForContainer(container);
}

public static void registerCallbacksForContainer(Container container) {
// Register two custom function call macros to the container.
container.registerFunctionCallMacroCallback("increment", new CustomMacroCallback());
container.registerFunctionCallMacroCallback("mod", new CustomMacroCallback());
// Register a custom function call tag to the container.
container.registerFunctionCallTagCallback("custom_tag", new CustomTagCallback());
}

}

}

在主 Activity 中:

public void onStart() {
super.onStart();
DataLayer dataLayer = TagManager.getInstance(this).getDataLayer();
dataLayer.pushEvent("Application ouverte", DataLayer.mapOf("login page","un de plus"));
}

我还创建了这个类:

public class ContainerHolderSingleton {

private static ContainerHolder containerHolder;

/**
* Utility class; don't instantiate.
*/
private ContainerHolderSingleton() {
}

public static ContainerHolder getContainerHolder() {
return containerHolder;
}

public static void setContainerHolder(ContainerHolder c) {
containerHolder = c;
}
}

请注意我隐藏了 Google 跟踪代码管理器容器 ID

如果有人需要更多信息,请告诉我

谢谢

最佳答案

替换行编译 'com.google.android.gms:play-services:7.3.0'编译 'com.google.android.gms:play-services:7.0.0'或者compile 'com.google.android.gms:play-services-analytics:7.0.0'(这更好,因为它只包含 ga 和 gtm 相关的东西)

我很幸运从 7.0.0 开始,看到 gtm 工作。然后升级到 7.3.0 就停止工作了。它可能会用新的 gms lib 修复。

所有这一切都假设您已经配置了您的容器。如果没有,请在此处阅读更多信息 https://support.google.com/tagmanager/answer/6103657?hl=en&ref_topic=3441530

关于android - 在 Android 中实现 Google 标签管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30397488/

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