37Shares

제7장

심화 주제

웹-투-앱 전환 전략: 배너 및 링크

웹에서 앱으로의 전환을 유도하는 방법은 무척 중요하지만 엔지니어가 어트리뷰션을 고려할 때에는 보통 이를 간과하곤 합니다.

일반적으로는 다음과 같은 문제를 면밀히 분석하고 고려하는 데만 집중하기 때문입니다.

 

모바일 웹에서 앱으로 사용자를 유도할 경우 전체 수익에 부정적인 영향을 미칠까요? 웹 사용자와 앱 사용자를 비교하는 방법은 무엇일까요?

 

앱보다 모바일 웹의 사용 비율이 높으면, 웹에서 앱으로 전환할 때 수익이 악화될까봐 걱정할 수 있습니다. 하지만 일반적으로 웹 유저보다 앱 유저가 3배 더 많이 구매 전환을 일으킵니다. 앱의 전환율이 더 높은 이유는 앱의 UX가 훨씬 더 좋고 간편하게 구매 퍼널로 이어지기 때문입니다. 모바일 웹보다 앱에서 전환이 쉽다는 점 외에도, 유저를 앱으로 유도해야 하는 다양한 이유가 있습니다.

 

  • 로그인: 사용자가 앱에 로그인하면 장바구니에 물건을 담고 결제하기가 훨씬 쉽습니다. 앱은 사용자의 로그인 정보를 더 오랜 저장합니다. 또한 네이티브 경험과 관련한 UX 디자인이 웹보다 더 간편하고 품질도 뛰어납니다. 그래서 유저는 모바일 웹보다 앱에서 더 많은 시간을 보내고, 더 많이 전환합니다.
  • 인게이지먼트: 앱은 모바일 웹보다 더 간편하고 편리한 경험을 제공할 뿐만 아니라, 유저가 잊고 있던 상품의 결제를 유도하는 푸시 알림, 메시지 센터, 피드 또는 다른 여러 네이티브 요소를 사용할 수 있습니다. 반면 모바일 웹에서는 이메일이 유저의 구매를 유도하는 유일한 방법입니다. 앱은 다양한 방법으로 유저의 행동을 유도하기 때문에 더 좋은 결과를 보입니다.

모바일 웹에서 앱으로 사용자를 유도할 경우 얻게 되는 비즈니스 측면의 혜택 외에도, 웹에서 앱으로 전환을 유도하는 일관적인 전략이 매우 유리하다는 사실을 보여주는 어트리뷰션 및 기술적 측면의 당위성이 존재합니다.

바로 앞서 설명한 유저 중심의 어트리뷰션입니다.

회사는 웹이든 앱이든 광고든 이메일이든, 모든 마케팅 채널에서 동일한 어트리뷰션을 사용합니다. 접점에서 사용자를 더 적절하고 지능적으로 어트리뷰션해야 하기 때문입니다. 앞서 논의한 바와 같이, 단일 어트리뷰션 시스템으로 트래킹할수록 더 많은 트래픽 소스를 식별하고, 플랫폼 전반에서 유저를 더 잘 이해할 수 있습니다.

 

모든 마케팅 접점에서 동일한 어트리뷰션 도구로 유저를 트래킹한다면, 더 좋은 어트리뷰션 결과를 얻을 수 있습니다. 또한 유저 소스와 관련해 더 많고 정확한 데이터를 갖게 됩니다. 이것이 바로 유저 중심 어트리뷰션의 전제이자, 단일 어트리뷰션 제공업체를 사용해야 하는 이유입니다.

훌륭함은 어떤 모습으로 나타나는가?

웹에서 앱으로 전환을 유도하는 우수한 전략에는 어떤 것이 있을까요? 이제 배너가 필요하다는 사실에는 충분히 동의하실 겁니다. 그렇다면 어떤 디자인을 적용해야 하고, 배너를 활용하는 가장 쉬운 방법은 무엇일까요?

여기 몇 가지 옵션이 있습니다.

  1. 사용자정의 디자인 및 사용자정의 트래킹
  2. Out-of-Box 디자인 및 트래킹
  3. 1번과 2번의 결합

