我正试图在我的Angular4应用程序中跟踪我的页面视图,特别是使用Adobe Analytics。
我在用语言。
首先,我在index.html页面中添加了必要的adobe登台脚本
<script src="//assets.adobedtm.com/ab4bae3236ee9df67d8ccdffde34299268b1c40b/satelliteLib-760b49f02b6b0eb2f709fccf152b67359e5ee4e1-staging.js"></script>
然后在我的ngmodule中启用提供者。
import { Angulartics2Module, Angulartics2AdobeAnalytics } from 'angulartics2';
@NgModule({
declarations: [
AppComponent
],
imports: [
Angulartics2Module.forRoot([Angulartics2AdobeAnalytics]),
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
然后在根组件中导入提供者。
import { Angulartics2AdobeAnalytics } from 'angulartics2';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
constructor(private angulartics2AdobeAnalytics:Angulartics2AdobeAnalytics){}
我试图在我的组件(例如仪表板)的代码中跟踪事件,但这些值没有通过。
import { Angulartics2 } from 'angulartics2';
constructor(
private angulartics2: Angulartics2
) {
this.angulartics2.eventTrack.next({
properties: {
"siteLanguage": "English",
"pageCategory": "Landing dashboard",
"pageSubSection1": "",
"pageSubSection3": "",
"domainName": "www.application.co.za",
"pageSubSection2": "",
"pageSubSection5": "",
"pageSubSection4": "",
"pageName": "Landing dashboard",
"contentType": "Home"
},
});
}
关于如何做到这一点,有什么建议吗?
虽然这不是一个解决方案,但显式地将其添加到我的索引文件中确实有效。
<script>
var dataLayer = {
"siteLanguage": "English",
"pageCategory": "Landing dashboard",
"pageSubSection1": "",
"pageSubSection3": "",
"domainName": "www.application.co.za",
"pageSubSection2": "",
"pageSubSection5": "",
"pageSubSection4": "",
"pageName": "Landing dashboard",
"contentType": "Home"
};
</script>
亲切问候
最佳答案
我知道一点角度2,我知道Adobe分析非常好,但我不熟悉角度学,但我会看看我是否可以帮助。
任何时候Adobe Analytics的实现都不起作用,这至少是三件事之一:
AppMeasurement和“s”对象(通常保存在“s_code.js”文件中,或由DTM为完全DTM实现自动生成)设置不正确,或不可访问。
像s.pagename这样的变量或像s.evar1这样的自定义变量没有被正确设置(尽管这不应该阻止一个变量被完全设置。
您没有在正确的时间触发s.t(以跟踪页面视图)或s.tl(对于您希望跟踪的不应与特定页面视图关联的内容)。
我可以看到angularticsadadobeanalytics如何实现2(它会自动执行pagename,您将使用setuserproperties来处理自定义变量)以及它如何实现3(pagetrack和eventtrack)。我不确定它想让你如何设置这个项目或者托管一个S_u代码。
它看起来确实像是用来代替DTM的角度学,而不是像你正在尝试的那样放在它旁边(角度学就像一个迷你标签管理系统本身)。我不认为DTM在做任何有助于语言的事情。
我无法从angularticsadobeanalytics文档中找到的是,您应该把s嫒u代码放在哪里。DTM确实创建了Adobe Analytics Library/S_代码文件(例如,您的代码文件保存在http://assets.adobedtm.com/ab4bae3236ee9df67d8ccdffde34299268b1c40b/s-code-contents-d284ea5dda8dda4834d869c1d6edac2867ea95ac-staging.js),但它的作用域是仅在DTM中可访问,因此它对您当前的设置毫无帮助(请参见https://www.digitaldatatactics.com/index.php/2016/01/15/how-to-get-a-global-s-object-in-dtm/了解如何让DTM创建可全局使用的S_代码)。
可能你需要从你的解决方案中删除DTM,然后弄清楚角度学想要如何设置“S”对象。也许你只需要在DTM库中放置一个S_代码文件(参见https://marketing.adobe.com/resources/help/en_US/sc/implement/impl_js_file.html中引用的https://github.com/angulartics/angulartics2/tree/master/src/lib/providers/adobeanalytics,这使我认为他们打算让你使用它),那么你就不需要让DTM很好地处理角度学了。
如果你想走严格的DTM(非角度)路线,我已经在一个角度应用程序中得到了工作-它在https://github.com/jkunz/pocketSDR/tree/master/src但请不要评判我的角度技能-这是一个学习项目:)我添加了我的DTM库嵌入代码到我的index.html(就像你一样),然后直接与DTM的交互js object(satellite)在整个应用程序中设置DTM数据元素(包含我的变量值-请参见第2点)并触发DTM直接调用规则以在正确的时间(第3点)触发信标。
如果我不关心设置自定义变量,只想让它在每次视图更改时都保持最低限度的页面视图跟踪,我可以将dtm库放在index.html上,然后设置一个基于事件的规则,查找类似locationchange的内容(https://www.digitaldatatactics.com/index.php/2016/04/20/how-do-i-use-dtm-for-a-single-page-app/有相关信息)。