154 lines
No EOL
7.6 KiB
C#
154 lines
No EOL
7.6 KiB
C#
using ShiroginSDK.Runtime.Modules.Analytics.Enums;
|
|
#if SHIROGIN_ANALYTICS || SHIROGIN_FIREBASE_ANALYTICS
|
|
using Firebase.Analytics;
|
|
#endif
|
|
namespace ShiroginSDK.Runtime.Modules.Analytics.Scripts
|
|
{
|
|
/// <summary>
|
|
/// Maps unified AnalyticsEventType values to their respective names
|
|
/// in Firebase, AppsFlyer, and Facebook SDKs.
|
|
/// </summary>
|
|
public static class AnalyticsEventMapper
|
|
{
|
|
// ---------------- FIREBASE ----------------
|
|
#if SHIROGIN_ANALYTICS || SHIROGIN_FIREBASE_ANALYTICS
|
|
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"
|
|
};
|
|
}
|
|
#else
|
|
public static string GetFirebaseName(AnalyticsEventType type)
|
|
{
|
|
return null;
|
|
}
|
|
#endif
|
|
|
|
// ---------------- APPSFLYER ----------------
|
|
#if SHIROGIN_ANALYTICS || SHIROGIN_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"
|
|
};
|
|
}
|
|
#else
|
|
public static string GetAppsFlyerName(AnalyticsEventType type)
|
|
{
|
|
return null;
|
|
}
|
|
#endif
|
|
|
|
// ---------------- FACEBOOK ----------------
|
|
#if SHIROGIN_ANALYTICS || SHIROGIN_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"
|
|
};
|
|
}
|
|
#else
|
|
public static string GetFacebookName(AnalyticsEventType type)
|
|
{
|
|
return null;
|
|
}
|
|
#endif
|
|
}
|
|
} |