Android.. 的 GTM GA 中没有数据?
No data in GA with GTM for Android..?
有人能帮帮我吗..?
GA 中未捕获任何数据。我将 GTM 用于 Android(最新版本)并且我已经完成了以下操作:
- 设置 Google Play 服务 SDK 并向 Android 清单文件添加权限。
- 向项目(二进制)添加了默认 GTM 容器。
- 已通过 Google 的最新支持页面初始化 GTM。
- 将事件和值推送到数据层。
- 我已经使用正确的标签、触发器和变量名称以及配置设置了 GTM。
这是迄今为止使用的大部分代码:
飞溅activity
public class SplashActivity extends AppCompatActivity {
private static final long TIMEOUT_FOR_CONTAINER_OPEN_MILLISECONDS = 2000;
private static final String CONTAINER_ID = "GTM-XXXXXX";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TagManager tagManager = TagManager.getInstance(this);
if (Environment.get() != BaseEnvironment.PRODUCTION) {
tagManager.setVerboseLoggingEnabled(true);
}
PendingResult<ContainerHolder> pending = tagManager.loadContainerPreferNonDefault(CONTAINER_ID, R.raw.gtm_xxxxxx);
pending.setResultCallback(new ResultCallback<ContainerHolder>() {
@Override
public void onResult(ContainerHolder containerHolder) {
ContainerHolderSingleton.setContainerHolder(containerHolder);
if (! containerHolder.getStatus().isSuccess()) {
return;
}
Intent intent = new Intent(SplashActivity.this, NavigationActivity.class);
startActivity(intent);
}
}, TIMEOUT_FOR_CONTAINER_OPEN_MILLISECONDS, TimeUnit.MILLISECONDS);
}
}
信息activity
@Override
public void onStart() {
super.onStart();
TagUtils.pushOpenScreenEvent(this, "Informatie");
}
@Override
protected void onStop() {
super.onStop();
TagUtils.pushCloseScreenEvent(this, "Informatie");
}
TagUtils
/**
* Push an "openScreen" event with the given screen name. Tags that match that event will fire.
*/
public static void pushOpenScreenEvent(Context context, String screenName) {
DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
dataLayer.pushEvent("openScreen", DataLayer.mapOf(
"screenName", screenName,
"appVersion", appVersionName(context),
"operatingSystem", systemVersion()
));
}
/**
* Push a "closeScreen" event with the given screen name. Tags that match that event will fire.
*/
public static void pushCloseScreenEvent(Context context, String screenName) {
DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
dataLayer.pushEvent("closeScreen", DataLayer.mapOf(
"screenName", screenName,
"appVersion", appVersionName(context),
"operatingSystem", systemVersion()
));
}
/**
* Push a "scanProduct" event with the given screen name. Tags that match that event will fire.
*/
public static final String ACTION_PRODUCT_FOUND = "Product gevonden";
public static final String ACTION_PRODUCT_NOT_FOUND = "Product niet gevonden";
public static final String ACTION_PRODUCT_NOT_FOUND_CONNECTION_ISSUES = "Product niet opgehaald door verbindingsproblemen";
public static void pushScanProductEvent(Context context, String action, String code) {
DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
dataLayer.pushEvent("scanProduct", DataLayer.mapOf(
"Category", "Scan",
"Action", action,
"Label", code
));
}
清单
<activity
android:name="com.google.android.gms.tagmanager.PreviewActivity"
android:label="@string/app_name"
android:noHistory="true">
<intent-filter>
<data android:scheme="tagmanager.c.nl.everybodylikespenguins" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
</activity>
请注意我隐藏了容器文件 ID 和 数据 android:scheme="tagmanager.c.nl.everybodylikespenguins" 确实是应用程序验收版本的正确名称(Google 在他们的示例中也使用了这个)。
您似乎没有在 onResult 回调中调用 containerHolder.getContainer()。必须调用 getContainer 才能激活容器。
有人能帮帮我吗..?
GA 中未捕获任何数据。我将 GTM 用于 Android(最新版本)并且我已经完成了以下操作:
- 设置 Google Play 服务 SDK 并向 Android 清单文件添加权限。
- 向项目(二进制)添加了默认 GTM 容器。
- 已通过 Google 的最新支持页面初始化 GTM。
- 将事件和值推送到数据层。
- 我已经使用正确的标签、触发器和变量名称以及配置设置了 GTM。
这是迄今为止使用的大部分代码:
飞溅activity
public class SplashActivity extends AppCompatActivity {
private static final long TIMEOUT_FOR_CONTAINER_OPEN_MILLISECONDS = 2000;
private static final String CONTAINER_ID = "GTM-XXXXXX";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TagManager tagManager = TagManager.getInstance(this);
if (Environment.get() != BaseEnvironment.PRODUCTION) {
tagManager.setVerboseLoggingEnabled(true);
}
PendingResult<ContainerHolder> pending = tagManager.loadContainerPreferNonDefault(CONTAINER_ID, R.raw.gtm_xxxxxx);
pending.setResultCallback(new ResultCallback<ContainerHolder>() {
@Override
public void onResult(ContainerHolder containerHolder) {
ContainerHolderSingleton.setContainerHolder(containerHolder);
if (! containerHolder.getStatus().isSuccess()) {
return;
}
Intent intent = new Intent(SplashActivity.this, NavigationActivity.class);
startActivity(intent);
}
}, TIMEOUT_FOR_CONTAINER_OPEN_MILLISECONDS, TimeUnit.MILLISECONDS);
}
}
信息activity
@Override
public void onStart() {
super.onStart();
TagUtils.pushOpenScreenEvent(this, "Informatie");
}
@Override
protected void onStop() {
super.onStop();
TagUtils.pushCloseScreenEvent(this, "Informatie");
}
TagUtils
/**
* Push an "openScreen" event with the given screen name. Tags that match that event will fire.
*/
public static void pushOpenScreenEvent(Context context, String screenName) {
DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
dataLayer.pushEvent("openScreen", DataLayer.mapOf(
"screenName", screenName,
"appVersion", appVersionName(context),
"operatingSystem", systemVersion()
));
}
/**
* Push a "closeScreen" event with the given screen name. Tags that match that event will fire.
*/
public static void pushCloseScreenEvent(Context context, String screenName) {
DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
dataLayer.pushEvent("closeScreen", DataLayer.mapOf(
"screenName", screenName,
"appVersion", appVersionName(context),
"operatingSystem", systemVersion()
));
}
/**
* Push a "scanProduct" event with the given screen name. Tags that match that event will fire.
*/
public static final String ACTION_PRODUCT_FOUND = "Product gevonden";
public static final String ACTION_PRODUCT_NOT_FOUND = "Product niet gevonden";
public static final String ACTION_PRODUCT_NOT_FOUND_CONNECTION_ISSUES = "Product niet opgehaald door verbindingsproblemen";
public static void pushScanProductEvent(Context context, String action, String code) {
DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
dataLayer.pushEvent("scanProduct", DataLayer.mapOf(
"Category", "Scan",
"Action", action,
"Label", code
));
}
清单
<activity
android:name="com.google.android.gms.tagmanager.PreviewActivity"
android:label="@string/app_name"
android:noHistory="true">
<intent-filter>
<data android:scheme="tagmanager.c.nl.everybodylikespenguins" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
</activity>
请注意我隐藏了容器文件 ID 和 数据 android:scheme="tagmanager.c.nl.everybodylikespenguins" 确实是应用程序验收版本的正确名称(Google 在他们的示例中也使用了这个)。
您似乎没有在 onResult 回调中调用 containerHolder.getContainer()。必须调用 getContainer 才能激活容器。