첫 번째 옵션은 어트리뷰션 도구를 전혀 사용하지 않으면서 배너를 디자인하고, 사용자정의 트래킹을 실행하는 방식입니다. 이 옵션이 불리한 이유는 여러가지입니다. 하지만 이를 선택하지 말아야할 가장 중요한 이유는 쉬운 옵션에 안주하기보다는 다양한 작업을 많이 해야 하기 때문입니다. 이 경우 속도와 유연성을 잃는 대신 통제권을 갖게 됩니다. 몇몇 회사가 자체적으로 만든 사용자 정의 배너를 확인해보세요.

두 번째 옵션은 가장 쉽고 최적화된 방식으로, Out-of-Box 웹 SDK를 JS 방법의 디자인 및 트래킹 솔루션과 함께 이용하는 것입니다. AppsFlyer는 배너를 만드는데 필요한 일부 정적 코드를 제공합니다. 사용자 정의 디자인과 트래킹을 위한 옵션, 파라미터도 제공합니다.

아래의 코드 샘플은 웹 SDK가 완제품과 같이 복사 및 붙여넣기로 즉시 사용 가능하다는 점을 보여줍니다. 웹 SDK에는 웹사이트 상단에 표시되는 배너를 생성할 방법을 지원합니다. 또한 제목, 아이콘, CTA(Call to Action)을 사용자정의 하기 위한 설정 변수 옵션을 제공할 뿐만 아니라 자바스크립트를 사용하는 정적 및 동적 수준의 사용자정의와 설정이 가능한 트래킹 파라미터 목록을 제공합니다.

이 방법을 활용하면 배너 디자인이 모든 브라우저와 기기에 적합한지, CTA 버튼 아래 표시되는 어트리뷰션 URL이 잘 구성되고 잘 관리되고 있는지를 개발사가 직접 신경 쓸 필요가 없어 편리합니다. 이 경우 AppsFlyer는 어트리뷰션 설정 안에 URL을 만들고 링크를 생성합니다. 이 방식은 특정 페이지의 설정이 매우 다양할 수 있기 때문에 특히 유용합니다. 개발사는 웹사이트가 변경될 때, 2가지 설정 변수를 통해 사용자 경험과 트래킹을 원하는 대로 실행할 수 있습니다.

<html>

<head>

<script type=“text/javascript” src=“appsflyer-banner.min.js”></script>

<link rel=“stylesheet” href=“appsflyer-banner.min.css”>

<script type=“text/javascript”>

var banner = new AFBanner();

var settings = {

   // banner settings

   title: “AppsFlyer”,

   subtitle: “Track campaigns on the go”,

   app_icon: “img/app_icon.png”,

   call_to_action: “Install”,

   show_only_mobile: true,

   

   // attribution settings

   media_source: “banner_pid”,

   campaign: “banner_c”,

   adset: “banner_adset”,

   adset_id: “banner_adset_id”,

   ad: “banner_ad”,

   ad_id: “banner_ad_id”,

   site_id: “banner_site_id”,

   sub1: “banner_sub1”,

   

   // routing settings

   onelink_id: “pGHC”,

   subdomain: “appsflyer”,

   mobile_deep link: “appsflyer://”

};

</script>

</head>

 

<body>

   <div id=“my-banner”></div>

   …

</body>

</html>

어떤 방식을 선택하든 한 가지 사실은 분명합니다. Apple이나 안드로이드가 제공하는 “Out of Box” 메타 태그를 사용해서는 안 됩니다. 이 메타 태그는 트래킹이 없는 경우에만 제공됩니다. 그래서 어트리뷰션 모델 전반에 아무런 도움도 되지 않습니다. 또한 사용자 정의 기능도 제공하지 않습니다. 사이트에 자바스크립트를 설치할 때 문제가 있는 경우, 몇 분 더 기다리거나 배너를 설치해주세요. 배너는 앱 스토어로 사용자를 보내는 기능 그 이상을 수행합니다.

딥링크된 이메일

배경

