Exemple #1
0
    public void HandleEarnedCurrency(string currencyName, int amount)
    {
        Debug.Log("C#: HandleEarnedCurrency: currencyName: " + currencyName + ", amount: " + amount);
        output = currencyName + " Earned: " + amount;

        Tapjoy.ShowDefaultEarnedCurrencyAlert();
    }
    private void Initialize()
    {
        if (!Tapjoy.IsConnected)
        {
            Tapjoy.Connect(MyConfig.TAPJOY_KEY);
            MyLog.D("Start to Tapjoy.Connect");
        }

        // FB init
        if (FB.IsInitialized)
        {
            FB.ActivateApp();
        }
        else
        {
            //Handle FB.Init
            FB.Init(() => {
                FB.ActivateApp();
                MyLog.D("Facebook ActivateApp");
            });
        }
//		FB.Init(this.OnInitComplete, this.OnHideUnity);
//		facebookStatus = "FB.Init() called with " + FB.AppId;
//		MyLog.D("Facebook = " + facebookStatus);
    }
 public void TapjoyEvents()
 {
     if (Tapjoy.IsConnected)
     {
         // Create offerwall placement
         if (offerwallPlacement == null)
         {
             offerwallPlacement = TJPlacement.CreatePlacement("unitys");
         }
         if (offerwallPlacement.IsContentReady())
         {
             offerwallPlacement.ShowContent();
         }
         else
         {
             offerwallPlacement.RequestContent();
             offerwallPlacement.ShowContent();
             MyLog.W("Tapjoy offerwallPlacement.IsContentReady false");
             //Code to handle situation where content is not ready goes here
         }
     }
     else
     {
         Tapjoy.Connect(MyConfig.TAPJOY_KEY);
         MyLog.W("Tapjoy.IsConnected false");
     }
 }
Exemple #4
0
 public void StageFunnelsLog(Scene.Type CurrentScene)
 {
     if (PlayerPrefs.GetInt(CurrentScene.ToString(), 0) == 0)
     {
         Tapjoy.TrackEvent("GameProgress", "Funnels", CurrentScene.ToString(), null, 0L);
         PlayerPrefs.SetInt(CurrentScene.ToString(), 1);
     }
 }
Exemple #5
0
 public void StageFinalizeLog(Scene.Type CurrentScene)
 {
     if (!this.m_StageFinalizeStack.Contains(CurrentScene))
     {
         this.m_StageFinalizeStack.Add(CurrentScene);
         Tapjoy.TrackEvent("GameProgress", "STAGE", CurrentScene.ToString(), "m_StageFinalizeStack", 0L);
     }
 }
Exemple #6
0
    public void QuestAccept(string strQuestUnique)
    {
        CQuest questByQuestUnique = NrTSingleton <NkQuestManager> .Instance.GetQuestByQuestUnique(strQuestUnique);

        if (questByQuestUnique != null)
        {
            Tapjoy.TrackEvent("Play", "Quest", questByQuestUnique.GetQuestTitle(), "QuestAccept", 0L);
        }
    }
Exemple #7
0
    public void QuestComplete(string strQuestUnique)
    {
        CQuest questByQuestUnique = NrTSingleton <NkQuestManager> .Instance.GetQuestByQuestUnique(strQuestUnique);

        if (questByQuestUnique != null)
        {
            Tapjoy.TrackEvent("Play", "Quest", questByQuestUnique.GetQuestTitle(), "QuestComplete", 0L);
            this.Placement("quest_end");
        }
    }
 public void GDPRAcceptance()
 {
     //#if !UNITY_EDITOR
     AppLovin.SetHasUserConsent(true);
     Tapjoy.SetUserConsent("1");
     //UnityAds.SetGDPRConsentMetaData(true);
     Vungle.UpdateConsentStatus(VungleConsent.ACCEPTED);
     IronSource.SetConsent(true);
     //#endif
 }
Exemple #9
0
 public void ShowOffers()
 {
     if (Tapjoy.IsConnected)
     {
         Tapjoy.ShowOffers();
     }
     else
     {
         tapjoyLabels[0].text = "Пока недоступно\n или нет интернета";
     }
 }
