Example #1
0
        public override void Dump(RudderMessage message)
        {
            RudderLogger.LogDebug("Adjust integration dump event: " + message.eventName);
            if (message.eventName != null && this.eventTokenMap.ContainsKey(message.eventName))
            {
                string eventToken = this.eventTokenMap[message.eventName];
                RudderLogger.LogDebug("Adjust integration dump: eventToken: " + eventToken);
                if (eventToken != null && !eventToken.Equals(""))
                {
                    this.AddSessionParameter(RudderCache.GetAnonymousId());

                    RudderLogger.LogDebug("Creating Adjust event");
                    AdjustEvent adjustEvent = new AdjustEvent(eventToken);

                    RudderLogger.LogDebug("Adding Event Properties");
                    Dictionary <string, object> eventProperties = message.eventProperties;
                    if (eventProperties != null)
                    {
                        foreach (string key in eventProperties.Keys)
                        {
                            adjustEvent.addCallbackParameter(key, eventProperties[key].ToString());
                        }
                    }

                    RudderLogger.LogDebug("Adding User Properties");
                    Dictionary <string, object> userProperties = message.userProperties;
                    if (userProperties != null)
                    {
                        foreach (string key in userProperties.Keys)
                        {
                            adjustEvent.addCallbackParameter(key, userProperties[key].ToString());
                        }
                    }

                    RudderLogger.LogDebug("Tracking revenue through Adjust SDK");
                    if (message.eventProperties.ContainsKey("revenue"))
                    {
                        double amount   = (double)message.eventProperties["revenue"];
                        string currency = "";
                        if (message.eventProperties.ContainsKey("currency"))
                        {
                            currency = message.eventProperties["currency"] as string;
                        }
                        adjustEvent.setRevenue(amount, currency);
                    }

                    RudderLogger.LogDebug("Tracking event");
                    Adjust.trackEvent(adjustEvent);
                }
                else
                {
                    RudderLogger.LogDebug("Incorrect event token for Adjust");
                }
            }
            else
            {
                RudderLogger.LogDebug("RudderAdjustIntegration: Event is not tracked through Adjust");
            }
        }
Example #2
0
 private void AddSessionParameter(string userId)
 {
     Adjust.addSessionPartnerParameter("anonymousId", RudderCache.GetAnonymousId());
     if (userId != null)
     {
         Adjust.addSessionPartnerParameter("userId", userId);
     }
 }
        public void Identify(string userId, RudderTraits traits, RudderMessage message)
        {
            RudderLogger.LogDebug("Identify Event: " + message.eventName);
            RudderCache.SetUserId(userId);
            if (_integrationManager != null)
            {
                _integrationManager.MakeIntegrationIdentify(userId, traits);
            }

            // put supplied userId under traits as well if it is not set
            if (traits.getId() == null)
            {
                traits.PutId(userId);
            }
            string traitsJson = Json.Serialize(traits.traitsDict);

#if UNITY_ANDROID
            if (Application.platform == RuntimePlatform.Android)
            {
                androidClientClass.CallStatic(
                    "_identify",
                    userId,
                    traitsJson,
                    message.getOptionsJson()
                    );
            }
#endif
#if UNITY_IPHONE
            if (Application.platform == RuntimePlatform.IPhonePlayer)
            {
                _identify(
                    userId,
                    traitsJson,
                    message.getOptionsJson()
                    );
            }
#endif
        }
        public static RudderClient GetInstance(
            string writeKey,
            RudderConfig config
            )
        {
            if (_instance == null)
            {
                // initialize the cache
                RudderCache.Init();

                RudderLogger.LogDebug("Instantiating RudderClient SDK");
                // initialize the instance
                _instance = new RudderClient(
                    writeKey,
                    config.dataPlaneUrl,
                    config.controlPlaneUrl,
                    config.flushQueueSize,
                    config.dbCountThreshold,
                    config.sleepTimeOut,
                    config.configRefreshInterval,
                    config.trackLifecycleEvents,
                    config.recordScreenViews,
                    config.logLevel
                    );

                RudderLogger.LogDebug("Instantiating RudderIntegrationManager");
                _integrationManager = new RudderIntegrationManager(
                    writeKey,
                    config
                    );
            }
            else
            {
                RudderLogger.LogDebug("RudderClient SDK is already initiated");
            }

            return(_instance);
        }
        public void Reset()
        {
            RudderLogger.LogDebug("SDK reset");
            if (_integrationManager != null)
            {
                _integrationManager.Reset();
            }
            RudderCache.Reset();
#if UNITY_ANDROID
            if (Application.platform == RuntimePlatform.Android)
            {
                androidClientClass.CallStatic(
                    "_reset"
                    );
            }
#endif
#if UNITY_IPHONE
            if (Application.platform == RuntimePlatform.IPhonePlayer)
            {
                _reset();
            }
#endif
        }
        /*
         * private constructor to prevent instantiating
         */
        private RudderClient(
            string _writeKey,
            string _dataPlaneUrl,
            string _controlPlaneUrl,
            int _flushQueueSize,
            int _dbCountThreshold,
            int _sleepTimeout,
            int _configRefreshInterval,
            bool _trackLifecycleEvents,
            bool _recordScreenViews,
            int _logLevel
            )
        {
            // initialize android
#if UNITY_ANDROID
            RudderLogger.LogDebug("Initializing Android Core SDK");
            if (Application.platform == RuntimePlatform.Android)
            {
                AndroidJavaClass  unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
                AndroidJavaObject activity    = unityPlayer.GetStatic <AndroidJavaObject>("currentActivity");
                AndroidJavaObject context     = activity.Call <AndroidJavaObject>("getApplicationContext");
                androidClientClass = new AndroidJavaClass(androidClientName);
                androidClientClass.CallStatic(
                    "_initiateInstance",
                    context,
                    RudderCache.GetAnonymousId(),
                    _writeKey,
                    _dataPlaneUrl,
                    _controlPlaneUrl,
                    _flushQueueSize,
                    _dbCountThreshold,
                    _sleepTimeout,
                    _configRefreshInterval,
                    _trackLifecycleEvents,
                    _recordScreenViews,
                    _logLevel
                    );
                RudderLogger.LogDebug("Android Core SDK initiated");
            }
#endif

// initialize iOS
#if UNITY_IPHONE
            RudderLogger.LogDebug("Initializing iOS Core SDK");
            if (Application.platform == RuntimePlatform.IPhonePlayer)
            {
                _initiateInstance(
                    RudderCache.GetAnonymousId(),
                    _writeKey,
                    _dataPlaneUrl,
                    _controlPlaneUrl,
                    _flushQueueSize,
                    _dbCountThreshold,
                    _sleepTimeout,
                    _configRefreshInterval,
                    _trackLifecycleEvents,
                    _recordScreenViews,
                    _logLevel
                    );
                RudderLogger.LogDebug("iOS Core SDK initiated");
            }
#endif
        }
Example #7
0
 public override void Identify(string userId, RudderTraits traits)
 {
     this.AddSessionParameter(RudderCache.GetUserId());
 }