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 Productionthì 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();
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();
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();
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();
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();
});