Exemple #10
0
    public void PurchaseItem(long ItemMallIndex)
    {
        ITEM_MALL_ITEM item = NrTSingleton <ItemMallItemManager> .Instance.GetItem(ItemMallIndex);

        string textFromItem = NrTSingleton <NrTextMgr> .Instance.GetTextFromItem(item.m_strTextKey);

        if (item.m_nMoneyType == 1)
        {
            Tapjoy.TrackPurchase(textFromItem, "USD", (double)item.m_fPrice, null);
        }
        Tapjoy.TrackEvent("Item", "Item", "Purchase", textFromItem, ((eITEMMALL_TYPE)item.m_nGroup).ToString(), 1L, "Price", (long)item.m_fPrice, null, 0L);
    }
Exemple #11
0
        protected IEnumerator AutoReconnectCoroutine(float interval)
        {
            if (interval < 0)
            {
                yield break;
            }

            while (true)
            {
                Tapjoy.Connect();
                Debug.Log("Connecting to Tapjoy server...");
                yield return(new WaitForSeconds(interval));
            }
        }
Exemple #12
0
 public void ChangeMoney(int val)
 {
     if (Tapjoy.IsConnected)
     {
         if (val > 0)
         {
             Tapjoy.AwardCurrency(val);
         }
         else if (val != 0)
         {
             Tapjoy.SpendCurrency(val);
         }
     }
 }
Exemple #13
0
    public void Init()
    {
        if (Application.isEditor)
        {
            PS_Plugin.Instance.OnTJInitComplete(true);
        }

        if (Tapjoy.IsConnected)
        {
            PS_Plugin.Instance.OnTJInitComplete(true);
            return;
        }
        #if UNITY_ANDROID
        Tapjoy.Connect(Constants.Params.tapjoyID);
        #else
        Tapjoy.Connect(Constants.Params.tapjoyID_iOS);
        #endif
    }
Exemple #14
0
    public void HandleEarnedCurrency(string currencyName, int amount)
    {
        Debug.Log("C#: HandleEarnedCurrency: currencyName: " + currencyName + ", amount: " + amount);


        if (amount > 0)
        {
            if (ES2.Exists(DataManger.DataFilename + "?tag=SPOfferLeft"))
            {
                ES2.Save(ES2.Load <int>(DataManger.DataFilename + "?tag=gettedGolds") + amount, DataManger.DataFilename + "?tag=gettedGolds");
                Tapjoy.SpendCurrency(amount);
                if (earnedEvent != null)
                {
                    earnedEvent(amount);
                }
            }
        }
    }
    public static void EndPurchase(string id)
    {
        MyLog.I("MyAdManager EndPurchase");
        // 広告SDK関連処理
        Tapjoy.TrackPurchase(id, "JPY", (double)(200), null);

        // TODO Adjust
        //
        //		AdjustEvent adjustEvent = new AdjustEvent("abc123");
        //		adjustEvent.addPartnerParameter("key", "value");
        //		adjustEvent.addPartnerParameter("foo", "bar");
        //		Adjust.trackEvent(adjustEvent);

        // TODO FaceBook
        Dictionary <string, object> iapParameters = new Dictionary <string, object>();

        iapParameters["product"] = id;
        FB.LogPurchase((long)(200), "JPY", iapParameters);
    }
Exemple #16
0
        protected override void ApplyDataPrivacyConsent(ConsentStatus consent)
        {
#if EM_TAPJOY
            // https://ltv.tapjoy.com/sdk/api/csharp/class_tapjoy_unity_1_1_tapjoy.html#ad59030716ab973c1656d939315c81d74
            switch (consent)
            {
            case ConsentStatus.Granted:
                Tapjoy.SetUserConsent("1");
                break;

            case ConsentStatus.Revoked:
                Tapjoy.SetUserConsent("0");
                break;

            case ConsentStatus.Unknown:
            default:
                break;
            }
#endif
        }
 private void LoadData()
 {
     //레벨 세팅
     this.playerLevel = PlayerPrefs.GetInt("PlayerLv");
     Tapjoy.SetUserLevel(this.playerLevel);
     if (PlayerPrefs.GetString("PlayerExp") != "")
     {
         this.currentExp = double.Parse(PlayerPrefs.GetString("PlayerExp"));
     }
     if (this.playerLevel == 0)
     {
         this.playerLevel = 1;
         this.currentExp  = 0.0d;
     }
     //티어 세팅
     this.currentTierIdx = PlayerPrefs.GetInt("PlayerLoadTier");
     this.currentTier    = GameDatabase.instance.TierDataes[this.currentTierIdx];
     //
     this.isLoaded = true;
 }
