I. Tải về và cấu hình SDK

Liên hệ tuyennv@cscmobi hoặc skype: nguyenvantuyen_12a9 để được invite vào gitlab và tải về sdk.

Link video hướng dẫn: https://www.youtube.com/watch?v=rexD2E_cjvQ&list=PLtoiq0hLg8tYloZ0rM5XXv5eYqpvS2fOp

1. GSM là gì?

  • GSM là tracking và phân tích dữ liệu từ game, và sau đó sẽ thống kê, báo cáo giúp quản trị game một cách tốt nhất.

  • Thông qua GSM SDK được tích hợp trong game, hệ thống GSM sẽ thu thập được dữ liệu từ game gửi lên server.

2. Tải về SDK

  • Tải xuống phiên bản mới nhất 1.2.1.1 từ trang phát hành.

  • Sử dụng phiên bản GSMSDK_MessagePack.unitypackage dành cho phiên bản Unity từ 2021.x.x trở lên (Nên dùng phiên bản này để tối ưu data gửi lên server)

  • Sử dụng phiên bản GSMSDK_Json.unitypackage dành cho phiên bản Unity từ 2020.x.x trở lên.

3. Thêm SDK vào dự án

  • Mở dự án của bạn trong Unity Editor, vào Assets → Import Package → Custom Package.... Sau đó chọn file GSMSDK.unitypackage đã tải xuống.

  • Chọn All → Import

4. Thiết lập Prefab GSMObject

  • Sau khi đã thêm SDK vào dự án.

  • Nơi chứa Prefab GSMObject: Plugins → GSM-SDK → GSMObject

  • Kéo Prefab GSMObject vào scene đầu tiên (không load lại trong quá trình chơi) khi mở game (ví dụ: Splash scene, Login scene)

Các thông số:

  • App Id: Được cấp từ hệ thống GSM, liên hệ Project Manager của dự án.

  • Login Retry: Là số lần SDK tự động kết nối lại với hệ thống nếu có lỗi. Chọn 0 để bỏ giới hạn, liên tục thử lại tới khi thành công

  • Log Runtime: Trong quá trình phát triển thì tích chọn để xem debug. Khi buid Production thì bỏ tích chọn.

Chú ý:

  • Khi buid lên store thì cần để bỏ chọn Log Runtime

5. Dùng GSM Config để chuyển đổi Environment

  • Mục đích để chuyển đổi môi trường trên server từ production sang development, hoặc ngược lại

  • Mục đích để: Tester có thể test các chức năng: Test AppConfig, Test AdImpression, Test IAP, Test Send Event

  • Tư tưởng là: Add các deviceId là tester vào trong GSM Config, và hệ thống nếu kiểm tra là device Tester thì sẽ trả về Environment = Development và ngược lại.

Code mẫu:

        GSM.Core.GSMCore.Instance.GetConfig(response =>
        {
#if UNITY_EDITOR
            //Mặc định Editor là Development
            GSMCore.Instance.SetEnvironment(Environment.Development);
#else
            //Khởi tạo GSM SDK với environment được config từ trên server
            GSMCore.Instance.SetEnvironment(response.environment);
#endif
            //string data=response.data;
            //Xử lý logic cho data nếu có từ trên server trả về   
            //Khởi tạo GSM
            GSMCore.Instance.Init();
        });

Hoặc tùy biến với 1 deviceId: Dùng đối với WebGL hoặc Facebook Instant

     GSM.Core.GSMCore.Instance.GetConfig(response =>
        {
#if UNITY_EDITOR
            //Mặc định Editor là Development
            GSMCore.Instance.SetEnvironment(Environment.Development);
#else
            //Khởi tạo GSM SDK với environment được config từ trên server
            GSMCore.Instance.SetEnvironment(response.environment);
#endif
            //string data=response.data;
            //Xử lý logic cho data nếu có từ trên server trả về   
            //Khởi tạo GSM với deviceId
            GSMCore.Instance.Init("<deviceId>");
        },"<deviceId>");

