4
votes

Assume I have Sitecore website A and an external site B. They use totally different top domains. And both use http protocols.

I added FXM from Site A onto Site B.

Setup a goal C to be triggered when user visits Site B. In Site A, setup if goal C is triggered, display D on the Site A homepage.

My question is that, if user visits Site A and Site B in one browser. Should user see D when he/she refreshes Site A after visiting Site B?

I tested this: D doesn't display. But I am not sure if it's Sitecore doesn't support it or I set it up wrong.

Basically it comes down to if Sitecore can track the same visitor under different domains.(see below)

Couldn't find relevant information in Sitecore documentations, it mostly talk about only on external sites.

Thanks in advance!

-----------------Some Updates-------------------

I found that the cookie "sc_ext_contact" under Site B domain and "SC_ANALYTICS_GLOBAL_COOKIE" under Site A domain have the same value. So Sitecore can identify the same visitor, it's the goal that is triggered on external site is not being used on Site A?

I also tested that, if goal C is used to define a customization for E to be displayed on Site B. When Site B is visited, E is displayed on Site B.

1
Which browser are you using?If the external site and the Sitecore site are hosted on different domains: For Chrome and Firefox – FXM can successfully track the same contact across both websites. For Safari and iOS or any version of IE – FXM assigns each contact a unique contact ID per website. browser_and_session_compatibility_in_fxm - navincumar
@navincumar I am using Chrome. I can see that the cookies are the same. Also if I open Sitecore B first, then Site A, cookies from Site A will be different from Site B's but they become the same after i refresh Site B a few times. - zhanke
Make sure that you use "where the specific goal was triggered during a past or current interaction and when the number of elapsed days compares to number and when the past number of interactions compares to number" instead of "where the specific goal was triggered during the current visit". Goal will be triggered to contact, however it will be triggered in different interaction - Anton
Events are tracked in the session, but are not written back to the analytics store until the session ends. It seems to me that Site A won't have the visit information until that happens. Have you tested that scenario? - Nathan Hase
You can try to write your own rule. Use Sitecore.Analytics.Data.LoadContactReadOnly method to load contact. It should contain not only current session, it should contain all your session. Then you could look for Goals in contacts iterations and on found trigger condition. - Anton

1 Answers

1
votes

With the help from Sitecore Support and a bit digging. I've got the following answers:

No, they are not shared by default.

However you can force Sitecore to share the sessions by setting "FXM.ShareSessionsWhenPossible" to true. It's in Sitecore.FXM.config file.

But it comes with a warning:

<!-- FXM SHARE SESSIONS WHEN POSSIBLE
    This provides the option to record visits across multiple sites made in the same browser session, to be 
    recorded in the same analytics interaction.  This behavior is limited by the same restrictions as tracking 
    contacts across sites, so on Safari and IE 8 & 9 page visits cannot be recorded in the same interaction.  
    The analytics data model does not officially support visits to multiple sites within the same interaction, 
    so turning this setting on is not recommended.
  -->

The restriction is referring to this URL: https://doc.sitecore.net/sitecore_experience_platform/digital_marketing/federated_experience_manager/diagrams/browser_and_session_compatibility_in_fxm

Sitecore elaborated that warning a bit more: every interaction has a property SiteName, it can't take multiple values. So when this is enabled and visit is multi site, it will only be recorded as one site. Therefore analytics reports may be inaccurate.

I am not sure if it affects any other things as well. But for interactions, this is very true. Basically the site will be set to the first site that's visited during the session.

When it's Sitecore Site, it's set in

Sitecore.Analytics.Pipelines.CreateVisits.InitializeWithRequestData

When it's FXM, it's set in

Sitecore.FXM.Pipelines.Tracking.TrackPageVisit.InitializeContextSiteProcessor

Goals from different sites are recorded under one interaction too, but the goal conversion table still display them with the correct site name, so I guess these site data come from other sources, maybe during aggregation process.

Therefore, technically it's not supported by default, but it can be by changing settings, but with risks of inaccurate analytics reports.