2016-05-05 8 views
0

Ich benutze Sitecore.Analytics.Tracker für Personalisierungen auf meiner Website. Ich habe die Möglichkeit für den Benutzer hinzugefügt, seine Postleitzahl manuell zu ändern, was ändert, was sie in bestimmten Teilen der Site sehen. Die zipcode mit Tracker.CurrentVisit.PostalCode abgerufenSitecore Analytics Tracker CurrentVisit Daten werden zurückgesetzt (C#, ASP.Net)

public string GetCurrentZipCode() 
{ 
    return Tracker.CurrentVisit.PostalCode.IsNotNullOrEmpty() ? Tracker.CurrentVisit.PostalCode : String.Empty; 
} 

public void SetCurrentZipCode(string zip) 
{ 
    Tracker.CurrentVisit.PostalCode = zip; 

} 

Das funktioniert aber ist heikel; Hin und wieder, wenn ich die Seite neu lade, wird die Postleitzahl wieder auf den Standard zurückgesetzt, was ich entdeckt habe, weil manchmal, wenn die Seite PostalCode geladen hat, wieder in eine leere Zeichenfolge geändert wurde.

Warum wird Tracker.CurrentVisit.PostalCode zurückgesetzt? Ist das eine Einstellung in Sitecore? Wie kann ich es stoppen? Idealerweise sollte der Wert von PostalCode für die gesamte Sitzung bestehen bleiben.

+0

Welche Sitecore-Version verwenden Sie? –

Antwort

0

Der Kontakt verfügt über eine Adressengruppe, die zum Speichern dieser Informationen verwendet werden kann.

Sitecore.Analytics.Model.config:

<facets> 
    <facet name="Addresses" contract="Sitecore.Analytics.Model.Entities.IContactAddresses, Sitecore.Analytics.Model" /> 
</facets> 

See IContactAddresses und iAddress Einzelheiten zu diesen Schnittstellen. IContactAddresses hat eine Entities-Auflistung, die eine Liste von IAddress-Objekten darstellt.

Zugriff auf die Adressdaten für den aktuellen Kontakt:

private IContactAddresses _addressInfo; 

protected IContactAddresses AddressInfo 
{ 
    get 
    { 
     return _addressInfo ?? (_addressInfo = Tracker.Current.Contact.GetFacet<IContactAddresses>("Addresses")); 
    } 
} 

können Sie dieses Objekt erhalten Sie die aktuelle Adresse Informationen darstellen und aktualisieren, die verschiedenen Eigenschaften, bis die Benutzersitzung beendet, dass die Daten im Speicher zu speichern. Zu diesem Zeitpunkt werden die Daten zurück in xDB geschrieben, damit Sie sie zu einem späteren Zeitpunkt wiederherstellen können.

+0

Aber warum funktioniert CurrentVisit.PostalCode nicht? –

+0

Auch ich kann Ihre Methode nicht verwenden, weil Tracker nicht 'Current' hat –

+0

Verwenden Sie Sitecore.Analytics; ? Es ist tatsächlich Sitecore.Analytics.Tracker.Current. Wenn Ihr Tracker nicht verfügbar ist, stellen Sie sicher, dass Analytics aktiviert ist:

Verwandte Themen