6. Set Adjust Info

  • Trường hợp game có sử dụng Adjust thì phải thực hiện

  • Chú ý: Cần set trước khi call GSMCore.Instance.Init();

GSMCore.Instance.SetFunctionGetAdjustId(Adjust.getAdid);

Code mẫu:

        GSM.Core.GSMCore.Instance.GetConfig(response =>
        {
#if UNITY_EDITOR
            //Mặc định Editor là Development
            GSMCore.Instance.SetEnvironment(Environment.Development);
#else
            //Khởi tạo GSM SDK với environment được config từ trên server
            GSMCore.Instance.SetEnvironment(response.environment);
#endif
            //string data=response.data;
            //Xử lý logic cho data nếu có từ trên server trả về   
            //Thiết lập thông tin Adjust
            GSMCore.Instance.SetFunctionGetAdjustId(Adjust.getAdid);
            //YOUR_ADJUST_APP_TOKEN_KEY=GetComponent<Adjust>().appToken
            GSM.Models.AdjustInfo adjustInfo = new GSM.Models.AdjustInfo(YOUR_ADJUST_APP_TOKEN_KEY, Adjust.getSdkVersion());
            GSMCore.Instance.SetAdjustInfo(adjustInfo); 
            //Khởi tạo GSM
            GSMCore.Instance.Init();
           
        });

7. Set Ironsource Info

  • Trường hợp game có sử dụng Ironsource thì phải thực hiện

  • Chú ý: Cần set trước khi call GSMCore.Instance.Init();

GSMCore.Instance.SetIronSourceInfo(new GSM.Models.Mediations.IronSourceInfo(YOUR_IRONSOURCE_APP_KEY, IronSource.pluginVersion()));

Code mẫu:

        GSM.Core.GSMCore.Instance.GetConfig(response =>
        {
#if UNITY_EDITOR
            //Mặc định Editor là Development
            GSMCore.Instance.SetEnvironment(Environment.Development);
#else
            //Khởi tạo GSM SDK với environment được config từ trên server
            GSMCore.Instance.SetEnvironment(response.environment);
#endif
            //string data=response.data;
            //Xử lý logic cho data nếu có từ trên server trả về   
            //Thiết lập thông tin Ironsource
            GSMCore.Instance.SetIronSourceInfo(new GSM.Models.Mediations.IronSourceInfo(YOUR_IRONSOURCE_APP_KEY, IronSource.pluginVersion()));
            //Khởi tạo GSM
            GSMCore.Instance.Init();
           
        });

8. Set MAX Info

  • Trường hợp game có sử dụng MAX thì phải thực hiện

  • Chú ý: Cần set trước khi call GSMCore.Instance.Init();

GSMCore.Instance.SetMAXInfo(MAXInfo maxInfo)

Code mẫu:

        GSM.Core.GSMCore.Instance.GetConfig(response =>
        {
#if UNITY_EDITOR
            //Mặc định Editor là Development
            GSMCore.Instance.SetEnvironment(Environment.Development);
#else
            //Khởi tạo GSM SDK với environment được config từ trên server
            GSMCore.Instance.SetEnvironment(response.environment);
#endif
            //string data=response.data;
            //Xử lý logic cho data nếu có từ trên server trả về   
            //Thiết lập thông tin MAX
            List<MAXInfo.MAXAdUnit> maxAdUnits = new List<MAXInfo.MAXAdUnit>();
            maxAdUnits.Add(new MAXInfo.MAXAdUnit(MAX_Banner_AdUnitId, MAXInfo.MAXAdFormat.Banner));
            maxAdUnits.Add(new MAXInfo.MAXAdUnit(MAX_Interstitial_AdUnitId, MAXInfo.MAXAdFormat.Interstitial));
            maxAdUnits.Add(new MAXInfo.MAXAdUnit(MAX_Native_AdUnitId, MAXInfo.MAXAdFormat.Native));
            maxAdUnits.Add(new MAXInfo.MAXAdUnit(MAX_MREC_AdUnitId, MAXInfo.MAXAdFormat.MREC));
            maxAdUnits.Add(new MAXInfo.MAXAdUnit(MAX_Rewarded_AdUnitId, MAXInfo.MAXAdFormat.Rewarded));
            GSMCore.Instance.SetMAXInfo(new GSM.Models.Mediations.MAXInfo(YOUR_MAX_SDK_KEY, MaxSdk.Version, maxAdUnits));
            //Khởi tạo GSM
            GSMCore.Instance.Init();
           
        });