Apple 유니버설 링크가 탄생한 이래로, 수많은 마케터, 프로덕트 매니저, 엔지니어들이 이메일에서 딥링크가 되지 않는 것에 아쉬움을 표했습니다.
부분적으로 이는 앞장에서 간략하게 설명한 링킹 메커니즘의 복잡성에 기인하는 문제입니다. 복잡성을 더욱 가중시키는 요인은 이 메커니즘을 다른 방식으로 처리하는 수많은 이메일 고객이 존재한다는 사실입니다.

그래도 희망이 있습니다! 이메일 딥링킹은 사람들이 말하는 것만큼 복잡하지는 않습니다. iOS에 앱이 설치되어 있을 때, 처리하기 까다로운 사례가 하나 있긴 합니다. 하지만 그 외에는 외부 업체, 고객이나 사용자 관점에서 변경되는 사항은 없습니다. 제3자 어트리뷰션 서비스에서 라우팅을 처리하는 것처럼, 이메일 딥링킹도 직접 처리할 수 있습니다. Apple 유니버설 링크와 안드로이드 앱 링크를 이해하고, URL에서 AppsFlyer나 다른 외부 업체의 링크를 사용할지 선택하고, 이메일 링크를 구체적으로 처리하기 위해 고객 코드를 수정할지 선택하기만 하면 됩니다.

구체적으로는, 이메일 링크를 처리하는 두 가지 옵션이 있습니다.

  1. ESP(Email Service Provider)에서 클릭 트래킹 비활성화: 마케팅팀에게는 상당히 까다로운 작업일 수 있겠지만 프로그래밍 방식을 사용하거나 코드 기반의 ESP를 실행한다면 이것이 가장 쉬운 방법입니다. 이 방식에서 클릭 트래킹 기능을 꺼두면, 사용자를 원하는 지점으로 라우팅해주는 웹 링크나 제3자 어트리뷰션 링크를 이메일에서 직접 사용할 수 있습니다.
  2. ESP 클릭 트래킹 도메인에서 Apple 유니버설 링크와 안드로이드 앱 링크를 처리하세요. ESP 도메인을 처리하기 위해 고객 측의 수정이 약간 필요합니다. 그 다음 이메일에서 기본 URL을 불러오고, 유저를 원하는 지점으로 라우팅할 수 있습니다.

Sendgrid는 URL을 처리하고 확인하기 위해 Out-of-Box 기능을 제공합니다. 이는 두 번째 옵션에 해당합니다. 이 코드는 포괄적이며, 모든 ESP에서 실행됩니다. 올바른 헤더를 가진 URL로 보내는 HTTP 호출입니다. 지금까지 Responsys, Sailthru, Braze, Sendgrid, Salesforce을 포함한 주요 ESP에서 작동하는 것으로 확인되었습니다.

https://sendgrid.com/docs/Classroom/Build/Add_Content/universal_links.html#-Resolving-SendGrid-Click-Tracking-Links

ESP 딥링킹 실패 원인

이메일이 새로운 운영체제에서 사용자를 적절하게 딥링킹하지 않는 원인을 요약해 검토해보겠습니다.

요약

  • ESP는 클릭 트래킹에서 링크를 래핑합니다.
  • 이는 Apple 유니버설 링크를 망가뜨리고, 안드로이드를 복잡하게 만듭니다.
  • OneLink와 달리, ESP는 다양한 상황에서 앱 또는 웹으로 신뢰할 만한 라우팅을 제공하지 않습니다.

유일하게 딥링킹이 제대로 작동하지 않은 경우는 유저의 iOS에 앱이 설치된 경우입니다. 이 경우 클릭을 트래킹하는 ESP 링크가 유니버설 링크 기능을 망가뜨립니다. 따라서 이를 처리할 시스템을 개발해야 합니다. 이메일 때문에 ‘이메일 딥링크’나 ‘유니버설 링크’가 작동하지 않는 경우 바로 이 문제에 해당합니다.

많은 사람들이 “그럼 데스크톱 링크는요?”라고 질문하지만, 데스크톱 링크는 모든 경우에 정상적으로 작동합니다. ESP 링크는 모든 리디렉션을 래핑할 뿐입니다. 데스크톱의 리디렉션은 앱에 적용되지 않습니다. 대부분의 데스크톱 경험은 그대로 웹으로 이동하므로 수정이 필요하지 않습니다.

