I. Tải về và cấu hình SDK
Version: v1.2.2.3
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.2.3 từ trang phát hành.
Sử dụng phiên bản GSMSDK_MessagePack v1.2.2.3.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 v1.2.2.3.unitypackage dành cho phiên bản Unity từ
2020.x.x
trở lên.Từ phiên bản 1.2.23 thì cần xóa bỏ GSMObject Prefab ở version cũ
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
Chú ý: Nếu đã GSM SDK rồi, xóa bỏ. Sau đó Import mới, và cập nhật các thông số tương ứng
4. Cấu hình GSM Settings
Sau khi đã thêm SDK vào dự án.
Tại menu:
GSM → GSM Settings


Sau khi nhập các thông tin thì click vào Save Settings để lưu lại
Các thông số:
Auto Init:
Nếu tích vào, thì SDK sẽ tự thực hiện GSMCore.Instance.Init(); và ngược lại. (Chỉ có tác dụng với Android và IOS, còn WebGL thì không)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ôngLog Runtime
: Trong quá trình phát triển thì tích chọn để xem debug. Khi buidProduction
thì bỏ tích chọn.Request Timeout
: Thời gian tối đa chờ 1 request lên server

Chú ý:
Khi buid lên store thì cần để bỏ chọn Log Runtime
Các Setting khác:
Thiết lập dành cho MAX

Enable Max: Trường hợp game sử dụng MAX SDK thì cần bật cái này
Sdk Key: Là SdkKey của MAX, giá trị này được cung cấp từ Project Manager của dự án.
Android MAX UnitIds: Là nơi chứa các AdUnitId của MAX
AdUnitId: Là Id của các loại quảng cáo.
AdFormat: Là các định dạng quảng cáo phù hợp với AdUnitId
IOS MAX UnitIds: tương tự Android MAX UnitIds nhưng dành cho IOS
Admob IOS AppId: Nếu trong MAX Mediation có sử dụng Admob Network thì cần có giá trị này: (Format: ca-app-pub-XXXXXXXXXXXXXXXXX~YYYYYYYYYY
Thiết lập dành cho Admob

Admob Sdk Version: Là phiên bản hiện tại của Admob SDK (GoogleMobileAds). Bỏ trống nếu game đang không sử dụng GoogleMobileAds
Android
Admob Android AppId: Có sử dụng Admob dù ở MAX hay AdMob thì cần có giá trị này: (Format: ca-app-pub-XXXXXXXXXXXXXXXXX~YYYYYYYYYY)
Android Admob UnitIds: Là chứa các UnitId và các định dạng quảng cáo tương ứng với Admob
IOS: Tương tự Android
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.
5.1 Trường 1: Auto Init = true
Trường hợp ở bước 4: tích chọn Auto Init
Sử dụng sự kiện OnGetConfig để lấy thông tin khi SDK GetConfig thành công, và chỉ có tác dụng với Scene đầu tiên trong game.
Code mẫu
void Awake() {
GSMCore.OnGetConfig+= (configResponse) =>
{
Debug.Log("Environment: " + configResponse.environment);
};
}
5.2 Trường hợp 2: Auto Init = false
Trường hợp này, phía Dev phải tự GetConfig thủ công và sau đó thực hiện khởi tạo GSM
Code mẫu: (Nếu ở Bước 4: Không tích chọn Auto Init thì phải call GetConfig)
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
Đối với WebGL hoặc Facebook Instant thì không dùng chế độ AutoInit
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
Mục đích là đưa thông tin SDK của Adjust lên Server
Tải và import các package với link tương ứng với Adjust Version bên dưới.
Cách sử dụng:
Vào Scripts ⇒ AdjustPlugin ⇒ Prefabs ⇒ GSMAdjustInfo
Kéo vào Scene đang chứa Adjust Prefab

7. Set Ironsource Info
Trường hợp game có sử dụng Ironsource thì phải thực hiện
Mục đích là để đẩy các thông tin của SDK Ironsource lên server.
Download và Import package: GSM_Ironsource_Plugin v0.0.0.2.unitypackage
Sau khi import thì sẽ thấy code ở:
Plugins ⇒ CSCMobiPlugin ⇒ IronsourcePlugin ⇒ Scripts ⇒ GSMIronsourceInfo.cs
8. Set MAX Info
Trường hợp game có sử dụng MAX thì phải thực hiện
Mục đích là đẩy các thông tin của MAX Sdk lên server.
Download và import: GSM_Max_Plugin v0.0.0.2.unitypackage
Sau khi Import sẽ thấy code ở:
Plugins ⇒ CSCMobiPlugin ⇒ MaxPlugin⇒ Scripts ⇒
GSMMaxInfocs
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
Download và Import package: GSM_Admob_Plugin v0.0.0.2.unitypackage
Sau khi import xong sẽ thấy:
Plugins ⇒ CSCMobiPlugin ⇒ AdmobPlugin⇒ Scripts ⇒
GSMAdmobInfo.cs
10. Set Facebook Info
Trường hợp game có sử dụng Facebook SDK
Mục đích để đẩy thông tin Facebook SDK lên server
Download và Import package: GSM_Facebook_Plugin v0.0.0.2.unitypackage
Sau khi import xong sẽ thấy:
Plugins ⇒ CSCMobiPlugin ⇒
FacebookPlugin⇒ Scripts ⇒
GSMFacebookInfo.cs
Last updated