190 lines
		
	
	
		
			9.8 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			190 lines
		
	
	
		
			9.8 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System.Collections; | ||
|  | using System.Collections.Generic; | ||
|  | using UnityEngine; | ||
|  | using AnyThinkAds.ThirdParty.LitJson; | ||
|  | 
 | ||
|  | namespace AnyThinkAds.Api | ||
|  | { | ||
|  |     public class ATCallbackInfo | ||
|  |     { | ||
|  | 
 | ||
|  |         public readonly int network_firm_id; | ||
|  |         public readonly string adsource_id; | ||
|  |         public readonly int adsource_index; | ||
|  |         public readonly double adsource_price; | ||
|  |         public readonly int adsource_isheaderbidding; | ||
|  | 
 | ||
|  |         public readonly string id; | ||
|  |         public readonly double publisher_revenue; | ||
|  |         public readonly string currency; | ||
|  |         public readonly string country; | ||
|  |         public readonly string adunit_id; | ||
|  | 
 | ||
|  |         public readonly string adunit_format; | ||
|  |         public readonly string precision; | ||
|  |         public readonly string network_type; | ||
|  |         public readonly string network_placement_id; | ||
|  |         public readonly int ecpm_level; | ||
|  | 
 | ||
|  |         public readonly int segment_id; | ||
|  |         public readonly string scenario_id; | ||
|  |         public readonly string scenario_reward_name; | ||
|  |         public readonly int scenario_reward_number; | ||
|  | 
 | ||
|  |         public readonly string sub_channel; | ||
|  |         public readonly string channel; | ||
|  |         public readonly Dictionary<string, object> custom_rule; | ||
|  |          | ||
|  |         public readonly Dictionary<string, object> ext_info; | ||
|  |         public readonly Dictionary<string, object> user_load_extra_data; | ||
|  |         public readonly int abtest_id; | ||
|  | 
 | ||
|  |         public readonly string reward_custom_data; | ||
|  |         public readonly int placement_type; | ||
|  |         public readonly string shared_placement_id; | ||
|  |         public readonly string bid_floor; | ||
|  |         public readonly int dismiss_type; | ||
|  |         public readonly int ad_source_type; | ||
|  |         public readonly string ad_source_custom_ext; | ||
|  |         public readonly string network_name; | ||
|  |         public readonly string show_custom_ext; | ||
|  |         public readonly string e_c; | ||
|  |         public readonly int s_id; | ||
|  | 
 | ||
|  |         private string callbackJson; | ||
|  | 
 | ||
|  |         public ATCallbackInfo(string callbackJson) | ||
|  |         { | ||
|  |             try | ||
|  |             { | ||
|  |                 this.callbackJson = callbackJson; | ||
|  | 
 | ||
|  | 
 | ||
|  |                 JsonData jsonData = JsonMapper.ToObject(callbackJson); | ||
|  | 
 | ||
|  |                 network_firm_id = int.Parse(jsonData.ContainsKey("network_firm_id") ? jsonData["network_firm_id"].ToString() : "0"); | ||
|  |                 adsource_id = jsonData.ContainsKey("adsource_id") ? (string)jsonData["adsource_id"] : ""; | ||
|  |                 adsource_index = int.Parse(jsonData.ContainsKey("adsource_index") ? jsonData["adsource_index"].ToString() : "-1"); | ||
|  |                 adsource_price = double.Parse(jsonData.ContainsKey("adsource_price") ? jsonData["adsource_price"].ToString() : "0"); | ||
|  | 
 | ||
|  |                 adsource_isheaderbidding = 0; | ||
|  |                 if (jsonData.ContainsKey("adsource_isheaderbidding")) { | ||
|  |                     adsource_isheaderbidding = int.Parse(jsonData.ContainsKey("adsource_isheaderbidding") ? jsonData["adsource_isheaderbidding"].ToString() : "0"); | ||
|  |                 } | ||
|  | 
 | ||
|  |                 id = jsonData.ContainsKey("id") ? (string)jsonData["id"] : ""; | ||
|  |                 publisher_revenue = double.Parse(jsonData.ContainsKey("publisher_revenue") ? jsonData["publisher_revenue"].ToString() : "0"); | ||
|  |                 currency = jsonData.ContainsKey("currency") ? (string)jsonData["currency"] : ""; | ||
|  |                 country = jsonData.ContainsKey("country") ? (string)jsonData["country"] : ""; | ||
|  | 
 | ||
|  |                 adunit_format = jsonData.ContainsKey("adunit_format") ? (string)jsonData["adunit_format"] : ""; | ||
|  |                 adunit_id = jsonData.ContainsKey("adunit_id") ? (string)jsonData["adunit_id"] : ""; | ||
|  | 
 | ||
|  |                 precision = jsonData.ContainsKey("precision") ? (string)jsonData["precision"] : ""; | ||
|  | 
 | ||
|  |                 network_type = jsonData.ContainsKey("network_type") ? (string)jsonData["network_type"] : ""; | ||
|  | 
 | ||
|  |                 network_placement_id = jsonData.ContainsKey("network_placement_id") ? (string)jsonData["network_placement_id"] : ""; | ||
|  |                 ecpm_level = int.Parse(jsonData.ContainsKey("ecpm_level") ? jsonData["ecpm_level"].ToString() : "0"); | ||
|  |                 abtest_id = int.Parse(jsonData.ContainsKey("abtest_id") ? jsonData["abtest_id"].ToString() : "0"); | ||
|  |                 segment_id = int.Parse(jsonData.ContainsKey("segment_id") ? jsonData["segment_id"].ToString() : "0"); | ||
|  |                 scenario_id = jsonData.ContainsKey("scenario_id") ? (string)jsonData["scenario_id"] : "";// RewardVideo & Interstitial | ||
|  | 
 | ||
|  |                 if (jsonData.ContainsKey("user_load_extra_data")) { | ||
|  |                         user_load_extra_data = JsonMapper.ToObject<Dictionary<string, object>>(jsonData["user_load_extra_data"].ToJson()); | ||
|  |                 } | ||
|  | 
 | ||
|  |                 scenario_reward_name = jsonData.ContainsKey("scenario_reward_name") ? (string)jsonData["scenario_reward_name"] : ""; | ||
|  |                 scenario_reward_number = int.Parse(jsonData.ContainsKey("scenario_reward_number") ? jsonData["scenario_reward_number"].ToString() : "0"); | ||
|  | 
 | ||
|  |                 channel = jsonData.ContainsKey("channel") ? (string)jsonData["channel"] : ""; | ||
|  |                 sub_channel = jsonData.ContainsKey("sub_channel") ? (string)jsonData["sub_channel"] : ""; | ||
|  |                 custom_rule = jsonData.ContainsKey("custom_rule") ? JsonMapper.ToObject<Dictionary<string, object>>(jsonData["custom_rule"].ToJson()) : null; | ||
|  |                 ext_info = jsonData.ContainsKey("ext_info") ? JsonMapper.ToObject<Dictionary<string, object>>(jsonData["ext_info"].ToJson()) : null; | ||
|  | 
 | ||
|  |                 reward_custom_data = jsonData.ContainsKey("reward_custom_data") ? (string)jsonData["reward_custom_data"] : ""; | ||
|  | 
 | ||
|  |                 placement_type = int.Parse(jsonData.ContainsKey("placement_type") ? jsonData["placement_type"].ToString() : "0"); | ||
|  |                 shared_placement_id = jsonData.ContainsKey("shared_placement_id") ? jsonData["shared_placement_id"].ToString() : ""; | ||
|  |                 bid_floor = jsonData.ContainsKey("bid_floor") ? jsonData["bid_floor"].ToString() : ""; | ||
|  |                 dismiss_type = int.Parse(jsonData.ContainsKey("dismiss_type") ? jsonData["dismiss_type"].ToString() : "0"); | ||
|  |                 ad_source_type = int.Parse(jsonData.ContainsKey("ad_source_type") ? jsonData["ad_source_type"].ToString() : "0"); | ||
|  |                 ad_source_custom_ext = jsonData.ContainsKey("ad_source_custom_ext") ? jsonData["ad_source_custom_ext"].ToString() : ""; | ||
|  |                 network_name = jsonData.ContainsKey("network_name") ? jsonData["network_name"].ToString() : ""; | ||
|  |                 show_custom_ext = jsonData.ContainsKey("show_custom_ext") ? jsonData["show_custom_ext"].ToString() : ""; | ||
|  |                 e_c = jsonData.ContainsKey("e_c") ? jsonData["e_c"].ToString() : ""; | ||
|  |                 s_id = int.Parse(jsonData.ContainsKey("s_id") ? jsonData["s_id"].ToString() : "0"); | ||
|  |             } | ||
|  |             catch (System.Exception e) { | ||
|  |                 System.Console.WriteLine("Exception caught: {0}", e); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         public string getOriginJSONString() | ||
|  |                 { | ||
|  |             return callbackJson; | ||
|  |         } | ||
|  | 
 | ||
|  |         public Dictionary<string, object> toAdsourceDictionary() | ||
|  |         { | ||
|  |             Dictionary<string, object> dataDictionary = new Dictionary<string, object>(); | ||
|  | 
 | ||
|  |             dataDictionary.Add("adsource_id", adsource_id); | ||
|  |             dataDictionary.Add("adsource_price", adsource_price); | ||
|  |             dataDictionary.Add("adunit_id", adunit_id); | ||
|  |             dataDictionary.Add("currency", currency); | ||
|  |             dataDictionary.Add("network_firm_id",network_firm_id); | ||
|  |             dataDictionary.Add("network_placement_id",network_placement_id); | ||
|  |             return dataDictionary; | ||
|  | 
 | ||
|  |         } | ||
|  | 
 | ||
|  |         public Dictionary<string, object> toDictionary() | ||
|  |         { | ||
|  |             Dictionary<string, object> dataDictionary = new Dictionary<string, object>(); | ||
|  | 
 | ||
|  |             dataDictionary.Add("network_firm_id",network_firm_id); | ||
|  |             dataDictionary.Add("adsource_id", adsource_id); | ||
|  |             dataDictionary.Add("adsource_index", adsource_index); | ||
|  |             dataDictionary.Add("adsource_price", adsource_price); | ||
|  |             dataDictionary.Add("adsource_isheaderbidding", adsource_isheaderbidding); | ||
|  |             dataDictionary.Add("id", id); | ||
|  |             dataDictionary.Add("publisher_revenue", publisher_revenue); | ||
|  |             dataDictionary.Add("currency", currency); | ||
|  |             dataDictionary.Add("country", country); | ||
|  |             dataDictionary.Add("adunit_id", adunit_id); | ||
|  |             dataDictionary.Add("adunit_format", adunit_format); | ||
|  |             dataDictionary.Add("precision", precision); | ||
|  |             dataDictionary.Add("network_type", network_type); | ||
|  |             dataDictionary.Add("network_placement_id",network_placement_id); | ||
|  |             dataDictionary.Add("ecpm_level", ecpm_level); | ||
|  |             dataDictionary.Add("segment_id", segment_id); | ||
|  |             dataDictionary.Add("scenario_id", scenario_id); | ||
|  |             dataDictionary.Add("user_load_extra_data", user_load_extra_data); | ||
|  |             dataDictionary.Add("scenario_reward_name", scenario_reward_name); | ||
|  |             dataDictionary.Add("scenario_reward_number", scenario_reward_number); | ||
|  |             dataDictionary.Add("abtest_id", abtest_id); | ||
|  | 
 | ||
|  |             dataDictionary.Add("sub_channel", sub_channel); | ||
|  |             dataDictionary.Add("channel", channel); | ||
|  |             dataDictionary.Add("custom_rule", custom_rule); | ||
|  |             dataDictionary.Add("ext_info", ext_info); | ||
|  |             dataDictionary.Add("reward_custom_data", reward_custom_data); | ||
|  |             dataDictionary.Add("placement_type", placement_type); | ||
|  |             dataDictionary.Add("shared_placement_id", shared_placement_id); | ||
|  |             dataDictionary.Add("bid_floor", bid_floor); | ||
|  |             dataDictionary.Add("dismiss_type", dismiss_type); | ||
|  |             dataDictionary.Add("ad_source_type", ad_source_type); | ||
|  |             dataDictionary.Add("ad_source_custom_ext", ad_source_custom_ext); | ||
|  |             dataDictionary.Add("network_name", network_name); | ||
|  |             dataDictionary.Add("show_custom_ext", show_custom_ext); | ||
|  |             dataDictionary.Add("e_c", e_c); | ||
|  |             dataDictionary.Add("s_id", s_id); | ||
|  | 
 | ||
|  |             return dataDictionary; | ||
|  |         } | ||
|  | 
 | ||
|  | 
 | ||
|  |     } | ||
|  | } |