9. Set Admob Info

  • Trường hợp game có sử dụng Admob, hoặc cấu hình Mediation Admob của Ironsource hoặc MAX thì phải thực hiện

  • Chú ý: Cần set trước khi call GSMCore.Instance.Init();

GSMCore.Instance.SetAdmobInfo(AdmobInfo admobInfo)

Code mẫu:

        GSM.Core.GSMCore.Instance.GetConfig(response =>
        {
#if UNITY_EDITOR
            //Mặc định Editor là Development
            GSMCore.Instance.SetEnvironment(Environment.Development);
#else
            //Khởi tạo GSM SDK với environment được config từ trên server
            GSMCore.Instance.SetEnvironment(response.environment);
#endif
            //string data=response.data;
            //Xử lý logic cho data nếu có từ trên server trả về   
            //Thiết lập thông tin Admob
            List<AdmobInfo.AdmobAdUnit> admobAdUnits = new List<AdmobInfo.AdmobAdUnit>();
            admobAdUnits.Add(new AdmobInfo.AdmobAdUnit("Admob_AppOpen_AdUnitId", AdmobInfo.AdmobAdFormat.AppOpen));
            admobAdUnits.Add(new AdmobInfo.AdmobAdUnit("Admob_Banner_AdUnitId", AdmobInfo.AdmobAdFormat.Banner));
            admobAdUnits.Add(new AdmobInfo.AdmobAdUnit("Admob_Interstitial_AdUnitId", AdmobInfo.AdmobAdFormat.Interstitial));
            admobAdUnits.Add(new AdmobInfo.AdmobAdUnit("Admob_RewardedIntersitial_AdUnitId", AdmobInfo.AdmobAdFormat.RewardedIntersitial));
            admobAdUnits.Add(new AdmobInfo.AdmobAdUnit("Admob_Rewarded_AdUnitId", AdmobInfo.AdmobAdFormat.Rewarded));
            admobAdUnits.Add(new AdmobInfo.AdmobAdUnit("Admob_Native_AdUnitId", AdmobInfo.AdmobAdFormat.Native));
            GSMCore.Instance.SetAdmobInfo(new AdmobInfo("YOUR_ADMOB_APPID", admobAdUnits));
            //Khởi tạo GSM
            GSMCore.Instance.Init();
           
        });

10. Set Facebook Info

  • Trường hợp game có sử dụng Facebook

  • Chú ý: Cần set trước khi call GSMCore.Instance.Init();

GSMCore.Instance.SetFacebookInfo(FacebookInfo facebookInfo)

Code mẫu:

        GSM.Core.GSMCore.Instance.GetConfig(response =>
        {
#if UNITY_EDITOR
            //Mặc định Editor là Development
            GSMCore.Instance.SetEnvironment(Environment.Development);
#else
            //Khởi tạo GSM SDK với environment được config từ trên server
            GSMCore.Instance.SetEnvironment(response.environment);
#endif
            //string data=response.data;
            //Xử lý logic cho data nếu có từ trên server trả về   
            //Thiết lập thông tin Facebook
            GSMCore.Instance.SetFacebookInfo(new GSM.Models.FacebookInfo("FACEBOOK_APP_ID", "FACEBOOK_CLIENT_TOKEN"));
            //Khởi tạo GSM
            GSMCore.Instance.Init();
           
        });

Last updated