Пример #1
0
    private void SaveStatusInfo(CloData cloInfo)
    {
        if (cloInfo == null)
        {
            return;
        }

        PlayerPrefs.SetInt(IsUserKey, BoolToInt(cloInfo.user));
        PlayerPrefs.Save();
    }
Пример #2
0
    private void GenerateOrganicData(CloData cloData, Action generateOrganicDataCallback)
    {
        var organicData = new TrackLinkData
        {
            key    = cloData.organic?.org_key ?? "none",
            sub1   = cloData.organic?.sub1 ?? "none",
            sub2   = cloData.organic?.sub2 ?? "none",
            sub3   = cloData.organic?.sub3 ?? "none",
            source = "none"
        };

        GenerateLink(cloData, organicData, generateOrganicDataCallback);
    }
Пример #3
0
    private void CheckNamingOrCreateOrganicData(CloData cloData, Action namingOrOrganicDataCallback)
    {
        if (cloData.naming)
        {
            RequestTrackLinkDataFromNaming(cloData.media_sources.ToList(), namingData =>
            {
                if (namingData != null)
                {
                    GenerateLink(cloData, namingData, namingOrOrganicDataCallback);
                    return;
                }

                if (cloData.organic?.org_status == true)
                {
                    GenerateOrganicData(cloData, namingOrOrganicDataCallback);
                }
                else
                {
                    cloData.user = false;
                    UnityMainThreadDispatcher.Instance().Enqueue(SaveTrackLink("none", namingOrOrganicDataCallback));
                }
            });
        }
        else
        {
            if (cloData.organic?.org_status == true)
            {
                GenerateOrganicData(cloData, namingOrOrganicDataCallback);
            }
            else
            {
                cloData.user = false;
                UnityMainThreadDispatcher.Instance().Enqueue(SaveTrackLink("none", namingOrOrganicDataCallback));
            }
        }
    }
Пример #4
0
    private void GenerateLink(CloData cloData, TrackLinkData trackLinkData, Action linkGeneratedCallback)
    {
        RequestAdvertiserId(advertiserId =>
        {
            RequestAppMetricaDeviceId((metricaId) =>
            {
                var queryMap = new Dictionary <string, string>();

                queryMap["key"] = trackLinkData.key;

                if (!string.IsNullOrEmpty(trackLinkData.sub1))
                {
                    queryMap["sub1"] = trackLinkData.sub1;
                }
                if (!string.IsNullOrEmpty(trackLinkData.sub2))
                {
                    queryMap["sub2"] = trackLinkData.sub2;
                }
                if (!string.IsNullOrEmpty(trackLinkData.sub3))
                {
                    queryMap["sub3"] = trackLinkData.sub3;
                }

                var appsflyerId = AppsFlyer.getAppsFlyerId();
                if (string.IsNullOrEmpty(appsflyerId))
                {
                    appsflyerId = "none";
                }

                if (cloData.integration_version == "v1")
                {
                    var sub5 = $"{trackLinkData.source}:{advertiserId}:{appsflyerId}:{metricaId}";

                    queryMap["sub4"] = _appIdentifier;
                    queryMap["sub5"] = sub5;
                }
                else
                {
                    queryMap["bundle"]     = _appIdentifier;
                    queryMap["metrica_id"] = metricaId;
                    queryMap["apps_id"]    = appsflyerId;
                    queryMap["ifa"]        = advertiserId;

                    try
                    {
                        var subscriptionOneSignalStatus = OneSignal.GetPermissionSubscriptionState();
                        queryMap["onesignal_id"]        =
                            string.IsNullOrEmpty(subscriptionOneSignalStatus.subscriptionStatus.userId)
                                ? "none"
                                : subscriptionOneSignalStatus.subscriptionStatus.userId;
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e + "EXCEPTION!!!!!!!!!!!!!!");
                    }

                    queryMap["source"] = trackLinkData.source;
                }

                var trackLink = $"https://{cloData.track_domain}/click.php";
                var index     = 0;
                foreach (var pair in queryMap)
                {
                    trackLink += index == 0 ? "?" : "&";

                    trackLink += $"{pair.Key}={queryMap[pair.Key]}";
                    index++;
                }

                UnityMainThreadDispatcher.Instance().Enqueue(SaveTrackLink(trackLink, linkGeneratedCallback));
            });
        });
    }