Esempio n. 1
0
 internal static extern void MATMeasureEvent(MATEventIos matEvent, MATItemIos[] items, int itemCount, Byte[] receipt, int receiptLength);
Esempio n. 2
0
 public MATEventIos(int id)
 {
     this         = new MATEventIos(0, 0);
     this.eventId = id.ToString();
 }
Esempio n. 3
0
        /// <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
            }
        }
Esempio n. 4
0
 public MATEventIos(string name)
 {
     this      = new MATEventIos(0, 0);
     this.name = name;
 }
Esempio n. 5
0
 internal static extern void MATMeasureEvent(MATEventIos matEvent, MATItemIos[] items, int itemCount, Byte[] receipt, int receiptLength);