이메일 내 딥링킹을 구현하기 위해 비싼 딥링킹 솔루션이 필요하다고 과대광고하는 업체의 말에 현혹되지 마세요. AppsFlyer의 어트리뷰션 링크나 딥링크, 또는 다른 표준 제3자 어트리뷰션 서비스를 사용하면 아래의 가정을 바탕으로 한 거의 모든 사례에서 추가 비용 없이 손쉽게 링크가 작동합니다.

  1. 디퍼드 딥링킹과 일반 딥링킹을 설정해야 합니다. AppsFlyer의 경우 “OneLink”도 포함됩니다.
  2. 개별 외부 업체와 함께 Apple 유니버설 링크와 안드로이드 앱 링크를 설정해야 합니다.

이 2가지 요구사항이 모두 충족됐다면, 앱이 설치되어 있지 않아도 이메일에 포함된 일반 딥링크가 iOS와 안드로이드에서 정상적으로 작동합니다. 이 경우 설정에 따라 유저가 모바일 웹이나 앱 스토어로 유도될 수 있습니다.

안드로이드 운영체제 유저가 앱을 설치했다면 이 링크는 크롬 인텐트를 통해 앱을 바로 실행하거나, ESP 링크가 어트리뷰션 링크로 라우팅합니다. 이 어트리뷰션 링크는 URI 스킴을 통해 앱을 실행합니다. 또한, 안드로이드 앱 링크를 사용해 iOS와 완전히 똑같은 기능을 안드로이드에 복제할 수 있습니다.

작동 원리

  1. 클릭 트래킹 기능이 활성화된 상태를 유지합니다.
  2. ESP 도메인에서 Apple 유니버설 링크와 안드로이드 앱 링크를 설정합니다. 대부분 ESP는 공식 문서로 설정 방법을 안내합니다. 예를 들어, Sendgrid는 사이트에서 어떻게 이 기능을 실행하는지 매우 자세하게 설명합니다: https://sendgrid.com/docs/ui/sending-email/universal-links/#setting-up-universal-links-using-cloudfront
  3. 유니버설 링크가 활성화되면, ESP 클릭 트래킹 도메인에서 앱이 실행됩니다. 이제 마케팅팀이 이메일 HTML에 입력한 URL을 검색해야 합니다. Sendgrid의 Out-of-Box URL Resoluton Code를 사용하면 됩니다.

iOS

– (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler {
   if (userActivity.activityType == NSUserActivityTypeBrowsingWeb) {
       NSURL *encodedURL = userActivity.webpageURL;
       if (encodedURL == nil) {
           NSLog(@”Unable to handle user activity: No URL provided”);
           return false;
       }
       NSURLSession *session = [NSURLSession sharedSession];
       NSURLSessionDataTask *task = [session dataTaskWithURL:encodedURL completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
           if (response == nil || [response URL] == nil) {
               NSLog(@”Unable to handle URL: %@”, encodedURL.absoluteString);
               return;
           }
           // Now you have the resolved URL that you can
           // use to navigate somewhere in the app.
           NSURL *resolvedURL = [response URL];
           NSLog(@”Original URL: %@”, resolvedURL.absoluteString);
       }];
       [task resume];
   }
   return YES;
}

안드로이드

안드로이드 앱이라면, URL을 확인하기 위해 setInstanceFollowRedirects를 false로 설정하여 HttpURLConnection을 사용할 수 있습니다.

@Override
protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
   onNewIntent(getIntent());
}

protected void onNewIntent(Intent intent) {
   String action = intent.getAction();
   final String encodedURL = intent.getDataString();
   if (Intent.ACTION_VIEW.equals(action) && encodedURL != null) {
       Log.d(“App Link”, encodedURL);
       new Thread(new Runnable() {
           public void run() {
               try {
                   URL originalURL = new URL(encodedURL);
                   HttpURLConnection ucon = (HttpURLConnection) originalURL.openConnection();
                   ucon.setInstanceFollowRedirects(false);
                   URL resolvedURL = new URL(ucon.getHeaderField(“Location”));
                   Log.d(“App Link”, resolvedURL.toString());
               }
               catch (MalformedURLException ex) {
                   Log.e(“App Link”,Log.getStackTraceString(ex));
               }
               catch (IOException ex) {
                   Log.e(“App Link”,Log.getStackTraceString(ex));
               }
           }
       }).start();
   }
}

