Kushtet paraprake:

  1. Një mekanizëm unik i gjenerimit të kodit të referimit për çdo përdorues (duhet të bëhet në backend).
  2. Testimi i veçorisë mund të bëhet në versionin e zhvilluesit të aplikacionit tuaj.
  3. Aplikimi dhe kontrollimi i vlefshmërisë së kodit të referimit duhet të bëhet me kërkesën tuaj të API-së në fund. (Nuk tregohet këtu)

Zbatimi:

Dërguesi:

Kjo perspektivë është e përdoruesit që tashmë ka instaluar aplikacionin tuaj dhe tani do të referojë mikun e tij duke përdorur kodin dhe lidhjen e tij unike të referimit.

  1. Merrni kodin tuaj unik të referimit nga mbështetja juaj. P.sh. Kodi: qwertyuiop
  2. Gjeneroni një lidhje të vlefshme të "Dyqanit të Play" të aplikacionit tuaj në versionin e versionit dhe shfaqni një opsion për t'u ndarë. P.sh. https://play.google.com/store/apps/details?id={PACKAGE_NAME}&referrer=utm_source%3Drefer%26utm_content%qwertyuiop
  3. Kuptimi i "utm_source" dhe "utm_content".
  4. Mund të ketë shumë mënyra që një përdorues mund të vijë në aplikacionin tuaj në Play Store, që mund të jetë një reklamë në Facebook, reklamë në Instagram ose ndonjë gjë tjetër. Në rastin tonë, është një lidhje referimi për miq. Pra, kjo do të thotë se burimi i arritjes së aplikacionit (utm_source) është referimi. Kështu që ju mund të shtoni këtu parametrin e pyetjes si "utm_source=refer" (mund të jetë çdo vlerë vargu) dhe nëse ka ndonjë përmbajtje të bashkangjitur me lidhjen (kodi i referimit) mund të shtohet si "utm_content=qwertyuiop".
  5. Ju mund të krijoni lidhjen e referimit për përdoruesin si kjo:
https://play.google.com/store/apps/details?id= + appId + "&referrer=utm_source%3Drefer%26utm_content%3D${code}"

Merrni ID-në tuaj të aplikacionit nga build.gradle e aplikacionit tuaj.

1. Tani, që tashmë keni ndarë një lidhje me mikun tuaj.

2. Shoku juaj duhet të klikojë në lidhjen për të lundruar në Play Store dhe të shkarkojë aplikacionin tuaj.

3. Pasi shoku të shkarkojë aplikacionin, ne duhet të marrim kodin e referimit duke përdorur bibliotekën e referimit Play dhe ta ruajmë për ta aplikuar më vonë në profil ose në çdo ekran tjetër që dëshironi.

Marrësi:

Miku që sapo shkarkoi aplikacionin nga lidhja juaj e referimit.

  1. Merrni kodin në MainActivity:
private lateinit var referrerClient: InstallReferrerClient
//Call this in onCreate()
private fun initReferralTracking() {
    referrerClient = InstallReferrerClient.newBuilder(this).build()
    referrerClient.startConnection(object : InstallReferrerStateListener {

        override fun onInstallReferrerSetupFinished(responseCode: Int) {
            when (responseCode) {
                InstallReferrerClient.InstallReferrerResponse.OK -> {
                    // Connection established.
                    obtainReferrerDetails()
                }

                InstallReferrerClient.InstallReferrerResponse.SERVICE_UNAVAILABLE -> {
                    // Connection couldn't be established.
                }

                InstallReferrerClient.InstallReferrerResponse.FEATURE_NOT_SUPPORTED -> {
                    // API not available on the current Play Store app.
                }
            }
        }

        override fun onInstallReferrerServiceDisconnected() {
            // Try to restart the connection on the next request to
            // Google Play by calling the startConnection() method.
        }
    })
}

2. Në “InstallReferrerClient.InstallReferrerResponse.OK”, ne mund të marrim detajet e referimit.

