Firebase Summit에서 발표된 모든 내용을 살펴보고 Firebase로 앱을 빠르게 개발하고 안심하고 앱을 실행하는 방법을 알아보세요. 자세히 알아보기

모바일 웹 앱 사용자를 기본 앱 사용자로 전환

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

멋진 네이티브 앱과 함께 훌륭한 모바일 웹사이트를 구축하는 데 어려움을 겪었지만 웹보다 네이티브 앱에서 전환율이 더 좋다는 것을 알게 된다면 어떨까요? 이 경우 모바일 웹 사용자를 앱 다운로드로 전환하면 비즈니스에 도움이 될 수 있습니다. 한 곳에서 다른 곳으로 옮기는 것이 어려울 수 있지만 Dynamic Links를 사용하면 쉽게 할 수 있습니다. 아주 적은 코드로 사용자가 모바일 웹에서 링크를 클릭하고 앱의 해당 페이지로 이동할 수 있는 기능을 추가할 수 있습니다. 사용자가 앱을 먼저 설치하기 위해 App Store 또는 Google Play Store로 이동해야 하는 경우에도 마찬가지입니다!

주요 혜택

  • 모바일 웹 사용자를 가능한 한 편안하게 전환하면서 기본 앱 사용자로 전환합니다.
  • 사용자는 사이트에서 본 것과 동일한 콘텐츠로 앱을 시작할 수 있습니다.
  • 통합이 거의 필요하지 않습니다.

시작하는 방법은 다음과 같습니다.

시작하기 전에

앱 콘텐츠를 딥링크 가능하게 만들기

모바일 웹 사용자를 기본 앱 사용자로 전환하는 핵심은 사용자가 웹에서 보고 있는 앱을 열 때 동일한 콘텐츠를 보게 하는 것입니다. 따라서 모바일 웹 사용자를 앱으로 보내기 전에 앱이 콘텐츠에 대한 딥 링크를 수신할 수 있어야 합니다.

iOS Universal Links 또는 Android App Links 를 구현했다면 이미 이 작업을 완료했을 것입니다. 그러나 그렇지 않은 경우 웹사이트에서 URL을 가져와 앱 내의 해당 콘텐츠를 사용자에게 표시하는 로직을 앱에 추가하세요.

새 Firebase 프로젝트를 설정하고 Dynamic Links SDK를 앱에 설치합니다. ( iOS , Android , C++ , Unity ). Dynamic Links SDK를 설치하면 사용자가 앱을 설치한 후 Firebase에서 Dynamic Link에 대한 데이터를 전달할 수 있습니다. SDK가 없으면 설치 후 사용자를 설치 전 클릭으로 연결할 방법이 없습니다.

이제 사람들을 웹사이트에서 기본 앱으로 이동할 링크를 설정할 차례입니다. 사용자가 아직 앱을 설치하지 않은 경우에도 걱정하지 마십시오. Dynamic Links가 이를 처리해 드립니다.

웹사이트의 각 페이지 에서 동적 링크를 동적으로 생성합니다 . 이미 콘텐츠를 딥링크 가능하게 만들었기 때문에 link 매개변수는 단순히 해당 페이지의 URL일 수 있습니다.

이러한 링크는 다음과 같습니다.

<a href="https://example.page.link/?link=https://www.example.com/content?item%3D1234&apn=com.example.android&ibi=com.example.ios">Open this page in our app!</a>

사용자가 장치에서 이 링크를 열 때 apn 매개변수(Android의 경우) 또는 ibi 매개변수(iOS의 경우)로 지정된 앱이 설치되지 않은 경우 사용자는 앱을 설치하기 위해 Play Store 또는 App Store로 이동합니다. 그런 다음 앱이 열리고 link 매개변수에 지정된 URL이 앱에 전달됩니다.

앱에서 연결된 콘텐츠 열기

다음으로 앱에 전달된 링크를 수신하고 연결된 콘텐츠를 열어야 합니다. 이는 Dynamic Links SDK를 사용하여 쉽게 수행할 수 있습니다.

iOS

iOS에서는 application:continueUserActivity:restorationHandler: 메서드를 구현하여 동적 링크를 수신합니다. 복원 핸들러에서 handleUniversalLink:completion: 을 호출하여 Dynamic Link를 얻을 수 있습니다. 동적 링크가 앱에 전달된 경우 FIRDynamicLinkurl 속성에서 가져올 수 있습니다. 예를 들어:

오브젝티브-C

참고: 이 Firebase 제품은 macOS, Mac Catalyst, tvOS 또는 watchOS 대상에서 사용할 수 없습니다.
[[FIRDynamicLinks dynamicLinks]
    handleUniversalLink:userActivity.webpageURL
             completion:^(FIRDynamicLink * _Nullable dynamicLink,
                          NSError * _Nullable error) {
      NSString *link = dynamicLink.url;
    }];

빠른

참고: 이 Firebase 제품은 macOS, Mac Catalyst, tvOS 또는 watchOS 대상에서 사용할 수 없습니다.
FIRDynamicLinks.dynamicLinks()?.handleUniversalLink(userActivity.webpageURL!) { (dynamiclink, error) in
    let link = dynamiclink.url
}

또한 application:openURL:options: 메서드에서 dynamicLinkFromCustomSchemeURL: 을 호출하여 앱에 사용자 지정 체계 URL로 전달된 동적 링크를 수신해야 합니다. 예를 들어:

오브젝티브-C

참고: 이 Firebase 제품은 macOS, Mac Catalyst, tvOS 또는 watchOS 대상에서 사용할 수 없습니다.
FIRDynamicLink *dynamicLink = [[FIRDynamicLinks dynamicLinks] dynamicLinkFromCustomSchemeURL:url];
if (dynamicLink) {
  NSString *link = dynamicLink.url;
  // ...
  return YES;
}

빠른

참고: 이 Firebase 제품은 macOS, Mac Catalyst, tvOS 또는 watchOS 대상에서 사용할 수 없습니다.
let dynamicLink = FIRDynamicLinks.dynamicLinks()?.dynamicLinkFromCustomSchemeURL(url)
if let dynamicLink = dynamicLink {
  let link = dynamiclink.url
  // ...
  return true
}

이제 link 매개변수의 값이 있으므로 연결된 콘텐츠를 사용자에게 표시합니다.

기계적 인조 인간

Android에서는 getDynamicLink() 메서드를 사용하여 Dynamic Link에서 데이터를 가져옵니다.

Java

FirebaseDynamicLinks.getInstance()
        .getDynamicLink(getIntent())
        .addOnCompleteListener(new OnCompleteListener<PendingDynamicLinkData>() {
            @Override
            public void onComplete(@NonNull Task<PendingDynamicLinkData> task) {
                if (!task.isSuccessful()) {
                    // Handle error
                    // ...
                }

                FirebaseAppInvite invite = FirebaseAppInvite.getInvitation(task.getResult());
                if (invite != null) {
                    // Handle invite
                    // ...
                }
            }
        });

Kotlin+KTX

Firebase.dynamicLinks
        .getDynamicLink(intent)
        .addOnCompleteListener { task ->
            if (!task.isSuccessful) {
                // Handle error
                // ...
            }

            val invite = FirebaseAppInvite.getInvitation(task.result)
            if (invite != null) {
                // Handle invite
                // ...
            }
        }

이제 link 매개변수의 값이 있으므로 연결된 콘텐츠를 사용자에게 표시합니다.