Android 版跟踪代码管理器的高级配置
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
要扩展 Google 跟踪代码管理器的功能,您可以添加函数调用变量和函数调用代码。借助函数调用变量,您可以捕获预注册函数的调用所返回的值。借助函数调用代码,您可以执行预注册函数(例如,针对跟踪代码管理器中的代码模板目前不支持的其他衡量和再营销工具触发命中)。
若要通过函数调用添加自定义代码或自定义变量,请执行以下步骤:
实现一个可以扩展 com.google.android.gms.tagmanager.CustomTagProvider
或 com.google.android.gms.tagmanager.CustomVariableProvider
的类:
import android.support.annotation.Keep;
import java.util.Map;
@Keep
public class HighScoreProvider implements com.google.android.gms.tagmanager.CustomVariableProvider {
@Override
public String getValue(Map<String, Object> map) {
synchronized (HighScoreProvider.class) {
return ((Long)sHighScore).toString();
}
}
private static long sHighScore = 0;
public static void recordScore(long score) {
synchronized (HighScoreProvider.class) {
sHighScore = Math.max(score, sHighScore);
}
}
}
如果您使用的是 ProGuard,请确保不对类名称和方法进行混淆处理。使用 Keep 注释进行指定。
在 Google 跟踪代码管理器的网页界面中,使用完全限定的类名称来设置代码和变量:

如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2023-10-27。
[null,null,["最后更新时间 (UTC):2023-10-27。"],[[["\u003cp\u003eFunction Call variables enable capturing values from pre-registered function calls, extending Google Tag Manager's capabilities.\u003c/p\u003e\n"],["\u003cp\u003eFunction Call tags allow execution of pre-registered functions, such as triggering hits for unsupported measurement tools.\u003c/p\u003e\n"],["\u003cp\u003eCustom tags and variables can be added by implementing a class extending \u003ccode\u003eCustomTagProvider\u003c/code\u003e or \u003ccode\u003eCustomVariableProvider\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eProGuard users should prevent obfuscation of custom class names and methods using the Keep annotation.\u003c/p\u003e\n"],["\u003cp\u003eWithin the Google Tag Manager interface, use the fully qualified class name to configure the custom tags and variables.\u003c/p\u003e\n"]]],["Function Call variables and tags extend Google Tag Manager's functionality. Function Call variables capture values from pre-registered function calls, while Function Call tags execute pre-registered functions. To add custom tags/variables, implement a class extending `CustomTagProvider` or `CustomVariableProvider`. Use the `@Keep` annotation to prevent obfuscation with ProGuard. Finally, configure tags and variables in Google Tag Manager's web interface using the fully qualified class name.\n"],null,["# Advanced Android Tag Manager configuration\n\nTo extend the functionality of Google Tag Manager, you can add Function Call\nvariables and Function Call tags. Function Call variables let you capture the\nvalues returned by calls to pre-registered functions. Function Call tags let you\nexecute pre-registered functions (e.g., to trigger hits for additional\nmeasurement and remarketing tools that are not currently supported with tag\ntemplates in Tag Manager).\n\nAdd custom tags and variables\n-----------------------------\n\nTo add a custom tag or custom variable with a Function Call:\n\n1. Implement a class that extends\n `com.google.android.gms.tagmanager.CustomTagProvider` or\n `com.google.android.gms.tagmanager.CustomVariableProvider`:\n\n import android.support.annotation.Keep;\n import java.util.Map;\n\n @Keep\n public class HighScoreProvider implements com.google.android.gms.tagmanager.CustomVariableProvider {\n @Override\n public String getValue(Map\u003cString, Object\u003e map) {\n synchronized (HighScoreProvider.class) {\n return ((Long)sHighScore).toString();\n }\n }\n\n private static long sHighScore = 0;\n public static void recordScore(long score) {\n synchronized (HighScoreProvider.class) {\n sHighScore = Math.max(score, sHighScore);\n }\n }\n }\n\n2. If you use [ProGuard](https://developer.android.com/tools/help/proguard.html), make sure that the class names and methods are not\n obfuscated. Use the Keep annotation to specify this.\n\n3. In Google Tag Manager's web interface, use the fully qualified class name\n to set up tags and variables:"]]