이 시점에서 개발자는 여러 선택지를 가집니다. 기본 URL을 다시 돌려받기 때문에, 자체 웹 URL과 어트리뷰션 URL 중 어디에서 딥링킹을 할지 선택할 수 있습니다.

사용자가 이메일에서 클릭하는 ESP 링크…

              → 애플 유니버설 링크 또는 안드로이드 앱 링크에서 앱 실행

              → URL 확인

              → URL은 다양할 수 있습니다.

https://jet.com/product/123

                         https://jet.onelink.me/…af_dp=…af_web_dp=…

              → 기존에 이러한 링크를 처리한 방식으로 URL을 처리하세요!

보시다시피, 딥링크된 이메일 제품을 구매하거나 원하는 방식으로 외부 업체에 요청하는 데에는 제약이 없습니다. 적어도 링크를 처리할 때만큼은 선호하는 어트리뷰션과 딥링킹 파트너와 협력하면 좋습니다. 하지만 이렇게 잘 알려진 기술을 단순화해 제공하는 척하는 제품이나 시스템에 시간과 비용을 낭비하지 마세요.

 

작동 원리(흐름도)

이메일 생성

  • 마케터가 이메일 캠페인에 URL을 입력합니다. 회사의 일반 도메인 URL이 될 수도 AppsFlyer 링크가 될 수도 있습니다.
  • 이메일이 발송될 때 Sendgrid와 같은 이메일 서비스 제공업체가 이 링크를 래핑합니다.
  • 최종 사용자가 받는 이메일에 ESP URL이 표시됩니다.
    • 예시:
      • click.airbnbmail.com
      • shop.jet.com
      • click.go.wholefoods.com
      • Eml.flagship.postmates.com

유저가 iOS 크롬이나 안드로이드에서, 또는 앱이 설치되어 있지 않은 iOS나 사파리에서 링크를 탭하면 모든 것이 정상적으로 작동합니다. 말 그대로 차이가 전혀 없습니다. 기존의 일반 링크 리디렉션과 같습니다.

이메일 리디렉션 사례

iOS 9.3 이상 사용자가 앱이 설치된 상태에서 링크를 클릭 할 때, 클릭 트래킹 도메인에 유니버설 링크 또는 안드로이드 앱 링크가 설정되어 있으면 앱이 즉시 실행됩니다.

아래의 그림에서 세 가지의 사례를 확인할 수 있습니다.

사례 1: 사례 1은 디퍼드 딥링킹에서 이미 설명한 바 있습니다. AppsFlyer 링크를 통해 어떠한 제3자 리디렉션도 없이 이메일 링크에서 바로 웹 또는 앱 스토어로 이동합니다. 설치 후 고객의 추가 작업 없이 앱의 특정 지점으로 딥링킹이 가능합니다.

사례 2: 사례 2는 이메일 서비스 제공업체가 제3자 클릭 트래킹을 할 수 있다고 가정합니다. AppsFlyer나 자체 도메인 URL을 사용한다면, 고객 측 코드의 일부분이 필요합니다. 기본 URL을 언래핑하고 앱의 특정 지점으로 사용자를 라우팅해야 하기 때문입니다. 기본적으로 앱이 이미 설치되어 있으면, 앱은 유니버설 링크나 안드로이드 앱 링크를 통해 바로 실행됩니다. 그래서 ESP URL을 언래핑하고 확인해야 합니다. 앱이 설치되어 있지 않으면, AppsFlyer나 자체 도메인 URL은 앱 스토어나 모바일 웹의 특정 지점으로 이동합니다.

