Skip to content

Instantly share code, notes, and snippets.

@BillCacy
Last active October 20, 2020 22:33
Show Gist options
  • Save BillCacy/e7fda8418f7165789766f853fec4d198 to your computer and use it in GitHub Desktop.
Save BillCacy/e7fda8418f7165789766f853fec4d198 to your computer and use it in GitHub Desktop.
Override of Sitecore.Analytics.Pipelines.StartTracking.ProcessQueryStringCampaign to prevent campaign triggering when the end date has passed.
using System;
using Sitecore.Abstractions;
using Sitecore.Analytics.Pipelines.StartTracking;
using Sitecore.Data;
namespace YOURNAMESPACE.Analytics.Pipelines.StartTracking
{
public class ProcessQueryStringCampaignEx : ProcessQueryStringCampaign
{
public ProcessQueryStringCampaignEx() : base() { }
public ProcessQueryStringCampaignEx(BaseLog logger, string campaignQueryStringKey) : base(logger, campaignQueryStringKey) { }
protected override void TriggerCampaign(string campaign)
{
var campaignDefinition = !ShortID.IsShortID(campaign) ? (!ID.IsID(campaign) ? FindCampaignByName(campaign) : FindCampaignById(new ID(campaign))) : FindCampaignById(ShortID.DecodeID(campaign));
if (campaignDefinition == null)
{
Logger.Error("Campaign not found: " + campaign, typeof(ProcessQueryStringCampaign));
}
else
{
// Don't trigger the campaign if it's expired.
// NEW
if (DateTime.UtcNow >= campaignDefinition.EndDate)
{
return;
}
// END NEW
var campaignId1 = CurrentTracker.Session.Interaction.CampaignId;
var trafficType1 = CurrentTracker.Session.Interaction.TrafficType;
CurrentTracker.CurrentPage.TriggerCampaign(campaignDefinition);
var campaignId2 = CurrentTracker.Session.Interaction.CampaignId;
var trafficType2 = CurrentTracker.Session.Interaction.TrafficType;
var nullable = campaignId1;
var campaignId3 = CurrentTracker.Session.Interaction.CampaignId;
if ((nullable.HasValue == campaignId3.HasValue ? (nullable.HasValue ? (nullable.GetValueOrDefault() != campaignId3.GetValueOrDefault() ? 1 : 0) : 0) : 1) != 0)
SubscribeCampaignIdRollbackToOnCurrentPageCancelled(campaignId2);
if (trafficType1 == trafficType2)
return;
SubscribeTrafficTypeRollbackToOnCurrentPageCancelled(trafficType2);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment