{"id":29672622,"url":"https://github.com/nguyenbamanh1/unitymonetization","last_synced_at":"2026-05-09T16:02:15.463Z","repository":{"id":305111485,"uuid":"1009349969","full_name":"nguyenbamanh1/UnityMonetization","owner":"nguyenbamanh1","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-18T09:34:25.000Z","size":682,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-18T12:08:53.069Z","etag":null,"topics":["admob","applovin-max","ironsource","monetization","unity-plugin"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nguyenbamanh1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-27T01:48:21.000Z","updated_at":"2025-07-18T09:34:28.000Z","dependencies_parsed_at":"2025-07-18T12:09:08.784Z","dependency_job_id":"9652ffb3-dfbd-4747-b3d6-1b4a60fce56f","html_url":"https://github.com/nguyenbamanh1/UnityMonetization","commit_stats":null,"previous_names":["nguyenbamanh1/unitymonetization"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/nguyenbamanh1/UnityMonetization","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nguyenbamanh1%2FUnityMonetization","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nguyenbamanh1%2FUnityMonetization/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nguyenbamanh1%2FUnityMonetization/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nguyenbamanh1%2FUnityMonetization/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nguyenbamanh1","download_url":"https://codeload.github.com/nguyenbamanh1/UnityMonetization/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nguyenbamanh1%2FUnityMonetization/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266572704,"owners_count":23950075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["admob","applovin-max","ironsource","monetization","unity-plugin"],"created_at":"2025-07-22T21:06:42.159Z","updated_at":"2026-05-09T16:02:15.453Z","avatar_url":"https://github.com/nguyenbamanh1.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# UnityMonetization\n\n**UnityMonetization** là một thư viện C# giúp nhà phát triển Unity dễ dàng tích hợp và chuyển đổi giữa nhiều mạng quảng cáo khác nhau như **AdMob**, **AppLovin MAX**,... chỉ với một giao diện thống nhất.\nDự án được thiết kế để tiết kiệm thời gian tích hợp và tối ưu hóa luồng doanh thu quảng cáo trong game/app Unity.\n\n---\n\n## 🚀 Tính năng nổi bật\n\n* Hỗ trợ nhiều mạng quảng cáo: **AdMob 9.2.0**, **MAX SDK 8.x**, v.v.\n* Thiết kế module mở rộng, dễ dàng thêm hoặc chuyển đổi network.\n* Hoạt động với **mọi phiên bản Unity** (thư viện độc lập .dll).\n* Tích hợp nhanh chóng chỉ với vài bước đơn giản.\n* API thống nhất, giúp giảm thiểu việc viết lại mã khi thay đổi nền tảng quảng cáo.\n\n---\n\n## 📦 Cài đặt\n\n### Bước 1: Tải thư viện\n\nClone hoặc tải release `.dll` từ repo:\n\n```bash\ngit clone https://github.com/nguyenbamanh1/UnityMonetization.git\n```\n\nHoặc tải file `.dll` từ mục [Releases](https://github.com/nguyenbamanh1/UnityMonetization/releases).\n\n### Bước 2: Thêm vào Unity\n\n1. Mở dự án Unity của bạn.\n2. Tạo thư mục `Assets/Plugins/UnityMonetization/` (nếu chưa có).\n3. Thêm các file `.dll` vào thư mục trên.\n4. Unity sẽ tự động nhận diện và load thư viện.\n\n\u003e ⚠️ Đối với Max và IronSource không thể chạy cùng 1 lúc 2 mạng cùng lúc bạn hãy tắt tuỳ chọn sử dụng `Max.dll` hoặc `IronSource.dll` trong Unity\n### Ignore IronSource\n![Logo](ignore_ironSource.png)\n---\n\n## 🛠️ Yêu cầu\n\n* Unity: không giới hạn phiên bản (cần hỗ trợ `.dll`)\n* Các SDK tương ứng của nền tảng quảng cáo:\n\n  * AdMob SDK: `v9.2.0`\n  * AppLovin MAX SDK: `8.x`\n\n\u003e ⚠️ Bạn cần tự tích hợp SDK gốc của từng network theo hướng dẫn riêng của họ (UnityMonetization không bao gồm sẵn SDK gốc).\n\n---\n\u003e ⚠️ Đối với mạng `Admob` BannerPosition không hỗ trợ CenterLeft và CenterRight. MRect admob thực chất chỉ là banner ở dạng `MediumRectangle` `(300, 250)`\n\n\u003e ⚠️ Đối với `Admob` kiểu `Adaptive` size sẽ được tự động hoá và `sizeType` sẽ không hoạt động\n\n\u003e ⚠️ Đối với mạng `Max` Banner chỉ hỗ trợ `Normal` và `Adaptive`. Và banner không hỗ trợ `custom size`, chỉ nên dùng size `normal`\n\n\u003e ⚠️ Đối với mạng `IronSource` không hỗ trợ `AOA unit`.\n\n```csharp\nnamespace UnityMonetization\n{\n    [System.Serializable]\n    public abstract class AdOption\n    {\n        [SerializeField] public string _adName = string.Empty;\n        [SerializeField] public string _adUnitId = string.Empty;\n        [SerializeField] public AdUnitType _adNetType = AdUnitType.MAX;\n        public string AdName =\u003e _adName;\n\n        public string AdUnitId =\u003e _adUnitId;\n    }\n}\n\nnamespace UnityMonetization\n{\n    [System.Serializable]\n    public class BannerOption : AdOption\n    {\n        [SerializeField] public BannerPosition position = BannerPosition.Top;\n        [SerializeField] public BannerType type = BannerType.Normal;\n\n        [SerializeField] public BannerSize sizeType = BannerSize.Normal;\n        [SerializeField] public Vector2Int customSize = default;\n\n        public BannerPosition Position =\u003e position;\n\n        public BannerType Type =\u003e type;\n\n        public BannerSize Size =\u003e sizeType;\n\n        public Vector2Int CustomSize =\u003e customSize;\n    }\n}\n\nnamespace UnityMonetization\n{\n    [Serializable]\n    public class IntersititialOption : AdOption\n    {\n    }\n}\n\nnamespace UnityMonetization\n{\n    [Serializable]\n    public class RewardOption : AdOption\n    {\n    }\n}\n\nnamespace UnityMonetization\n{\n    [Serializable]\n    public class AppOpenOption : AdOption\n    {\n    }\n}\n```\n\n```csharp\nusing UnityMonetization;\nusing GoogleMobileAds.Api;\n\npublic enum AdUnitType\n{\n    MAX,\n    Admob,\n    IronSource\n}\n\npublic class AdsExample : MonoBehaviour\n{\n\n    [SerializeField] BannerOption _banner;\n    [SerializeField] IntersititialOption _inter;\n    [SerializeField] RewardOption _reward;\n    [SerializeField] AppOpenOption _aoa;\n\n    void Init()\n    {\n        MobileAds.Initialize((init) =\u003e\n        {\n            _bannerUnit = UnityMonetizationFactory.CreateBanner(_banner.AdNetType, _banner.AdUnitId, _banner.Position);\n            _bannerUnit.SetType(_banner.Type);\n            _bannerUnit.SetSizeType(_banner.Size);\n            _bannerUnit.SetSize(_banner.CustomSize);\n\n            _interstitialUnit = UnityMonetizationFactory.CreateInter(_inter.AdNetType, _inter.AdUnitId);\n            _rewardUnit = UnityMonetizationFactory.CreateReward(_reward.AdNetType, _reward.AdUnitId);\n            _appOpenUnit = UnityMonetizationFactory.CreateAOA(_aoa.AdNetType, _aoa.AdUnitId);\n        });\n    }\n}\n```\n## Inspector Preview\n![Logo](preview.png)\n\n## 📁 Cấu trúc thư viện\n\n```\nUnityMonetization/\n│\n├── Core/              # Giao diện và lớp chung\n├── Admob/             # Cài đặt và adapter cho AdMob\n├── Max/               # Cài đặt và adapter cho AppLovin MAX\n└── IronSource/             # Các tiện ích hỗ trợ\n├── UnityMonetization/\n```\n\n---\n\n## 🤝 Đóng góp\n\nBạn có thể đóng góp bằng cách:\n\n* Gửi pull request cải thiện thư viện\n* Mở issue nếu phát hiện lỗi\n* Góp ý về cách tích hợp mạng quảng cáo khác\n\n---\n\n## 📄 License\n\n[MIT License](LICENSE)\n\n---\n\n## 📢 Liên hệ\n\nTác giả: **Nguyễn Bá Mạnh**\nGitHub: [@nguyenbamanh1](https://github.com/nguyenbamanh1)\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnguyenbamanh1%2Funitymonetization","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnguyenbamanh1%2Funitymonetization","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnguyenbamanh1%2Funitymonetization/lists"}