Exemple #18
0
    void OnEnable()
    {
        // Offers Delegates
        Tapjoy.OnOffersResponse += HandleShowOffers;

        // Placement Delegates
        TJPlacement.OnRequestSuccess += HandlePlacementRequestSuccess;
        TJPlacement.OnRequestFailure += HandlePlacementRequestFailure;
        TJPlacement.OnContentReady   += HandlePlacementContentReady;
        TJPlacement.OnContentShow    += HandlePlacementContentShow;
        TJPlacement.OnContentDismiss += HandlePlacementContentDismiss;
        //TJPlacement.OnPurchaseRequest += HandleOnPurchaseRequest;
        //TJPlacement.OnRewardRequest += HandleOnRewardRequest;

        // Tapjoy Video Delegates
        //Tapjoy.OnVideoStart += HandleVideoStart;
        Tapjoy.OnVideoError += HandleVideoError;

        // Preload direct play event
        video      = TJPlacement.CreatePlacement("Video");
        gameLaunch = TJPlacement.CreatePlacement("GameLaunch");
        onPause    = TJPlacement.CreatePlacement("OnPause");
        offerwall  = TJPlacement.CreatePlacement("Offerwall");

        TJPlacement[] placements = { video, gameLaunch, onPause, offerwall };
        for (int i = 0; i < placements.Length; i++)
        {
            if (placements[i] != null)
            {
                placements[i].RequestContent();
            }
        }

        Tapjoy.GetCurrencyBalance();
        //Tapjoy.
        //ShowGameLaunchPlacement();
    }
Exemple #19
0
    public void HandleConnectSuccess()
    {
        Debug.Log("tapjoy Connect Success ");
        Tapjoy.GetCurrencyBalance();

        isInitted = true;
        if (isInitted)
        {
            if (BannerAd == null)
            {
                BannerAd = TJPlacement.CreatePlacement("Ad_Video");
                if (BannerAd != null)
                {
                    BannerAd.RequestContent();
                }
            }

            if (offerwallPlacement == null)
            {
                offerwallPlacement = TJPlacement.CreatePlacement("Ad_OfferWall");
                if (offerwallPlacement != null)
                {
                    offerwallPlacement.RequestContent();
                }
            }
            if (IntterAd == null)
            {
                IntterAd = TJPlacement.CreatePlacement("InterSticial");
                if (IntterAd != null)
                {
                    IntterAd.RequestContent();
                }
            }
        }
        PS_Plugin.Instance.OnTJInitComplete(true);
    }
Exemple #20
0
    public void BattleResult(eBATTLE_ROOMTYPE RoomType, float fBattleTime, int InjurySolCount)
    {
        string text = RoomType.ToString().Substring(17);

        Tapjoy.TrackEvent("Play", "Battle", text, text, "BattleTime", (long)fBattleTime, "InjurySol", (long)InjurySolCount, null, 0L);
    }
Exemple #21
0
 public void SolCompose(int nDelSolCnt)
 {
     Tapjoy.TrackEvent("HERO", "SOL_COMPOSE", (long)nDelSolCnt);
 }
Exemple #22
0
 public void SolSell(int nDelSolCnt)
 {
     Tapjoy.TrackEvent("HERO", "SOL_SELL", (long)nDelSolCnt);
 }
