Sitecore Analytics obsahuje velké množství nástrojů pro marketingové oddělení. Jedním z nich je Experience Profil, do kterého lze vkládat data o návštěvníkovi vašeho webu. Jestliže otevřete nástroj Experince Profil, uvidíte následující obrazovku se seznamem všech návštěvníků vašeho webu.

experience-profil-dashoboard

Na obrázku výše vidíte, že web před 15 minutami navštívil uživatel John Doe a na webu strávil 4 minuty. Po kliknutí na jméno návštěvníka se dostaneme do jeho detailu a můžeme vidět více informací o návštěvníkovi nebo jeho návštěvách. My se v tomto článku zaměříme na osobní data návštěvníka.

experience-profile

Na obrázku výše vidíte detail návštěvníka John Doe. Můžeme zjistit jeho jméno a e-mailovou adresu. Pokud nám uživatel poskytne další data jako třeba adresu, datum narození nebo telefon, můžeme je také uložit k jeho profilu.

V našem příkladu si ukážeme uložení dat jména, příjmení a e-mailu. Představme si, že někde na našem webu existuje formulář, kam návštěvník vyplní jméno, příjmení a e-mail. Jakmile formulář odešle, data uložíme k jeho profilu.

experience-profil-form-data

Na obrázku výše vidíme, že uživatel vyplnil data do formuláře a formulář odeslal. V příkladu používáme anonymní okno prohlížeče, aby nám jednotlivé návštěvy nezkreslovali data u ostatních návštěvníků. Sitecore Analytics identifikuje návštěvníka pomocí cookies.

experience-profil-mongo-db

Na obrázku výše vidíme výpis dat z MongoDB, která slouží jako úložiště dat o uživateli. Jakmile vyprší uživateli session, data jsou propsána do MSSQL databáze a zaindexována do sitecore_analytics_index.

Teď si ukážeme, jak docílit propsání dat z formuláře do Experience Profilu. Nejdřív si musíme nareferencovat do našeho projektu všechny potřebné knihovny. Můžeme použít nuget balíčky (více informací zde). Budeme potřebovat tyto knihovny:

  • Sitecore.Analytics
  • Sitecore.Analytics.DataAccess
  • Sitecore.Analytics.Model
  • Sitecore.Mvc.Analytics
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult FillVisitorData(FillVisitorDataModel model, string command)
{
    if (command == FillVisitorDataModel.CommandValue)
    {
        if (ModelState.IsValid)
        {
            // Get contact
            var contact = Sitecore.Analytics.Tracker.Current.Contact;

            // Set identifier
            Sitecore.Analytics.Tracker.Current.Session.Identify(model.Email);

            // Get personal facet
            var personalFacet = contact.GetFacet<Sitecore.Analytics.Model.Entities.IContactPersonalInfo>("Personal");
            personalFacet.FirstName = model.FirstName;
            personalFacet.Surname = model.LastName;

            // Get email facet
            var emailFacet = contact.GetFacet<Sitecore.Analytics.Model.Entities.IContactEmailAddresses>("Emails");
            if (!emailFacet.Entries.Contains("Preferred"))
            {
                var emailEntry = emailFacet.Entries.Create("Preferred");
                emailEntry.SmtpAddress = model.Email;
                emailFacet.Preferred = "Preferred";
            }
            else
            {
                emailFacet.Entries["Preferred"].SmtpAddress = model.Email;
            }
        }
    }
    return View("/Views/Project/Boxes/Fill Visitor Data.cshtml", model);
}

Kódem výše zajistíme propsání dat z formuláře do profilu uživatele. Důležitou věcí, na kterou nesmíme zapomenout, je vložení kusu JS kódu, který zajistí identifikaci návštěvníka. V tagu <head> nesmí chybě tento kus kódu:

@Html.Sitecore().VisitorIdentification()

Pokud by tento kód chyběl, Sitecore by mohl návštěvníka identifikovat jako robota a nezobrazoval by ho v Experience Profilu.