Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

تحسين أداء البحث

حسِّن تصنيف تطبيقك في بحث Google ، بدءًا من إنشاء المحتوى وحتى تحليل الأداء.

تحليل مع إحالات البحث

يمكنك استخدام معلومات المرجع من الروابط المؤدية إلى تطبيقك والتي تأتي من بحث Google لأدوات التحليلات الأخرى.

لإنشاء الحل الخاص بك لتتبع حركة مرور البحث إلى تطبيقك ، يمكنك اجتياز اختبار android.intent.extra.REFERRER_NAME لتطبيقك باستخدام Android Debug Bridge. يوضح الأمر المثال التالي كيفية القيام بذلك ، بافتراض أن اسم حزمة التطبيق الخاص بك هو package_name وعنوان URL للتطبيق الخاص بك هو www.examplepetstore.com :

adb shell am start
   -a android.intent.action.VIEW
   -c android.intent.category.BROWSABLE
   -e android.intent.extra.REFERRER_NAME android-app://com.google.android.googlequicksearchbox/https/www.examplepetstore.com
   -d http://examplepetstore.com/host_path com.examplepetstore.android

يحاكي هذا الاختبار فتح عنوان HTTP URL في تطبيقك وتمرير معلومات المرجع لتحديد أن حركة المرور جاءت من تطبيق Google.

استخراج معلومات المرجع

تساعد فئة com.google.firebase.appindexing.AndroidAppUri في استخراج URIs المُحيل. يوفر Intent الإضافي معلومات المُحيل لعنوان URL الخاص بـ HTTP باستخدام المفتاح التالي: android.intent.extra.REFERRER_NAME .

توضح الأمثلة التالية قيم المُحيل من مصادر مختلفة:

  • كروم: https://www.google.com
  • تطبيق Google: android-app://com.google.android.googlequicksearchbox/https/www.google.com
  • Googlebot: android-app://com.google.appcrawler
  • زاحف تطبيقات Google AdsBot: android-app://com.google.adscrawler

يوضح مقتطف الشفرة التالي كيفية استخراج معلومات المرجع من البحث.

جافا

public class MeasureActivity extends AppCompatActivity {

    @Override
    public Uri getReferrer() {

        // There is a built in function available from SDK>=22
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
            return super.getReferrer();
        }

        Intent intent = getIntent();
        Uri referrer = (Uri) intent.getExtras().get("android.intent.extra.REFERRER");
        if (referrer != null) {
            return referrer;
        }

        String referrerName = intent.getStringExtra("android.intent.extra.REFERRER_NAME");

        if (referrerName != null) {
            try {
                return Uri.parse(referrerName);
            } catch (ParseException e) {
                // ...
            }
        }

        return null;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // ...
        Uri referrer = getReferrer();

        if (referrer != null) {
            if (referrer.getScheme().equals("http") || referrer.getScheme().equals("https")) {
                // App was opened from a browser
                // host will contain the host path (e.g. www.google.com)
                String host = referrer.getHost();

                // Add analytics code below to track this click from web Search
                // ...

            } else if (referrer.getScheme().equals("android-app")) {
                // App was opened from another app
                AndroidAppUri appUri = AndroidAppUri.newAndroidAppUri(referrer);
                String referrerPackage = appUri.getPackageName();
                if ("com.google.android.googlequicksearchbox".equals(referrerPackage)) {
                    // App was opened from the Google app
                    // host will contain the host path (e.g. www.google.com)
                    String host = appUri.getDeepLinkUri().getHost();

                    // Add analytics code below to track this click from the Google app
                    // ...

                } else if ("com.google.appcrawler".equals(referrerPackage)) {
                    // Make sure this is not being counted as part of app usage
                    // ...
                }
            }
        }
        // ...
    }
}

Kotlin + KTX

class MeasureActivity : AppCompatActivity() {

    override fun getReferrer(): Uri? {

        // There is a built in function available from SDK>=22
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
            return super.getReferrer()
        }

        val intent = intent
        val referrer = intent?.extras?.get("android.intent.extra.REFERRER") as Uri?
        if (referrer != null) {
            return referrer
        }

        val referrerName = intent.getStringExtra("android.intent.extra.REFERRER_NAME")

        if (referrerName != null) {
            try {
                return Uri.parse(referrerName)
            } catch (e: ParseException) {
                // ...
            }
        }

        return null
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // ...
        val referrer = referrer

        if (referrer != null) {
            if (referrer.scheme == "http" || referrer.scheme == "https") {
                // App was opened from a browser
                // host will contain the host path (e.g. www.google.com)
                val host = referrer.host

                // Add analytics code below to track this click from web Search
                // ...
            } else if (referrer.scheme == "android-app") {
                // App was opened from another app
                val appUri = AndroidAppUri.newAndroidAppUri(referrer)
                val referrerPackage = appUri.packageName
                if ("com.google.android.googlequicksearchbox" == referrerPackage) {
                    // App was opened from the Google app
                    // host will contain the host path (e.g. www.google.com)
                    val host = appUri.deepLinkUri.host

                    // Add analytics code below to track this click from the Google app
                    // ...
                } else if ("com.google.appcrawler" == referrerPackage) {
                    // Make sure this is not being counted as part of app usage
                    // ...
                }
            }
        }
        // ...
    }
}

إنشاء محتوى ويب وجوال جيد

يمكنك تحسين تصنيف تطبيقك من خلال توفير محتوى عالي الجودة في كل من تطبيقك وموقع الويب المرتبط به. وذلك لأن أنظمتنا تحلل الارتباط بين الخاصيتين لتحديد الترتيب لكل من نتائج بحث الويب والجوال. على وجه التحديد ، ضع في اعتبارك ما يلي:

  • تأكد من أن موقعك المرتبط يتوافق مع إرشادات التصميم والمحتوى الخاصة بنا .
  • اتبع نفس الممارسات الموصى بها في دليل تحسين محركات البحث للجوال.

لضمان تجربة بحث رائعة للمستخدمين ، قد تتخذ Google إجراءات تصحيحية في الحالات التي نرى فيها إساءة أو خداعًا أو إجراءات أخرى تضر بتجربة البحث للمستخدمين. يمكن أن يشمل ذلك إجراءات مثل تخفيض مستوى عناوين URL لـ HTTP من نتائج بحث Google أو إزالتها.