internal static extern void MATMeasureEvent(MATEventIos matEvent, MATItemIos[] items, int itemCount, Byte[] receipt, int receiptLength);
public MATEventIos(int id) { this = new MATEventIos(0, 0); this.eventId = id.ToString(); }
/// <para> /// Measures the event with MATEvent. /// </para> /// <param name="tuneEvent">MATEvent object of event values to measure</param> public static void MeasureEvent(MATEvent tuneEvent) { if (!Application.isEditor) { int itemCount = null == tuneEvent.eventItems ? 0 : tuneEvent.eventItems.Length; #if UNITY_ANDROID MATAndroid.Instance.MeasureEvent(tuneEvent); #endif #if UNITY_METRO // Set event characteristic values separately SetEventContentType(tuneEvent.contentType); SetEventContentId(tuneEvent.contentId); // Set event characteristic values separately SetEventContentType(tuneEvent.contentType); SetEventContentId(tuneEvent.contentId); if (tuneEvent.level != null) { SetEventLevel((int)tuneEvent.level); } if (tuneEvent.quantity != null) { SetEventQuantity((int)tuneEvent.quantity); } SetEventSearchString(tuneEvent.searchString); if (tuneEvent.rating != null) { SetEventRating((float)tuneEvent.rating); } if (tuneEvent.date1 != null) { SetEventDate1((DateTime)tuneEvent.date1); } if (tuneEvent.date2 != null) { SetEventDate2((DateTime)tuneEvent.date2); } SetEventAttribute1(tuneEvent.attribute1); SetEventAttribute2(tuneEvent.attribute2); SetEventAttribute3(tuneEvent.attribute3); SetEventAttribute4(tuneEvent.attribute4); SetEventAttribute5(tuneEvent.attribute5); #endif #if UNITY_IPHONE MATEventIos eventIos = new MATEventIos(tuneEvent); byte[] receiptBytes = null == tuneEvent.receipt ? null : System.Convert.FromBase64String(tuneEvent.receipt); int receiptByteCount = null == receiptBytes ? 0 : receiptBytes.Length; // Convert MATItem to C-marshallable struct MATItemIos MATItemIos[] items = new MATItemIos[itemCount]; for (int i = 0; i < itemCount; i++) { items[i] = new MATItemIos(tuneEvent.eventItems[i]); } MATExterns.TuneMeasureEvent(eventIos, items, itemCount, receiptBytes, receiptByteCount); #endif #if UNITY_METRO //Convert MATItem[] to MATEventItem[]. These are the same things, but must be converted for recognition of //MobileAppTracker.cs. MATEventItem[] newarr = new MATEventItem[itemCount]; //Conversion is necessary to prevent the need of referencing a separate class. for(int i = 0; i < itemCount; i++) { MATItem item = tuneEvent.eventItems[i]; newarr[i] = new MATEventItem(item.name, item.quantity == null ? 0 : (int)item.quantity, item.unitPrice == null ? 0 : (double)item.unitPrice, item.revenue == null ? 0 : (double)item.revenue, item.attribute1, item.attribute2, item.attribute3, item.attribute4, item.attribute5); } List<MATEventItem> list = newarr.ToList(); MobileAppTracker.Instance.MeasureAction(tuneEvent.name, tuneEvent.revenue == null ? 0 : (double)tuneEvent.revenue, tuneEvent.currencyCode, tuneEvent.advertiserRefId, list); #endif } }
public MATEventIos(string name) { this = new MATEventIos(0, 0); this.name = name; }