콘텐츠 제작부터 실적 분석에 이르기까지 전 과정에 걸쳐 내 앱의 Google 검색 순위를 높이는 방법을 알아 보세요.
Search Console 분석
Search Console의 검색 애널리틱스 보고서를 사용하여 앱의 검색 실적을 분석하고 개선합니다. 검색어, 페이지, 국가 등의 카테고리별로 데이터를 필터링 및 그룹화할 수 있습니다. 검색 노출 필터를 사용하여 앱 설치 버튼의 실적을 분석할 수도 있습니다. 고객센터에서 검색 애널리틱스 보고서 사용 방법을 자세히 알아보세요.

검색 추천 분석
Google 검색에서 유입된 앱 링크의 리퍼러 정보를 다른 분석 도구에 사용할 수 있습니다. 예를 들어 앱 추천 추적 codelab에서는 전반적인 앱 분석을 위해 검색 추천과 Google 애널리틱스를 함께 사용하는 방법을 보여 줍니다.
앱으로 유입되는 검색 트래픽을 추적하는 솔루션을 직접 만들려면 Android 디버그 브리지를 사용하여 앱에 테스트용 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 앱에서 유입되었음을 지정하는 리퍼러 정보를 전달하는 동작을 시뮬레이션합니다.
리퍼러 정보 추출
com.google.firebase.appindexing.AndroidAppUri 클래스는 리퍼러 URI를 추출하는 데 도움이 됩니다. 인텐트 부가 정보는 다음 키를 통해 HTTP URL의 리퍼러 정보를 제공합니다.
android.intent.extra.REFERRER_NAME
다음 예에서는 다양한 소스의 리퍼러 값을 보여 줍니다.
- Chrome:
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
다음 코드 스니펫을 통해 검색에서 리퍼러 정보를 추출하는 방법을 알 수 있습니다.
자바
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 시스템이 두 속성 사이의 관련도를 분석하여 웹 및 모바일 검색결과의 순위를 결정하기 때문입니다. 특히 다음에 주의하세요.
- 관련 사이트가 Google의 디자인 및 콘텐츠 가이드를 준수하는지 확인하세요.
- 모바일 SEO 가이드의 권장사항을 따르세요.
- 고객센터의 앱용 Search Console 도움말에 제시된 앱 관련 권장사항을 따르세요.
Google은 사용자에게 유용한 검색 환경을 제공하기 위해 서비스의 악용, 부정행위 또는 검색 환경을 저해하는 기타 행위에 제재를 가할 수 있습니다. 예를 들어 Google 검색결과에서 HTTP URL의 순위를 내리거나 삭제할 수 있습니다.