딥링킹 지원 추가
사용자가 앱이 설치된 기기에서 딥링크를 클릭하면 앱이 열리고 특정 제품이나 경험이 표시됩니다.
Singular 추적 링크에는 딥링킹 기능뿐만 아니라 디퍼드 딥링킹도 포함될 수 있습니다(자세한 내용은 딥링킹 FAQ 및 Singular 링크 FAQ 참조).
이전 단계에서 구현한 Singular SDK 구성은 콜백 함수("handleDeeplink")를 참조합니다. "handleDeeplink" 함수는 Singular SDK를 통해 딥링크 및 디퍼드 딥링크 지원을 활성화하는 데 필요합니다.
딥링크 구현을 위한 전제 조건
다음 단계를 완료했는지 확인하세요:
- Singular 링크 전제 조건의 지침을 따릅니다.
- Xcode에서 서명 및 기능 > 연결된 도메인에 Singular 사용자 지정 하위 도메인을 추가합니다.
- 정보 > URL 유형에서 URL 유형에 앱 스키마를 추가했습니다.
- Singular 플랫폼의 앱 페이지에서 Apple 개발자 팀 ID 및 스키마를 추가했습니다.
참고:
- 앱이 이미 iOS 유니버설 링크를 사용하도록 구성된 경우 유니버설 링크 도메인은 연결된 도메인에 이미 존재하며 그대로 유지될 수 있습니다. 이 도메인은 다음 섹션에 설명된 대로 지원되는 도메인 구성 옵션에 추가해야 합니다.
- 또한 Singular가 마케팅 캠페인의 어트리뷰션을 추적하고 이러한 캠페인의 딥링크를 처리할 수 있도록 Singular 사용자 지정 링크 도메인을 포함해야 합니다.
핸들러에 대한 콜백 메서드 만들기
아래 코드 예시는 handleDeeplink라는 콜백 메서드를 생성합니다(이 메서드는 위의 구성 코드 샘플에서 참조됨).
블록 시그니처는 void(^)(SingularLinkParams*)입니다. Singular링크 파라미터에는 딥링크 대상, 패스스루 파라미터, 링크 디퍼링 여부가 포함됩니다.
func handleDeeplink(params: SingularLinkParams?) {
// Get Deeplink data from Singular Link
let deeplink = params?.getDeepLink()
let passthrough = params?.getPassthrough()
let isDeferredDeeplink = params?.isDeferred()
let urlParams = params?.getUrlParameters()
// Add deep link handling code here
//...
}
- (void)handleDeeplink:(SingularLinkParams*)params{
// Get Deeplink data from Singular Link
NSString *deeplink = [params getDeepLink];
NSString *passthrough = [params getPassthrough];
BOOL isDeferredDeeplink = [params isDeferred];
NSDictionary *urlParams = [params getUrlParameters];
// Add deep link handling code here
//...
}
기타 링크 옵션
Singular SDK는 Singular가 제공하지 않는 유니버설 링크도 지원합니다. 이는 구글 광고 및 페이스북과 같이 딥링킹을 지원하는 파트너의 어트리뷰션을 측정하는 데 필요합니다.
Singular iOS SDK 버전 12.0.3 이상에서는 기본적으로 비Singular 유니버설 링크가 지원됩니다.
이전 버전의 SDK에서 타사 딥링크를 지원하려면:
- 이전 버전의 Singular iOS SDK에서는 Singular SDK가 초기화될 때마다 모든 관련 도메인( sng.link 제외)을 지원되는 도메인 구성 옵션( 구성 개체에 있음)에 추가해야 합니다. 이렇게 하면 타사 딥링크 동작은 허용되지만 딥링크에 대한 어트리뷰션은 허용되지 않습니다. 어트리뷰션의 경우 여전히 Singular 추적 링크를 사용해야 합니다.
- 지원되는 도메인 기능은 유니버설 링크에 대해 앱을 구성하고 현재 도메인에서 자체 AASA 파일을 호스팅하고 있다고 가정합니다.
func getConfig() -> SingularConfig? {
// Singular Config Options
guard let config = SingularConfig(apiKey: Constants.APIKEY,
andSecret: Constants.SECRET) else {
return nil
}
//...
config.supportedDomains = ["subdomain.mywebsite.com",
"anothersubdomain.myotherwebsite.com"]
//...
return config
}
- (SingularConfig *)getConfig {
// Singular Config Options
SingularConfig* config = [[SingularConfig alloc] initWithApiKey:APIKEY
andSecret:SECRET];
//...
config.supportedDomains = @[@"subdomain.mywebsite.com",
"anothersubdomain.myotherwebsite.com"];
//...
return config;
}
Singular SDK는 ESP(이메일 서비스 제공업체)가 제공하는 유니버설 링크를 지원합니다.
ESP 도메인은 HTTPS를 사용해야 합니다. Apple은 iOS 앱이 리디렉션 없이 HTTPS 사용 엔드포인트에서 apple-app-site-association 파일을 가져올 것을 요구합니다. 사이트의 DNS에 DNS 구성이 필요할 수 있으므로 앱에 대해 이 파일을 호스팅하는 방법을 ESP에 문의하세요. 일반적으로 ESP는 HTTPS를 활성화하는 데 필요한 단계를 제공합니다.
ESP 도메인을 지원하려면 Singular SDK가 초기화될 때마다 구성 개체의 espDomains 구성 옵션에 사용자 지정 추적 도메인을 추가하세요.
func getConfig() -> SingularConfig? {
// Singular Config Options
guard let config = SingularConfig(apiKey: Constants.APIKEY,
andSecret: Constants.SECRET) else {
return nil
}
//...
config.espDomains = ["links.mywebsite.com"]
//...
return config
}
- (SingularConfig *)getConfig {
// Singular Config Options
SingularConfig* config = [[SingularConfig alloc] initWithApiKey:APIKEY
andSecret:SECRET];
//...
config.espDomains = @[@"links.mywebsite.com"];
//...
return config;
}