86 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C#
		
	
	
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
 | 
						|
namespace com.adjust.sdk
 | 
						|
{
 | 
						|
    public class AdjustAttribution
 | 
						|
    {
 | 
						|
        public string adid { get; set; }
 | 
						|
        public string network { get; set; }
 | 
						|
        public string adgroup { get; set; }
 | 
						|
        public string campaign { get; set; }
 | 
						|
        public string creative { get; set; }
 | 
						|
        public string clickLabel { get; set; }
 | 
						|
        public string trackerName { get; set; }
 | 
						|
        public string trackerToken { get; set; }
 | 
						|
        public string costType { get; set; }
 | 
						|
        public double? costAmount { get; set; }
 | 
						|
        public string costCurrency { get; set; }
 | 
						|
        // Android only
 | 
						|
        public string fbInstallReferrer { get; set; }
 | 
						|
 | 
						|
        public AdjustAttribution() {}
 | 
						|
 | 
						|
        public AdjustAttribution(string jsonString)
 | 
						|
        {
 | 
						|
            var jsonNode = JSON.Parse(jsonString);
 | 
						|
            if (jsonNode == null)
 | 
						|
            {
 | 
						|
                return;
 | 
						|
            }
 | 
						|
 | 
						|
            trackerName = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyTrackerName);
 | 
						|
            trackerToken = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyTrackerToken);
 | 
						|
            network = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyNetwork);
 | 
						|
            campaign = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyCampaign);
 | 
						|
            adgroup = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyAdgroup);
 | 
						|
            creative = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyCreative);
 | 
						|
            clickLabel = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyClickLabel);
 | 
						|
            adid = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyAdid);
 | 
						|
            costType = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyCostType);
 | 
						|
            try
 | 
						|
            {
 | 
						|
                costAmount = double.Parse(AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyCostAmount),
 | 
						|
                System.Globalization.CultureInfo.InvariantCulture);
 | 
						|
            }
 | 
						|
            catch (Exception)
 | 
						|
            {
 | 
						|
                // attribution response doesn't contain cost amount attached
 | 
						|
                // value will default to null
 | 
						|
            }
 | 
						|
            costCurrency = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyCostCurrency);
 | 
						|
            fbInstallReferrer = AdjustUtils.GetJsonString(jsonNode, AdjustUtils.KeyFbInstallReferrer);
 | 
						|
        }
 | 
						|
 | 
						|
        public AdjustAttribution(Dictionary<string, string> dicAttributionData)
 | 
						|
        {
 | 
						|
            if (dicAttributionData == null)
 | 
						|
            {
 | 
						|
                return;
 | 
						|
            }
 | 
						|
 | 
						|
            trackerName = AdjustUtils.TryGetValue(dicAttributionData, AdjustUtils.KeyTrackerName);
 | 
						|
            trackerToken = AdjustUtils.TryGetValue(dicAttributionData, AdjustUtils.KeyTrackerToken);
 | 
						|
            network = AdjustUtils.TryGetValue(dicAttributionData, AdjustUtils.KeyNetwork);
 | 
						|
            campaign = AdjustUtils.TryGetValue(dicAttributionData, AdjustUtils.KeyCampaign);
 | 
						|
            adgroup = AdjustUtils.TryGetValue(dicAttributionData, AdjustUtils.KeyAdgroup);
 | 
						|
            creative = AdjustUtils.TryGetValue(dicAttributionData, AdjustUtils.KeyCreative);
 | 
						|
            clickLabel = AdjustUtils.TryGetValue(dicAttributionData, AdjustUtils.KeyClickLabel);
 | 
						|
            adid = AdjustUtils.TryGetValue(dicAttributionData, AdjustUtils.KeyAdid);
 | 
						|
            costType = AdjustUtils.TryGetValue(dicAttributionData, AdjustUtils.KeyCostType);
 | 
						|
            try
 | 
						|
            {
 | 
						|
                costAmount = double.Parse(AdjustUtils.TryGetValue(dicAttributionData, AdjustUtils.KeyCostAmount),
 | 
						|
                System.Globalization.CultureInfo.InvariantCulture);
 | 
						|
            }
 | 
						|
            catch (Exception)
 | 
						|
            {
 | 
						|
                // attribution response doesn't contain cost amount attached
 | 
						|
                // value will default to null
 | 
						|
            }
 | 
						|
            costCurrency = AdjustUtils.TryGetValue(dicAttributionData, AdjustUtils.KeyCostCurrency);
 | 
						|
            fbInstallReferrer = AdjustUtils.TryGetValue(dicAttributionData, AdjustUtils.KeyFbInstallReferrer);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |