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;
 | |
|         }
 | |
| 
 | |
| 
 | |
|     }
 | |
| }
 |