Search code examples
sitecoresitecore8sitecore-xdbsitecore-fxm

Can you use goals from FXM external Sitecore to customize Sitecore site?


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.


Solution

  • 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.