private fun obtainReferrerDetails() {
    val response: ReferrerDetails = referrerClient.installReferrer
    Log.d(TAG, "response - $response")
    val referrerUrl: String = response.installReferrer
    Log.d(TAG, "referrerUrl - $referrerUrl")//referrerUrl - utm_source=google-play&utm_medium=organic //it's default value only

    if (referrerUrl.isNotEmpty()) {
        val referrerParts = referrerUrl.split("&")//split with &
        Log.d(TAG, "referrerParts - $referrerParts")//divided in 2 parts utm_source,utm_content

        val utmSource = referrerParts.find {
            it.contains("utm_source")
        }?.split("=")?.get(1)//get the value of utm_source
        Log.d(TAG, "utmSource - $utmSource")

        if (utmSource != null && utmSource == "refer") {
            val utmContent = referrerParts.find {
                it.contains("utm_content")
            }?.split("=")?.get(1)//get the value of utm_content
            Log.d(TAG, "utmContent - $utmContent")

            if (utmContent != null) {
                val refCode = utmContent//save apply the code anywhere
            }
        }
    }
    referrerClient.endConnection()//end the connection after checking
}

3. Wohoo!! Çfarëdo që kemi bërë do të funksionojë siç pritej dhe do të marrim kodin e referimit përmes utm_content sapo shoku juaj të shkarkojë aplikacionin (ose ju mund ta ndërtoni aplikacionin nga Android Studio dhe ta hapni atë vetëm duke përdorur Play Store).

Por…… ka një problem të madh tani.

Ne po kontrollojmë për kodin e referimit sa herë që fillon MainActivity, ky është një goditje e panevojshme e performancës. Mund ta shmangim pak duke përdorur Dyqanin tonë të të Dhënave.

Ideja ishte të ruanim një çelës Boolean në Proto Datastore me emrin "isReferralChecked", i cili do të na ndihmojë të ekzekutojmë të gjithë këtë gjë vetëm në fillimin e aplikacionit.

4. Krijo një protostore të të dhënave duke ndjekur këtë artikull.

5. Merrni çelësin Boolean në ViewModel/repo tuaj si kjo...

val isReferralChecked = prefManager.userData
    .map {
        UiState.Success(it.isReferralChecked)//Using UiState wrapper to confirm the data is present
    }
    .stateIn(
        scope = viewModelScope,
        started = SharingStarted.Eagerly,
        initialValue = UiState.Loading,//As it might take small instant to load the data
    )

6. Krijoni një kontroll në MainActivity dhe kontrolloni për referime vetëm pas kësaj.

lifecycleScope.launch {//in onCreate
    mainViewModel.isReferralChecked.collect {
        if (it is UiState.Success && !it.data) {//means it wass not cheked before
            initReferralTracking()
        }
    }
}

7. Shënoni këtë Boolean si të vërtetë pasi të keni kontrolluar referimin...

private fun obtainReferrerDetails() {
    val response: ReferrerDetails = referrerClient.installReferrer
        Log.d(TAG, "response - $response")
        val referrerUrl: String = response.installReferrer
        Log.d(TAG, "referrerUrl - $referrerUrl")

        if (referrerUrl.isNotEmpty()) {
            ...
            if (utmContent != null) {
                mainViewModel.setReferCode(utmContent)//See Point 8
            }
        }

    mainViewModel.setReferralChecked()//isReferralChecked=true
    referrerClient.endConnection()
}

8. OPSIONALisht, ruajeni kodin e referimit në proto Datastore për t'i qasur me lehtësi në ekranet e mëvonshme.

9. Aplikoni kodin e referimit dhe përditësoni serverin tuaj kudo.

10. Përditësoni të dy përdoruesit për referimin e suksesshëm.

Kjo eshte!

Lini një koment nëse jeni duke u përballur me ndonjë problem ose keni ndonjë përmirësim.

Shpresoj ta keni gjetur këtë të dobishme. Nëse po, atëherë ndiqni 'Sagar Malhotra' për më shumë përmbajtje të lidhura me Android.