protected void LogAndAddReason(string reason, bool displayed, List <SwrveQaUserCampaignInfo> qaCampaignInfoList)
 {
     if (SwrveQaUser.Instance.loggingEnabled && qaCampaignInfoList != null)
     {
         SwrveQaUserCampaignInfo campaignInfo = null;
         if (this is SwrveConversationCampaign)
         {
             SwrveConversationCampaign conversationCampaign = (SwrveConversationCampaign)this;
             campaignInfo = new SwrveQaUserCampaignInfo(Id, conversationCampaign.Conversation.Id, conversationCampaign.GetCampaignType(), displayed, reason);
         }
         else if (this is SwrveInAppCampaign)
         {
             SwrveInAppCampaign inAppCampaign = (SwrveInAppCampaign)this;
             campaignInfo = new SwrveQaUserCampaignInfo(Id, inAppCampaign.Messages[0].Id, inAppCampaign.GetCampaignType(), displayed, reason);
         }
         else if (this is SwrveEmbeddedCampaign)
         {
             SwrveEmbeddedCampaign embeddedCampaign = (SwrveEmbeddedCampaign)this;
             campaignInfo = new SwrveQaUserCampaignInfo(Id, embeddedCampaign.Message.Id, embeddedCampaign.GetCampaignType(), displayed, reason);
         }
         if (campaignInfo != null)
         {
             qaCampaignInfoList.Add(campaignInfo);
         }
     }
     SwrveLog.Log(string.Format("{0} {1}", this, reason));
 }