Exemple #23
0
    void OnGUI()
    {
        Rect  position;
        float yPosition = startY;

        position = new Rect(centerX - buttonWidth - buttonPadding, yPosition, buttonWidth, buttonHeight);
        if (GUI.Button(position, "Basic"))
        {
            Tapjoy.TrackEvent(DEFAULT_EVENT_NAME, DEFAULT_VALUE);

            output = "Sent track event with name: " + DEFAULT_EVENT_NAME + ", " + DEFAULT_VALUE;
        }

        position = new Rect(centerX + buttonPadding, yPosition, buttonWidth, buttonHeight);
        if (GUI.Button(position, "Value"))
        {
            Tapjoy.TrackEvent(DEFAULT_CATEGORY, DEFAULT_EVENT_NAME, DEFAULT_VALUE);
        }

        yPosition += yPadding;

        position = new Rect(centerX - buttonWidth - buttonPadding, yPosition, buttonWidth, buttonHeight);
        if (GUI.Button(position, "Param1"))
        {
            Tapjoy.TrackEvent(DEFAULT_CATEGORY, DEFAULT_EVENT_NAME, DEFAULT_PARAM1);
        }

        position = new Rect(centerX + buttonPadding, yPosition, buttonWidth, buttonHeight);
        if (GUI.Button(position, "Param 1 and 2"))
        {
            Tapjoy.TrackEvent(DEFAULT_CATEGORY, DEFAULT_EVENT_NAME, DEFAULT_PARAM1, DEFAULT_PARAM2);
        }

        yPosition += yPadding;

        position = new Rect(centerX - buttonWidth - buttonPadding, yPosition, buttonWidth, buttonHeight);
        if (GUI.Button(position, "Param 1 with value 1"))
        {
            Tapjoy.TrackEvent(DEFAULT_CATEGORY, DEFAULT_EVENT_NAME, DEFAULT_PARAM1, null, DEFAULT_VALUE);
        }

        position = new Rect(centerX + buttonPadding, yPosition, buttonWidth, buttonHeight);
        if (GUI.Button(position, "Param 1 and 2 with value 1"))
        {
            Tapjoy.TrackEvent(DEFAULT_CATEGORY, DEFAULT_EVENT_NAME, DEFAULT_PARAM1, DEFAULT_PARAM2, DEFAULT_VALUE);
        }

        yPosition += yPadding;

        position = new Rect(centerX - buttonWidth - buttonPadding, yPosition, buttonWidth, buttonHeight);
        if (GUI.Button(position, "Param 1 and 2 with value 1 and 2"))
        {
            Tapjoy.TrackEvent(DEFAULT_CATEGORY, DEFAULT_EVENT_NAME, DEFAULT_PARAM1, DEFAULT_PARAM2,
                              DEFAULT_KEY, DEFAULT_VALUE, DEFAULT_KEY2, DEFAULT_VALUE2);
        }

        position = new Rect(centerX + buttonPadding, yPosition, buttonWidth, buttonHeight);
        if (GUI.Button(position, "All"))
        {
            Tapjoy.TrackEvent(DEFAULT_CATEGORY, DEFAULT_EVENT_NAME, DEFAULT_PARAM1, DEFAULT_PARAM2,
                              DEFAULT_KEY, DEFAULT_VALUE, DEFAULT_KEY2, DEFAULT_VALUE2, DEFAULT_KEY3, DEFAULT_VALUE3);
        }

        yPosition += yPadding;

        // Display status
        GUI.Label(new Rect(centerX - 200, yPosition, 400, 150), output, outputStyle);
    }
