using Firebase.Analytics; using ShiroginSDK.Runtime.Modules.Analytics.Enums; namespace ShiroginSDK.Runtime.Modules.Analytics.Scripts { /// /// Maps unified AnalyticsEventType values to their respective names /// in Firebase, AppsFlyer, and Facebook SDKs. /// public static class AnalyticsEventMapper { // ---------------- FIREBASE ---------------- public static string GetFirebaseName(AnalyticsEventType type) { return type switch { // Core events AnalyticsEventType.Purchase => FirebaseAnalytics.EventPurchase, AnalyticsEventType.AchievementUnlocked => FirebaseAnalytics.EventUnlockAchievement, AnalyticsEventType.TutorialBegin => FirebaseAnalytics.EventTutorialBegin, AnalyticsEventType.TutorialComplete => FirebaseAnalytics.EventTutorialComplete, AnalyticsEventType.AdView => "ad_view", AnalyticsEventType.AdImpression => FirebaseAnalytics.EventAdImpression, AnalyticsEventType.AdClick => "ad_click", AnalyticsEventType.SessionStart => "session_start", AnalyticsEventType.SessionEnd => "session_end", AnalyticsEventType.SignUp => FirebaseAnalytics.EventSignUp, AnalyticsEventType.Login => FirebaseAnalytics.EventLogin, AnalyticsEventType.AppOpen => FirebaseAnalytics.EventAppOpen, // Parameters (Firebase naming from SDK) AnalyticsEventType.ItemId => FirebaseAnalytics.ParameterItemID, AnalyticsEventType.ItemName => FirebaseAnalytics.ParameterItemName, AnalyticsEventType.ItemCategory => FirebaseAnalytics.ParameterItemCategory, AnalyticsEventType.AdFormat => FirebaseAnalytics.ParameterAdFormat, AnalyticsEventType.AdPlatform => FirebaseAnalytics.ParameterAdPlatform, AnalyticsEventType.AdSource => FirebaseAnalytics.ParameterAdSource, AnalyticsEventType.Currency => FirebaseAnalytics.ParameterCurrency, AnalyticsEventType.Level => FirebaseAnalytics.ParameterLevel, AnalyticsEventType.Location => FirebaseAnalytics.ParameterLocation, AnalyticsEventType.PaymentType => FirebaseAnalytics.ParameterPaymentType, AnalyticsEventType.Price => FirebaseAnalytics.ParameterPrice, AnalyticsEventType.Quantity => FirebaseAnalytics.ParameterQuantity, AnalyticsEventType.Score => FirebaseAnalytics.ParameterScore, AnalyticsEventType.Success => FirebaseAnalytics.ParameterSuccess, AnalyticsEventType.Value => FirebaseAnalytics.ParameterValue, _ => "undefined" }; } // ---------------- APPSFLYER ---------------- public static string GetAppsFlyerName(AnalyticsEventType type) { return type switch { // Core events AnalyticsEventType.Purchase => AFInAppEvents.PURCHASE, AnalyticsEventType.AchievementUnlocked => AFInAppEvents.ACHIEVEMENT_UNLOCKED, AnalyticsEventType.TutorialBegin => "af_tutorial_begin", AnalyticsEventType.TutorialComplete => AFInAppEvents.TUTORIAL_COMPLETION, AnalyticsEventType.AdView => "af_ad_view", AnalyticsEventType.AdImpression => "af_ad_impression", AnalyticsEventType.AdClick => "af_ad_click", AnalyticsEventType.SessionStart => "af_session_start", AnalyticsEventType.SessionEnd => "af_session_end", AnalyticsEventType.SignUp => AFInAppEvents.COMPLETE_REGISTRATION, AnalyticsEventType.Login => AFInAppEvents.LOGIN, AnalyticsEventType.AppOpen => AFInAppEvents.RE_ENGAGE, // Parameters (AppsFlyer naming from SDK) AnalyticsEventType.ItemId => AFInAppEvents.CONTENT_ID, AnalyticsEventType.ItemName => "af_item_name", AnalyticsEventType.ItemCategory => AFInAppEvents.CONTENT_TYPE, AnalyticsEventType.AdFormat => "af_ad_format", AnalyticsEventType.AdPlatform => "af_ad_platform", AnalyticsEventType.AdSource => "af_ad_source", AnalyticsEventType.Currency => AFInAppEvents.CURRENCY, AnalyticsEventType.Level => AFInAppEvents.LEVEL, AnalyticsEventType.Location => AFInAppEvents.LOCATION_COORDINATES, AnalyticsEventType.PaymentType => "af_payment_type", AnalyticsEventType.Price => AFInAppEvents.PRICE, AnalyticsEventType.Quantity => AFInAppEvents.QUANTITY, AnalyticsEventType.Score => AFInAppEvents.SCORE, AnalyticsEventType.Success => AFInAppEvents.SUCCESS, AnalyticsEventType.Value => AFInAppEvents.REVENUE, _ => "undefined" }; } // ---------------- FACEBOOK ---------------- public static string GetFacebookName(AnalyticsEventType type) { return type switch { // Core events AnalyticsEventType.Purchase => "fb_mobile_purchase", AnalyticsEventType.AchievementUnlocked => "fb_mobile_achievement_unlocked", AnalyticsEventType.TutorialBegin => "fb_tutorial_begin", AnalyticsEventType.TutorialComplete => "fb_tutorial_complete", AnalyticsEventType.AdView => "ad_view", AnalyticsEventType.AdImpression => "ad_impression", AnalyticsEventType.AdClick => "ad_click", AnalyticsEventType.SessionStart => "fb_mobile_session_start", AnalyticsEventType.SessionEnd => "fb_mobile_session_end", AnalyticsEventType.SignUp => "fb_mobile_complete_registration", AnalyticsEventType.Login => "fb_mobile_login", AnalyticsEventType.AppOpen => "fb_mobile_activate_app", // Parameters (Facebook naming convention) AnalyticsEventType.ItemId => "fb_content_id", AnalyticsEventType.ItemName => "fb_content_title", AnalyticsEventType.ItemCategory => "fb_content_type", AnalyticsEventType.AdFormat => "ad_format", AnalyticsEventType.AdPlatform => "ad_platform", AnalyticsEventType.AdSource => "ad_source", AnalyticsEventType.Currency => "fb_currency", AnalyticsEventType.Level => "fb_level", AnalyticsEventType.Location => "fb_location", AnalyticsEventType.PaymentType => "payment_type", AnalyticsEventType.Price => "fb_price", AnalyticsEventType.Quantity => "num_items", AnalyticsEventType.Score => "fb_score", AnalyticsEventType.Success => "fb_success", AnalyticsEventType.Value => "fb_value", _ => "undefined" }; } } }