検索での掲載順位を向上させる

Google 検索結果におけるアプリの掲載順位を上げる: コンテンツの作成からパフォーマンス解析まで

検索の参照で解析する

Google 検索からアプリへのリンクの参照 URL 情報を、他の解析ツールで使うことができます。たとえば、ディープリンクの参照 URL の追跡に関する Codelab では、参照 URL 情報を Google アナリティクスと組み合わせて利用し、アプリの全体的な解析を行う方法を説明しています。

アプリへの検索トラフィックを追跡するソリューションを独自に作成するには、Android Debug Bridge を使って、アプリにテスト用の android.intent.extra.REFERRER_NAME エクストラを渡します。次のコマンド例は、その方法を示したものです。この例では、アプリのパッケージ名を 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 アプリから来たものであると示す参照 URL 情報を渡すという動作をシミュレートします。

参照 URL 情報を抽出する

com.google.firebase.appindexing.AndroidAppUri クラスは、参照元の URI を抽出するのに役立ちます。インテントのエクストラにより、HTTP URL の参照情報が提供されます。その際に使用するキーは android.intent.extra.REFERRER_NAME です。

以下に、さまざまなソースからの参照 URL 情報の値の例を示します。

  • Chrome: https://www.google.com
  • Google アプリ: android-app://com.google.android.googlequicksearchbox/https/www.google.com
  • Googlebot: android-app://com.google.appcrawler
  • Google AdsBot App Crawler: android-app://com.google.adscrawler

以下のコード スニペットは、検索からの参照 URL 情報を抽出する方法を示したものです。

Java
Android

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
Android

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 のシステムは、それら 2 つのプロパティのつながりを解析して、ウェブとモバイルの検索結果での掲載順位を決定しています。次の点には特に注意してください。

  • 関連サイトが、Google の定めるデザインとコンテンツのガイドラインに準拠していること
  • Google のモバイル SEO ガイドで推奨されている方法を使用すること

ユーザーが快適に検索を利用できるようにするため、ユーザーの検索に害を及ぼす不正行為や偽装行為などが検出された場合、Google では是正措置を取る場合があります。是正措置には、Google 検索の結果で違反者の HTTP URL の順位を下げる、検索結果から当該 HTTP URL を削除する、などがあります。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。