Exemple #24
0
 public void HandlePlacementContentDismiss(TJPlacement placement)
 {
     Debug.Log("C#: HandlePlacementContentDismiss");
     Tapjoy.GetCurrencyBalance();
 }
 private void Connect() => Tapjoy.Connect(this.configuration.SdkKey);
    public void ShowLevelUpAlarm2()
    {
        NrCharUser nrCharUser = NrTSingleton <NkCharManager> .Instance.GetChar(1) as NrCharUser;

        if (nrCharUser != null)
        {
            NrMyCharInfo kMyCharInfo = NrTSingleton <NkCharManager> .Instance.m_kMyCharInfo;
            if (kMyCharInfo != null)
            {
                int level = kMyCharInfo.GetLevel();
                for (int i = this.startLevel + 1; i <= level; i++)
                {
                    if (this.dic_levelupInfo.ContainsKey(i))
                    {
                        LevelupInfoDLG levelupInfoDLG = NrTSingleton <FormsManager> .Instance.LoadForm(G_ID.LEVELUP_GUIDE_DLG) as LevelupInfoDLG;

                        levelupInfoDLG.Show(this.dic_levelupInfo[i]);
                    }
                }
                this.startLevel = kMyCharInfo.GetLevel();
                BookmarkDlg bookmarkDlg = NrTSingleton <FormsManager> .Instance.GetForm(G_ID.BOOKMARK_DLG) as BookmarkDlg;

                if (bookmarkDlg != null)
                {
                    bookmarkDlg.UpdateBookmarkInfo(BookmarkDlg.TYPE.HERO);
                }
                HeroCollect_DLG heroCollect_DLG = NrTSingleton <FormsManager> .Instance.GetForm(G_ID.HEROCOLLECT_DLG) as HeroCollect_DLG;

                if (heroCollect_DLG != null)
                {
                    heroCollect_DLG.Update_Notice();
                }
                Tapjoy.SetUserLevel(kMyCharInfo.GetLevel());
                string comment = string.Format("levelup{0}", kMyCharInfo.GetLevel());
                NrTSingleton <FiveRocksEventManager> .Instance.Placement(comment);

                eSERVICE_AREA currentServiceArea = NrTSingleton <NrGlobalReference> .Instance.GetCurrentServiceArea();

                if (currentServiceArea == eSERVICE_AREA.SERVICE_ANDROID_KORGOOGLE || currentServiceArea == eSERVICE_AREA.SERVICE_ANDROID_KORQA)
                {
                    NrTSingleton <AdWords> .Instance.LevelUp(kMyCharInfo.GetLevel());
                }
                DateTime dateTime  = DateTime.Now.ToLocalTime();
                DateTime arg_158_0 = dateTime;
                DateTime dateTime2 = new DateTime(1970, 1, 1, 0, 0, 0, 0);
                int      num       = (int)(arg_158_0 - dateTime2.ToLocalTime()).TotalSeconds;
                Dictionary <string, string> dictionary = new Dictionary <string, string>();
                dictionary.Add("ts", num.ToString());
                dictionary.Add("level", kMyCharInfo.GetLevel().ToString());
                dictionary.Add("account_id", kMyCharInfo.m_SN.ToString());
                GameObject pkGoOminiata = StageSystemCheck.pkGoOminiata;
                if (pkGoOminiata)
                {
                    OmniataComponent component = pkGoOminiata.GetComponent <OmniataComponent>();
                    if (component)
                    {
                        component.Track("om_level", dictionary);
                    }
                }
                if (NrTSingleton <NkCharManager> .Instance.m_kMyCharInfo.GetLevel() >= 10 && PlayerPrefs.GetInt(NrPrefsKey.PLAYER_PLAYLOCKDEVICEID_SEND, 0) == 0)
                {
                    TsPlatform.Operator.GetPlayLockID();
                }
            }
            NrTSingleton <NkClientLogic> .Instance.ShowChangeGuestIDUI();
        }
    }
Exemple #27
0
 public void BabelTowerParty(int nCount)
 {
     Tapjoy.TrackEvent("Play", "BabelTowerParty", (long)nCount);
 }
