我有一些附属网站,它们链接到我的Sitecore网站。
我为这些附属网站创建了一个自定义通道。我想做的是映射这些访问者到自定义通道,基于参考的HTTP头,所以我可以个性化基于通道的组件。
Sitecore在我看来并没有很好地记录这一部分,而且我在互联网上也找不到太多。
我该怎么做?我需要编程我自己的管道,还是这是默认功能在Sitecore?
编辑:对于interactionChannelMappings
应该有一个方法以下是Sitecore.Social.config
文件
<interactionChannelMappings>
<!-- 41-91-05: Online/Social Community/Facebook Social Community -->
<channel channelId="{A9F2D058-95A5-4461-B1E5-8502D2303AF1}">
<!-- Facebook -->
<channelMapping urlReferrerHost="www.facebook.com" />
<!-- Facebook for mobile -->
<channelMapping urlReferrerHost="m.facebook.com" />
<!-- Facebook's Link Shim -->
<channelMapping urlReferrerHost="l.facebook.com" />
<!-- Facebook's Link Shim for mobile -->
<channelMapping urlReferrerHost="lm.facebook.com" />
</channel>
</interactionChannelMappings>
看起来像通配符。但我到底在哪里把这个(我不希望它在Sitecore.Social.config
文件。我还需要什么代码?我在Sitecore网站上找不到任何文档除了这个
将访问映射到渠道的一种方法是使用活动,但这需要链接包含活动标识符。
另一种方法是使用API设置当前交互的ChannelId。这可以在管道中完成,正如您已经提到的,以确保每个请求都完成(实际上会话的第一个请求就足够了)。
也许还有其他方法…
编辑使用API:像这样创建一个类,并将其添加到CreateVisit管道中,在默认的SetChannel之后(使用配置补丁)。
public class SetChannel : CreateVisitProcessor
{
public override void Process(CreateVisitArgs args)
{
Guid channelID = ... // Get your channel ID
args.Interaction.ChannelId = channelID;
}
}
Edit2: interactionChannelMappings确实可以是一个选项。我自己从来没有尝试过,但是通过使用配置补丁来添加你的通道和它们的映射应该是相当容易的。当查看读取配置时执行的代码时,它应该做你想做的(即根据引用器设置通道)。因此不需要定制代码。更多关于配置补丁的信息可以在这里找到:https://community.sitecore.net/technical_blogs/b/sitecorejohn_blog/posts/all-about-web-config-include-files-with-the-sitecore-asp-net-cms。如果有疑问,用/sitecore/admin/showconfig.aspx
检查结果
这就是我要找的:创建自己的通道项,例如:
/sitecore/system/Marketing Control Panel/Taxonomies/Channel/Online/Affiliates/Site2
创建自己的流量类型:
/sitecore/system/Settings/Analytics/Traffic Type/Affiliate
添加通道映射到Sitecore.Analytics.Compatibility.config:
<add trafficType="TRAFFIC-ID" channel="{CHANNEL-ITEM-GUID}" />
创建一个新的.config
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<social>
<interactionChannelMappings>
<channel channelId="{CHANNEL-ITEM-GUID}">
<!-- affiliate wildcards -->
<channelMapping urlReferrerHost="site2.com" />
</channel>
</interactionChannelMappings>
</social>
</sitecore>
</configuration>
来自site2.com的访问现在应该自动映射到新创建的自定义通道