Отслеживание рефералов для установки приложения с использованием firebase - PullRequest
0 голосов
/ 20 сентября 2019

Пытаюсь отследить рефералов от user1 до user2 с помощью firebase.Вот что вы сделали.

От приглашающего лица генерируется следующая ссылка

https://play.google.com/store/apps/details?id=com.mindedges.freegiveaway.freegiveaway&invitedby=xyzuser

Таким образом, получатель получает вышеуказанную ссылку, сгенерированную следующим кодом:

private void sendNativeInvites(){
        String email = UserUtils.getCurrentUser(this).getEmail();
        String packageName = getPackageName();
        String link = "https://play.google.com/store/apps/details?id="+packageName+"&invitedby=" + email;

        DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
                .setLink(Uri.parse(link))
                .setDomainUriPrefix("https://freegiveaway.page.link")
                .setAndroidParameters(
                        new DynamicLink.AndroidParameters.Builder(getPackageName()).build())
                .buildDynamicLink();


        Uri dynamicLinkUri = dynamicLink.getUri();
        doSendInvite(dynamicLinkUri);
    }

Когда получатель нажимает на ссылку, он переходит в playstore, и я ожидаю, что приложение будет установлено и запущено с указанной выше глубокой ссылкой.

Об основной активности приложения iу меня есть следующий код для получения реферера, но я не могу его найти.

private void fetchReferrerIfPresent(){
        Log.d(TAG, "fetchReferrerIfPresent");
        FirebaseDynamicLinks.getInstance()
                .getDynamicLink(getIntent())
                .addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
                    @Override
                    public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
                        // Get deep link from result (may be null if no link is found)
                        Uri deepLink = null;
                        if (pendingDynamicLinkData != null) {
                            deepLink = pendingDynamicLinkData.getLink();
                        }

                        Log.d(TAG,"deepLink = " + deepLink); //Getting null
                        if (deepLink != null && deepLink.getBooleanQueryParameter("invitedby", false)) {
                            referrerEmail = deepLink.getQueryParameter("invitedby");
                            Log.d(TAG, "Found referrerEmail.  referrerEmail = " + referrerEmail);
                        }else{
                            Log.d(TAG, "No referrer found");
                        }
                    }
                }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Log.e(TAG, "Exception while fetching  referrerEmail", e);
            }
        });
    }

В манифесте у меня есть:

<activity
            android:name="com.mindedges.freegiveaway.freegiveaway.LoginActivity"
            android:label="@string/app_name"
            android:noHistory="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <!--
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                    -->
                <data
                    android:host="freegiveaway.page.link"
                    android:scheme="https" />

                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...