Exemple #28
0
    void OnGUI()
    {
        Rect  position;
        float yPosition = startY;

        if (inputStyle == null)
        {
            inputStyle          = GUI.skin.textField;
            inputStyle.fontSize = fontSize;
        }

        position = new Rect(centerX - (buttonWidth / 2), yPosition, buttonWidth, buttonHeight);
        if (GUI.Button(position, "Show Offerwall"))
        {
            if (offerwallPlacement != null)
            {
                offerwallPlacement.RequestContent();
            }
        }

        yPosition += yPadding;

        position = new Rect(centerX - (buttonWidth / 2), yPosition, buttonWidth, buttonHeight);
        if (GUI.Button(position, "Show Direct Play Video Ad"))
        {
            if (directPlayPlacement.IsContentAvailable())
            {
                if (directPlayPlacement.IsContentReady())
                {
                    directPlayPlacement.ShowContent();
                }
                else
                {
                    output = "Direct play video not ready to show.";
                }
            }
            else
            {
                output = "No direct play video to show.";
            }
        }

        yPosition += yPadding;

        // Managed Currency Header
        position = new Rect(centerX - (buttonWidth / 2), yPosition, buttonWidth, headerHeight);
        GUI.Label(position, "Managed Currency:", headerStyle);

        yPosition += yPadding - (yPadding - headerHeight);

        position = new Rect(centerX - (thirdButtonWidth + (thirdButtonWidth / 2)), yPosition, thirdButtonWidth, buttonHeight);
        if (GUI.Button(position, "Get"))
        {
            ResetCurrencyLabel();
            Tapjoy.GetCurrencyBalance();
        }

        position = new Rect(centerX - (thirdButtonWidth / 2), yPosition, thirdButtonWidth, buttonHeight);
        if (GUI.Button(position, "Spend"))
        {
            ResetCurrencyLabel();
            Tapjoy.SpendCurrency(10);
        }

        position = new Rect(centerX + (thirdButtonWidth / 2), yPosition, thirdButtonWidth, buttonHeight);

        if (GUI.Button(position, "Award"))
        {
            ResetCurrencyLabel();
            Tapjoy.AwardCurrency(10);
        }

        yPosition += yPadding;

        // Managed Currency Header
        position = new Rect(centerX - (buttonWidth / 2), yPosition, buttonWidth, headerHeight);
        GUI.Label(position, "Content Placement:", headerStyle);

        yPosition += yPadding - (yPadding - headerHeight);

        position            = new Rect(centerX - (buttonWidth / 2), yPosition, buttonWidth, headerHeight);
        samplePlacementName = GUI.TextField(position, samplePlacementName, 30, inputStyle);

        yPosition += headerHeight + 10;

        position = new Rect(centerX - halfButtonWidth, yPosition, halfButtonWidth, buttonHeight);
        if (GUI.Button(position, "Request"))
        {
            // Create a new sample event
            samplePlacement = TJPlacement.CreatePlacement(samplePlacementName);
            if (samplePlacement != null)
            {
                samplePlacement.RequestContent();
                output = "Requesting content for placement: " + samplePlacementName;
            }
        }

        if (!contentIsReadyForPlacement)
        {
            GUI.enabled = false;
        }
        position = new Rect(centerX, yPosition, halfButtonWidth, buttonHeight);
        if (GUI.Button(position, "Show"))
        {
            samplePlacement.ShowContent();
        }
        if (!contentIsReadyForPlacement)
        {
            GUI.enabled = true;
        }

        yPosition += yPadding;

        // Purchase Header
        position = new Rect(centerX - (buttonWidth / 2), yPosition, buttonWidth, headerHeight);
        GUI.Label(position, "Purchase:", headerStyle);

        yPosition += yPadding - (yPadding - headerHeight);

        position = new Rect(centerX - (buttonWidth / 2), yPosition, buttonWidth, buttonHeight);
        if (GUI.Button(position, "Purchase"))
        {
            Tapjoy.TrackPurchase("product1", "USD", 0.99);
            output = "Sent track purchase";
        }
        yPosition += yPadding;

        position = new Rect(centerX - (buttonWidth / 2), yPosition, buttonWidth, buttonHeight);
        if (GUI.Button(position, "Purchase (Campaign)"))
        {
            Tapjoy.TrackPurchase("product1", "USD", 1.99, "TestCampaignID");
            output = "Sent track purchase 2";
        }
        yPosition += yPadding;

        position = new Rect(centerX - halfButtonWidth, yPosition, halfButtonWidth, buttonHeight);
        if (GUI.Button(position, "Purchase (GooglePlayStore)"))
        {
            Tapjoy.TrackPurchaseInGooglePlayStore(getDummySkuDetails(), getDummyPurchaseData(), getDummyDataSignature(), "TestCampaignID");
            output = "Sent TrackPurchaseInGooglePlayStore";
        }

        position = new Rect(centerX, yPosition, halfButtonWidth, buttonHeight);
        if (GUI.Button(position, "Purchase (AppleAppStore)"))
        {
            Tapjoy.TrackPurchaseInAppleAppStore("product1", "USD", 1.99, "transactionId", "TestCampaignID");
            output = "Sent TrackPurchaseInAppleAppStore";
        }
        yPosition += yPadding;

        // Display status
        GUI.Label(new Rect(centerX - 200, yPosition, 400, 150), output, outputStyle);
    }
Exemple #29
0
 public void HeartsInflow(eHEARTS_INFLOW eInflow, long Value)
 {
     Tapjoy.TrackEvent("Hearts", "Hearts_Inflow", "1", eInflow.ToString(), Value);
 }
