Google 当 运行 应用第一次没有可用网络时,跟踪代码管理器无法从默认容器文件中获取所有值

Google Tag Manager not able to fetch all the values from default container file when running app for first time with no network available

我在我的应用程序中集成了 Google 标签管理器并下载了最新版本的二进制文件并存储在 res->raw 文件夹中。我的 GTM 容器包含近 150 个键值对。问题是,当我 运行 第一次在没有可用网络的情况下使用该应用程序时,应用程序无法从默认容器中获取所有值 file.I 当我 运行 时看到许多缺失值或空白值] app.However 如果我连接到互联网,然后加载容器,然后在没有可用网络的情况下重新打开应用程序,那么它能够从默认容器文件中获取所有值。为什么会发生这种情况,我该如何解决?

   TagManager tagManager = TagManager.getInstance(this);
    PendingResult<ContainerHolder> pending =
            tagManager.loadContainerPreferNonDefault(CONTAINER_ID,
                    R.raw.gtmxyz);
    pending.setResultCallback(new ResultCallback<ContainerHolder>() {
        @Override
        public void onResult(@NonNull ContainerHolder containerHolder) {

            ContainerHolderSingleton.setContainerHolder(containerHolder);
            ContainerHolderSingleton.getContainerHolder().refresh();
            new Handler().postDelayed(new Runnable() {


                @Override
                public void run() {

                    startActivity(new Intent(SplashActivity.this,XYZ.class));

                    finish();
                }
            }, AppConstant.SPLASH_TIME_OUT);
        }
    });

您可以做一些事情来确保它有效:

  1. 确保默认容器(R.raw.gtmxyz 中的容器)是最新版本的容器。您可以从跟踪代码管理器的版本选项卡下载最新版本:

  2. 在您的 onResult 回调中,您应该在容器持有者上调用 getContainer。这使新加载的容器成为当前容器。

  3. 新加载的容器不需要调用刷新

  4. 确保在容器加载之前不会调用使用容器值的代码或 UI 元素。