ספריית ההפניות להתקנות ב-Play

אתם יכולים להשתמש ב-Install Referrer API של חנות Google Play כדי לאחזר באופן מאובטח תוכן של הפניות מ-Google Play. ספריית הלקוח של Play Install Referrer API כתובה בשפת התכנות Java, והיא מעטפת לקובץ של שפת ההגדרה לבניית ממשק Android‏ (AIDL) שמגדיר את הממשק לשירות Install Referrer. כדי לפשט את תהליך הפיתוח, אתם יכולים להשתמש בספריית הלקוח של Play Install Referrer API.

במדריך הזה נסביר את העקרונות הבסיסיים של אחזור מידע על הפניות מ-Google Play באמצעות Play Install Referrer Library.

עדכון יחסי התלות של האפליקציה

מוסיפים את השורה הבאה לקטע של יחסי התלות בקובץ build.gradle של האפליקציה:

מגניב

dependencies {
    ...
    implementation "com.android.installreferrer:installreferrer:2.2"
}

Kotlin

dependencies {
    ...
    implementation("com.android.installreferrer:installreferrer:2.2")
}

מתבצעת התחברות ל-Google Play

כדי להשתמש בספריית Play Install Referrer API, צריך ליצור חיבור לאפליקציה של חנות Play לפי השלבים הבאים:

  1. מפעילים את ה-method‏ newBuilder() כדי ליצור מופע של המחלקה InstallReferrerClient.
  2. מפעילים את השיטה startConnection() כדי ליצור חיבור ל-Google Play.
  3. מכיוון ש-startConnection() היא אסינכרונית, צריך להטמיע את InstallReferrerStateListener כדי לקבל קריאה חוזרת (callback) אחרי ש-startConnection() מסתיימת.
  4. מבטלים את ה-method‏ onInstallReferrerSetupFinished() כדי לקבל התראה כשה-callback מסתיים. השיטה הזו מעבירה קוד תגובה שצריך להשתמש בו כדי לטפל במצבים שונים. ‫OK מציין שהחיבור הצליח. הקבועים האחרים של InstallReferrerResponse מציינים סוגים שונים של שגיאות.
  5. מבטלים את השיטה onInstallReferrerServiceDisconnected() כדי לטפל בחיבורים שאבדו ל-Google Play. לדוגמה, יכול להיות שהחיבור של הלקוח של Play Install Referrer Library יתנתק אם שירות חנות Play מתעדכן ברקע. הלקוח של הספרייה צריך להפעיל את ה-method‏ startConnection() כדי להפעיל מחדש את החיבור לפני שליחת בקשות נוספות.

הקוד הבא מדגים איך להתחיל ולבדוק חיבור לאפליקציה של חנות Play:

Kotlin

private lateinit var referrerClient: InstallReferrerClient

referrerClient = InstallReferrerClient.newBuilder(this).build()
referrerClient.startConnection(object : InstallReferrerStateListener {

    override fun onInstallReferrerSetupFinished(responseCode: Int) {
        when (responseCode) {
            InstallReferrerResponse.OK -> {
                // Connection established.
            }
            InstallReferrerResponse.FEATURE_NOT_SUPPORTED -> {
                // API not available on the current Play Store app.
            }
            InstallReferrerResponse.SERVICE_UNAVAILABLE -> {
                // Connection couldn't be established.
            }
        }
    }

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

Java

InstallReferrerClient referrerClient;

referrerClient = InstallReferrerClient.newBuilder(this).build();
referrerClient.startConnection(new InstallReferrerStateListener() {
    @Override
    public void onInstallReferrerSetupFinished(int responseCode) {
        switch (responseCode) {
            case InstallReferrerResponse.OK:
                // Connection established.
                break;
            case InstallReferrerResponse.FEATURE_NOT_SUPPORTED:
                // API not available on the current Play Store app.
                break;
            case InstallReferrerResponse.SERVICE_UNAVAILABLE:
                // Connection couldn't be established.
                break;
        }
    }

    @Override
    public void onInstallReferrerServiceDisconnected() {
        // Try to restart the connection on the next request to
        // Google Play by calling the startConnection() method.
    }
});

קבלת מקור ההפניה להתקנה

אחרי שיוצרים חיבור לאפליקציה של חנות Play, מקבלים את הפרטים מהמפנה להתקנה לפי השלבים הבאים:

  1. משתמשים ב-method‏ getInstallReferrer() המסונכרן כדי להחזיר מופע של ReferrerDetails.
  2. משתמשים בשיטות שהמחלקה ReferrerDetails מספקת כדי לקבל פרטים על המפנה להתקנה.

הקוד הבא מדגים איך אפשר לגשת למידע על ההפניה להתקנה:

Kotlin

val response: ReferrerDetails = referrerClient.installReferrer
val referrerUrl: String = response.installReferrer
val referrerClickTime: Long = response.referrerClickTimestampSeconds
val appInstallTime: Long = response.installBeginTimestampSeconds
val instantExperienceLaunched: Boolean = response.googlePlayInstantParam

Java

ReferrerDetails response = referrerClient.getInstallReferrer();
String referrerUrl = response.getInstallReferrer();
long referrerClickTime = response.getReferrerClickTimestampSeconds();
long appInstallTime = response.getInstallBeginTimestampSeconds();
boolean instantExperienceLaunched = response.getGooglePlayInstantParam();

סגירת החיבור לשירות

אחרי שמקבלים את פרטי הגורם המפנה, מפעילים את ה-method‏ endConnection() במכונה של InstallReferrerClient כדי לסגור את החיבור. סגירת החיבור עוזרת למנוע דליפות ובעיות בביצועים.

למידע נוסף, עיינו בחומר העזר של Play Install Referrer Library.