Sitefinity персонализация |Внешние страницы sitefinity - PullRequest
0 голосов
/ 22 мая 2018

Я хочу персонализировать блоки контента sitefinity, которые находятся за пределами среды sitefinity, т. Е. Они являются встроенными блоками (блоками, которые работают на sitefinity с использованием API) на странице веб-сайта (страница, которая не является страницей sitefinity)

Мой вариант использования персонализации основан на прошлой истории просмотров потребителя.

1 Ответ

0 голосов
/ 14 июня 2018

В лучшем случае было бы использовать Cloud Experience Cloud (DEC) и персонажи, чтобы увидеть, попадает ли пользователь в персону (настроенную в соответствии с вашими конкретными правилами).Вы можете использовать javascript SDK для регистрации взаимодействий (просмотров страниц ...), а также использовать SDK, чтобы проверить, к какой персоне они относятся, а затем захватить другой блок контента.

https://docs.sitefinity.com/dec/api-v2/for-developers-leverage-the-javascript-sdk-to-capture-client-side-behavior

Надеюсь, что два примера методов помогут вам начать работу.

var sendLoginInteraction = function () {
    global.DecClient.writeInteraction({
        S: CurrentUser.Id,
        P: 'View',
        O: 'Page Name'
    });

    global.DecClient.writeSubjectMetadata(CurrentUser.Id, {
        Email: CurrentUser.Email
    });

    global.DecClient.flushData();
};

var checkIfUserIsInPersona = function () {
    var personaIds = [ManagerPersonaId];
    global.DecClient.isInPersonas(personaIds, CurrentUser.Id).then(function (data) {
        var personas = data.toJSON().items;
        if (personas.length) {
            personas.forEach(function (persona) {
                if (persona.Id === ManagerPersonaId) {
                    isInManagerPersona = true;
                    personalizationReportSegment = 'IT Manager';
                }
            }, this);
        }
    });
...