Countly / countly-sdk-unity

Countly Product Analytics Unity SDK
https://count.ly/mobile-analytics
MIT License
42 stars 30 forks source link

Segmentation is broken in latest Release #216

Open ajeets1978 opened 2 months ago

ajeets1978 commented 2 months ago

I am sending an event with segmentation like following

if (data.InstallReferrer != null) segment.Add("referrer", data.InstallReferrer.Trim());

if (data.ReferrerClickTime != null) segment.Add("click_timestamp", data.ReferrerClickTime.Millisecond);

if (data.InstallBeginTime != null) segment.Add("begin_timestamp", data.InstallBeginTime.Millisecond);

if(data.InstallBeginServerTime != null) segment.Add("begin_server_time", data.InstallBeginServerTime.Millisecond); if (data.ReferrerClickServerTime != null) segment.Add("server_click_time", data.ReferrerClickServerTime.Millisecond); if (data.InstallVersion != null) segment.Add("install_version", data.InstallVersion);

segment.Add("android_id", SystemInfo.deviceUniqueIdentifier); await Countly.Instance.Events.RecordEventAsync("_install", segmentation: segment);

Enabled: Post, so its using post method.

Expected

{ "app_key": "KVdfbLC6edbb3VkdZSgfxRKd6eR-9ODd", "device_id": "7d76abb74d7c926c2b683353d139b145f62578f5", "sdk_name": "csharp-unity-editor", "sdk_version": "20.11.5", "timestamp": 1632727509046, "hour": 17, "dow": 1, "tz": "600", "events": "[\r\n {\r\n \"key\": \"_install\",\r\n \"count\": 1,\r\n \"sum\": 0.0,\r\n \"segmentation\": {\r\n \"android_id\": \"7d76abb74d7c926c2b683353d139b145f62578f5\",\r\n \"device_type\": \"Desktop\",\r\n \"device_name\": \"DESKTOP-EC95NPV\",\r\n \"device_model\": \"B450 AORUS PRO WIFI (Gigabyte Technology Co., Ltd.)\",\r\n \"device_os\": \"Windows 10 (10.0.19043) 64bit\",\r\n \"screen_width\": 387,\r\n \"screen_height\": 688,\r\n \"screen_dpi\": 96,\r\n \"app_version\": \"1.0\",\r\n \"platform\": 7,\r\n \"adid\": \"Test-Advertising-ID\"\r\n },\r\n \"timestamp\": 1632727509030,\r\n \"hour\": 17,\r\n \"dow\": 1\r\n }\r\n]" }

Actual

{ "t": "0", "av": "0.13", "rr": "0", "tz": "600", "dow": "1", "adid": "admob\",\r\n \"click_timestamp\": 22,\r\n \"begin_timestamp\": 22,\r\n \"begin_server_time\": 22,\r\n \"server_click_time\": 22,\r\n \"install_version\": \"1.0\",\r\n \"android_id\": \"7d76abb74d7c926c2b683353d139b145f62578f5\"\r\n },\r\n \"timestamp\": 1714348407031,\r\n \"hour\": 9,\r\n \"dow\": 1\r\n }\r\n]", "hour": "9", "events": "[\r\n {\r\n \"key\": \"_install\",\r\n \"count\": 1,\r\n \"sum\": 0.0,\r\n \"segmentation\": {\r\n \"referrer\": \"utm_source=google", "app_key": "KVdfbLC6edbb3VkdZSgfxRKd6eR-9ODd", "sdk_name": "csharp-unity-editor", "utm_term": "1", "device_id": "KVdfbLC6edbb3VkdZSgfxRKd6eR-9ODd", "timestamp": "1714348469052", "ip_address": "101.117.0.2", "utm_medium": "cpc", "checksum256": "8ad1d96fa70303a855c7774e72e2a1cf7e45a432d17633e6daa6bf27e17f1883", "sdk_version": "23.12.1", "utm_content": "2", "utm_campaign": "3" }

It is breaking segmentation as random separate keys. In logs I can see the body params

body: app_key=KVdfbLC6edbb3VkdZSgfxRKd6eR-9ODd&device_id=KVdfbLC6edbb3VkdZSgfxRKd6eR-9ODd&t=0&sdk_name=csharp-unity-editor&sdk_version=23.12.1&av=0.13&timestamp=1714348469052&hour=9&dow=1&tz=600&events=[%0D%0A%20%20%7B%0D%0A%20%20%20%20%22key%22:%20%22_install%22,%0D%0A%20%20%20%20%22count%22:%201,%0D%0A%20%20%20%20%22sum%22:%200.0,%0D%0A%20%20%20%20%22segmentation%22:%20%7B%0D%0A%20%20%20%20%20%20%22referrer%22:%20%22utm_source=google&utm_medium=cpc&utm_term=1&utm_content=2&utm_campaign=3&adid=admob%22,%0D%0A%20%20%20%20%20%20%22click_timestamp%22:%2022,%0D%0A%20%20%20%20%20%20%22begin_timestamp%22:%2022,%0D%0A%20%20%20%20%20%20%22begin_server_time%22:%2022,%0D%0A%20%20%20%20%20%20%22server_click_time%22:%2022,%0D%0A%20%20%20%20%20%20%22install_version%22:%20%221.0%22,%0D%0A%20%20%20%20%20%20%22android_id%22:%20%227d76abb74d7c926c2b683353d139b145f62578f5%22%0D%0A%20%20%20%20%7D,%0D%0A%20%20%20%20%22timestamp%22:%201714348407031,%0D%0A%20%20%20%20%22hour%22:%209,%0D%0A%20%20%20%20%22dow%22:%201%0D%0A%20%20%7D%0D%0A]&rr=0 response: StatusCode: 200, IsSuccess: True, ErrorMessage: , Data: {"result":{"status":1,"message":"success"}}

This was a working code, with some previous version of Countly Unity SDK. I just updated the countly SDK.

AliRKat commented 2 months ago

Hello, thanks for reaching out.

Normally this is not the behavior we expect. We will investigate if there is a specific issue with the version upgrade. In the meantime, could you please provide us the SDK logs and your Countly server version so we can investigate the situation correctly.

Thank you.