云功能适用于自定义标签

时间:2018-01-29 10:08:39

标签: firebase google-cloud-functions

我想知道Google云端功能是否是以下方面的良好解决方案:

对于我们的应用,我们希望使用Google跟踪代码管理器,就像我们为我们的网站所做的那样。 事情是:在网站GTM上,我们可以使用javascript轻松实现自定义标签。 在一个不可能的应用程序中,可以调用已在应用程序内编译的函数。 但是这给灵活性带来了很多问题,例如:如果许多用户已经使用了应用程序,如果我们想要向第三方实施新的自定义标记,我们需要部署新版本。

我在考虑使用Google Cloud Functions作为答案,通过使用Javascript,我们可以在不重新部署的情况下实现新标记(以api调用的形式)。

问题是:如何在不重新部署的情况下调用此类函数?这是否适合这样做。

1 个答案:

答案 0 :(得分:1)

不幸的是,如果没有提前计划,这是不可能的,它可能会导致高LOE,而不仅仅是添加标签并发布新版本的应用程序。

您需要设置自己的应用,以便能够检测云功能返回的新标记,因为您尝试添加标记而不会发布新版本的应用。

然后,您需要想出一种方法将该标记与应用内的特定视图或位置绑定。此外,您需要在正确的位置使用正确的代码,以确保正确使用标记。

云存储和JavaScript实例可能会提供解决方案: 我将使用iOS作为示例,您可以使用JavaScriptCore.framework在应用程序中实现此动态功能。您可以在云存储中存储新的JavaScript函数。然后,您可以使用云功能从云存储中获取这些功能,也可以直接从SDK或URL访问云存储;你甚至不需要云功能来执行这项任务。

然后,您将在应用程序中评估这些脚本:

JSContext *context = [JSContext new];
NSString *jsFunctionText =
        @"var isValidNumber = function(phone) {"
        "    var myTag = 'new custom tag';"
        "    /* use JS Tag Manager SDK to deliver tag information."
        "}";
[context evaluateScript:jsFunctionText];

这只能解决部分问题,因为您需要能够将上下文添加到应该从中拉出和调用函数的位置。因此,您需要预测未来的需求,并可能过度设计解决方案。

我知道这不是一个可靠的答案,但这不是一个简单的问题需要解决。

相关问题