Exemple #30
0
    void OnGUI()
    {
        Rect  position;
        float yPosition = startY;

        if (inputStyle == null)
        {
            inputStyle          = GUI.skin.textField;
            inputStyle.fontSize = fontSize;
        }

        // User id
        position = new Rect(startX, yPosition, labelWidth, buttonHeight);
        GUI.Label(position, "User Id:", labelStyle);

        position    = new Rect(startX + labelWidth, yPosition, inputWidth, buttonHeight);
        inputUserId = GUI.TextField(position, inputUserId, 30, inputStyle);

        yPosition += yPadding;

        // User Level
        position = new Rect(startX, yPosition, inputWidth, buttonHeight);
        GUI.Label(position, "User Level:", labelStyle);

        position       = new Rect(startX + labelWidth, yPosition, inputWidth, buttonHeight);
        inputUserLevel = GUI.TextField(position, "" + inputUserLevel, 30, inputStyle);

        yPosition += yPadding;

        // User Friends
        position = new Rect(startX, yPosition, inputWidth, buttonHeight);
        GUI.Label(position, "User Friends:", labelStyle);

        position         = new Rect(startX + labelWidth, yPosition, inputWidth, buttonHeight);
        inputUserFriends = GUI.TextField(position, "" + inputUserFriends, 30, inputStyle);

        yPosition += yPadding;

        // User Cohorts Header
        position = new Rect(startX, yPosition, inputWidth, buttonHeight);
        GUI.Label(position, "User Cohorts:", headerStyle);
        yPosition += yPadding;

        // User Cohorts
        for (int i = 0; i < 5; i++)
        {
            position = new Rect(startX, yPosition, inputWidth, buttonHeight);
            GUI.Label(position, "  Cohort " + (i + 1) + ":", labelStyle);

            position        = new Rect(startX + labelWidth, yPosition, inputWidth, buttonHeight);
            cohortValues[i] = GUI.TextField(position, "" + cohortValues[i], 30, inputStyle);

            yPosition += yPadding;
        }

        yPosition += yPadding;

        position = new Rect(centerX - buttonWidth - buttonPadding, yPosition, buttonWidth, buttonHeight);
        if (GUI.Button(position, "Set"))
        {
            // Set user info
            Tapjoy.SetUserID(inputUserId);

            int temp = 0;
            if (int.TryParse(inputUserLevel, out temp))
            {
                Tapjoy.SetUserLevel(temp);
            }

            if (int.TryParse(inputUserFriends, out temp))
            {
                Tapjoy.SetUserFriendCount(temp);
            }

            // Set User cohorts
            for (int i = 0; i < cohortValues.Length; i++)
            {
                Tapjoy.SetUserCohortVariable(i + 1, cohortValues[i]);
            }
        }

        position = new Rect(centerX + buttonPadding, yPosition, buttonWidth, buttonHeight);
        if (GUI.Button(position, "Clear"))
        {
            inputUserId      = inputUserIdPlaceholder;
            inputUserLevel   = inputUserLevelPlaceholder;
            inputUserFriends = inputUserFriendsPlaceholder;
            cohortValues     = new string[5];
        }

        yPosition += yPadding;

        position = new Rect(startX, yPosition, inputWidth, buttonHeight);
        GUI.Label(position, "User Tag:", labelStyle);

        position = new Rect(startX + labelWidth, yPosition, inputWidth, buttonHeight);
        userTag  = GUI.TextField(position, "" + userTag, 30, inputStyle);

        yPosition += yPadding;

        position = new Rect(centerX - buttonWidth - buttonPadding, yPosition, buttonWidth * 2 / 3, buttonHeight);
        if (GUI.Button(position, "Add"))
        {
            Tapjoy.AddUserTag(userTag);
            userTag = "";
        }
        position = new Rect(centerX - buttonWidth / 3, yPosition, buttonWidth * 2 / 3, buttonHeight);
        if (GUI.Button(position, "Remove"))
        {
            Tapjoy.RemoveUserTag(userTag);
            userTag = "";
        }
        position = new Rect(centerX + buttonWidth / 3 + buttonPadding, yPosition, buttonWidth * 2 / 3, buttonHeight);
        if (GUI.Button(position, "Clear"))
        {
            Tapjoy.ClearUserTags();
            userTag = "";
        }

        yPosition += yPadding;
    }