首页 > 解决方案 > Sitecore 9 JSS 活动和目标

问题描述

我刚刚开始使用 Sitecore 9.1 JSS。从外部站点,我对 Sitecore 项目进行 RESTful API 调用,例如

http://site/sitecore/api/layout/render/jss?item=/&sc_apikey={KEY}

我创建了一个活动并使用参数调用了上述内容:

https:/site/?sc_camp=<campaignid>&sc_lang=en

当我在体验分析仪表板中查看活动时,没有活动显示。(我确实重新索引)

我读了这篇文章:https ://jss.sitecore.com/docs/fundamentals/services/tracking并且还添加了补丁文件,如下所述:

<configuration>
    <sitecore>
        <settings>
             <setting name="Sitecore.JSS.TrackerServiceEnabled" value="true" />
        </settings>
    </sitecore>
</configuration>

我错过了什么?如何使用 Sitecore 9.1 JSS 触发活动(甚至目标)?

标签: sitecorejsssitecore9

解决方案


我从Gary Wenneker 的博客中得到了一个答案:

部署营销定义

在我们能够触发事件之前,我们必须部署营销定义。这是从控制面板(仪表板 -> 控制面板)完成的。单击部署营销定义链接。这将打开一个包含所有营销定义的窗口。全部选择它们并单击部署。这可能需要大约 15 分钟才能运行,所以不要认为您的系统会无响应,请不要不耐烦 :-)

Sitecore JSS 跟踪 API

Tracking API 可以通过向 Sitecore 布局服务发出请求来跟踪几件事情。它接受特定类型的数组(及其属性)

const trackingApiOptions = {
    host: config.sitecoreApiHost,
    querystringParams: {
        sc_apikey: config.sitecoreApiKey, 
    }, 
    fetcher: dataFetcher
}; 

const track = (event: string) => {
    return function (dispatch: any, getState: any) {
        trackingApi
            // note the events are an array - batching is supported
            .trackEvent([{ eventId: event }], trackingApiOptions)
            .then(() => {
                dispatch(artistSearchedClickedRequest);
            })
            .catch((error: any) => console.error(error));
    }
}

Tracking API Options 对象将提供主机、Sitecore API 密钥(通过查询字符串)和数据提取器。这个数据获取器将是 Axios 的一个简单实现,但您可以随意使用您想要的任何实现:

import axios from "axios";

export function dataFetcher(url, data) {
  return axios({
    url,
    method: data ? 'POST' : 'GET',
    data,
    withCredentials: true,
  });
}

推荐阅读