사례 3: 단순한 솔루션이 필요한 경우, AppsFlyer를 앱 설치 이후 유저를 앱에 지능적으로 직접 유도할 때만 사용할 수도 있습니다. AppsFlyer는 앱이 설치되었음을 확인하면 브라우저에서 URI 스킴을 전송합니다.

ESP 유니버설 링크 관리: URL 확인, 클릭 및 라우팅 처리

  • 앱에서 기본 URL을 불러오는 데에는 앞에서 언급한 코드 조각이 활용됩니다.
    • 기본 URL이 AppsFlyer 링크거나 쿼리 파라미터를 나열한 자체 링크라면, 비동기 통신 호출은 더 이상 필요하지 않습니다. 손쉽게 링크를 처리하세요. 앱의 루트 처리자 쿼리 파라미터를 파싱할 수 있습니다.
    • 기본 URL이 AppsFlyer OneLink의 단축 URL이라면, AppsFlyer에 비동기 통신을 요청하여 처리 전에 링크 메타데이터를 불러와야 합니다. 그래서 AppsFlyer는 긴 URL을 추천합니다. 이는 URL에 주요 키 값을 표시하기 때문에, 라우팅이 쉽고 별도의 왕복 호출이 필요하지 않습니다.
    • 다른 유형의 URL도 이와 유사하게 처리하면 됩니다.

Apple 유니버설 링크가 현재 갖고 있는 문제점

Apple 유니버설 링크는 앱을 보유한 사용자들에게 향상된 UX를 제공하는 것으로 입증된 유용한 기술입니다. 하지만 Apple 유니버설 링크에는 몇 가지 주요 제약이 존재합니다. 그리고 이러한 제약을 미리 알아두지 않는다면 담당자와 제품팀에서 해결할 수 없는 문제로 시간을 무한히 허비할 수 있습니다. 이 글을 작성하는 시점을 기준으로 네 가지 주요 문제가 있으며, 이 문제들은 거의 모든 Apple 유니버설 링크(iOS 12)에만 해당되고 안드로이드 앱 링크와는 관련이 없습니다.

문제 1: 트래킹 또는 어트리뷰션의 부재

Apple 유니버설 링크는 리디렉션보다는 앱을 실행하기 위해 링크에 적용하는 시스템에 가깝습니다. 그래서 진정한 클릭 트래킹을 구축하기는 매우 어렵습니다. 왜 그럴까요? 앱이 Apple 유니버설 링크에서 바로 실행되기 때문입니다. 웹페이지를 통과하는 리디렉션이 없어서 서버에 나타난 클릭을 집계할 수 없습니다. 대신 앱이 실행되면, 앱을 실행하는 URL이 ‘continueUserActivity’라는 Apple 코드를 통해 리포트를 생성합니다. URL에서 클릭을 집계하려면 마케팅팀은 서버를 구축하고 앱에서 수동으로 클릭을 집계해야 합니다.

훨씬 더 쉽고 간편한 방법을 원한다면, AppsFlyer와 같은 어트리뷰션과 딥링킹 도구를 사용해보세요. 이러한 시스템은 실제 도메인에 your_company_name.onelink.me와 같은 유니버설 링크를 포함합니다. 그리고 이 트래킹을 자동적으로 실행합니다. 요약하자면, 링크를 클릭하는 유저를 트래킹하려면, OneLink와 같은 제3자 어트리뷰션 업체가 제공하는 도구가 필요합니다.

문제 2: 링크 래핑 허용 불가

이 문제는 링크 래핑, 클릭 트래킹, 링크 리디렉트 등 여러 가지 이름으로 알려져 있습니다.  이름은 다르지만 모두 같은 문제를 지칭합니다. 마케터가 광고나 이메일을 보내기 위해 사용하는 서비스는 사용 중인 링크를 ‘래핑’하거나 이를 리디렉션을 통해 전송합니다. 그래서 클릭을 집계할 수 있습니다. 마케터가 시스템에 입력한 최종 목적지 URL로 유저를 유도하기 전에 웹사이트로 리디렉션합니다.

