Sto sperando che non ho ottenuto la parte sbagliata del bastone qui (come sempre la documentazione Sitecore è doloroso!)Posso accedere ancora a un aspetto del contatto sitecore una volta che la sessione è stata scaricata?
volevo un modo per memorizzare le informazioni contro un visitatore, io sono abbastanza nuovo per Sitecore , ma la soluzione contact facets seemed the ideal, praticamente implementata parola per parola dal link sopra, fino a quando non ha colpito la produzione, ne sono rimasto abbastanza soddisfatto. Quando ho memorizzato le informazioni che persisteva, ho potuto leggere:
public IMpmVisitorFacet GetMpmVisitorFacet()
{
return _contact.GetFacet<IMpmVisitorFacet>(_MPMVisitorConfigName);
}
e impostare informazioni e tutto sembrava fantastico. Potevo anche vedere il set del sitecore SC_ANALYTICS_GLOBAL_COOKIE
, tutto sembrava meraviglioso. Poi ho fatto alcuni test più approfonditi ...
Il problema sembra essere che i dati non durano a lungo. Se metto qualche informazione nel facet, questa si aggirerà per circa un'ora (posso chiudere il mio browser, guardare altri siti, ecc. Ecc.) E potrò accedervi ma dopo una "quantità di tempo "tutto va via.
Dopo aver rivisitato la documentazione (ho ho detto che non sono molto buono) ho notato un avvertimento in una frase che non ho visto prima:
Beh, posso creare un'altra pagina web form che legge solo il numero impiegato. Questo mi mostrerà che i dati della faccetta di contatto vengono memorizzati nella memoria nella memoria. Ma che dire dello storage permanente?
Aspetta, ho pensato che fosse un deposito permanente ?! Quindi l'esempio mostra un codice per leggere il "facet".
var contact = Tracker.Current.Contact;
var data = contact.GetFacet<IEmployeeData>("Employee Data");
data.EmployeeId = "ABC123";
.....
<p>Employee data contact facet updated.</p>
<p>Contact ID: <b><%=contact.ContactId.ToString()%></b></p>
<p>Employee #: <b><%=data.EmployeeId%></b></p>
Ma questo aspetto sembra esistere solo per un breve periodo di tempo. Si passa quindi:
Per motivi di prestazioni Sitecore scrive solo i dati di contatto per xDB quando le ends.This sessione significa che se mi guardo MongoDB ...
si passa poi a mostrare i dati nella sua nuova e brillante implementazione di mongoDb alla moda. Ma a cosa serve in mongo se non riesco ad accedere e usare le informazioni in modo programmatico!
Quindi questo solleva la questione come accedo a queste informazioni di contatto una volta che la sessione è stata abbandonata?
cioè utente accede il mio sito -> aggiungo alcune informazioni nel loro aspetto contatto -> tornano il giorno successivo -> voglio leggere le informazioni ho aggiunto in precedenza
Ci sono diversi altri documenti che parlare di accesso a questi dati nel experience profile, a index into Lucene e in the Experience platform (perché hanno due prodotti con quasi lo stesso nome ?!) ma nulla da dire come accedere a queste informazioni nel sito web stesso, nel codice.
Per aggiungere ai commenti per Dmytro Shevchenko:
- posso vedere il mio un utente nel "profilo di esperienza" e posso vedere i miei visite al sito.
- So che questo utente ha avuto le mie informazioni aggiuntive sul facet perché è stato attivato il codice .
- riesco a trovare il mio utente (dal id tolto la stringa di query nel pagina del profilo esperienza) nel Mongo Db
- Ma quando guardo l'utente nella MongoDB le informazioni supplementari non è lì.
- alcuni dei record di contatto avere questi dati, ma gli altri non
Così sembra essere un problema con la scrittura le nuove informazioni per mongo ... Qualcuno ha qualche aiuto o simile esperienza di Questo?
* "come accedere a queste informazioni di contatto una volta che la sessione è stata abbandonata?" * - è necessario accedere a un contatto con le sue facce * esterne * di una sessione Web (ad esempio da un servizio in background)? O hai bisogno di accedere alle sfaccettature del contatto in una nuova sessione web dello stesso contatto? –
Nuova sessione Web dello stesso contatto – Liam
In questo caso, i dati dovrebbero essere lì. Sei sicuro che sia lo stesso contatto esatto con cui stai lavorando in un'altra sessione web? Controlla 'ContactID'. –