Apple 유니버설 링크와 안드로이드 앱 링크는 다른 URL에 래핑될 수 없습니다. 다른 URL에 래핑을 시도할 경우, 사용자는 링크를 통해 앱이 아닌 웹 폴백으로 리디렉션됩니다. 이는 주로 마케터가 URL이 래핑되는 더블클릭(Double Click)과 같은 유료 광고를 운영할 경우 혹은 이메일 마케터가 ESP(Email Service Provider)로 클릭 트래킹을 사용할 경우에 영향을 미칩니다.

두 가지 사례 모두, 제3자 툴들은 URL을 래핑하는데 이로 인해 해당 URL이 유니버설 링크처럼 동작할 수 없게 됩니다. 이로 인해 딥링킹이 실패하고 유니버설 링크 사용 목적을 무효화합니다. 클릭 트래킹을 끄는 것에서부터, 복잡성을 해결하기 위한 전문 컨설턴트 고용까지, 이 문제에 대한 다양한 해결 방안이 존재합니다.

문제 3: 팬텀 배너 신드롬

Apple은 유니버설 링크가 실행되면 사파리에서 열린 사이트에 배너 광고를 무작위로 삽입합니다. 이를 제재하거나, 광고를 직접 지정하거나 트래킹할 방법은 없습니다. 이렇게 Apple이 유니버설 링크에 알 수 없는 기능을 적용하자, 시장은 혼돈에 빠졌습니다. 광고는 일부 경우에만 표시되기 때문에 대부분의 고객이 이를 무시합니다. 유저가 Apple 유니버설에서 클릭하면, 웹사이트가 아닌 앱으로 유도됩니다.

문제 4: 일반 성능 불안정성

iOS 11 버전부터 다수의 앱에서 유니버설 링크가 항상 같은 방식으로 작동하지 않는 문제가 발생하기 시작했습니다. iOS는 애플 유니버설 링크로 앱을 실행하기 위해 구축한 AASA(Apple App Site Association) 파일에서 도메인 정보를 이용합니다. iOS에서 새로운 사용자가 앱을 설치하면, 사용자 기기의 저장 공간으로 AASA 파일이 다운로드되고 그다음 기기 수준에서 유니버설 링크 라우팅 구성을 위한 파싱 작업을 수행합니다. 이후 사용자가 링크를 클릭 하면 구성된 도메인으로 적절히 유도합니다. 유감스럽게도 개발사들이 보고한 바에 따르면, iOS 11.2에서 AASA 파일 설치 후 기기 및 로컬 저장 공간에 안정적으로 다운로드되지 않고, 파일이 존재하지 않기 때문에 유니버설 링크도 작동하지 않습니다. 일반적으로 많은 실행 단계를 거쳐 설치를 완료하므로 디버그 수행도 어려운 것으로 알려져 있습니다.

이 문제와 관련해 이미 널리 알려진 Apple의 버그가 존재하며 다음 페이지에서 그 내용을 확인할 수 있습니다: http://www.openradar.me/radar?id=4999496467480576

일반 URL 또는 어트리뷰션 제공업체를 위해 URL에 유니버설 링크 사용을 설정했다고 가정하고 다음의 내용을 테스트하면 유니버설 링크 작동을 재개할 수 있습니다.

  • 앱에서 로그아웃하세요.
  • 앱을 삭제하세요.
  • 앱 스토어 또는 테스트/QA 사이트에서 앱을 설치하세요.
  • 기기를 종료한 후 다시 전원을 켜세요. iOS 11에서 링크를 클릭해도 정상적으로 작동하지 않는 entitlement 문제를 해결할 수 있습니다.
  • 테스트하려는 링크를 생성하거나 검색하세요.
  • 메모 앱이나 iMessage, 또는 Apple Mail Client를 사용하는 이메일에 링크를 붙여넣으세요.
    • Slack, Facebook 등 다른 앱을 사용하여 링크를 클릭하지 마세요.
    • Safari에 링크를 붙여넣지 마세요. 링크가 정상적으로 작동하지 않습니다.
  • 링크를 클릭하세요.
  • 브라우저를 통한 리디렉션 없이 앱이 바로 실행됩니다. 또한 유저를 앱의 특정 지점으로 라우팅합니다.

 

About the Authors