Ometria는 개인화된 이메일과 푸시 알림을 제공하여 마케팅 부서가 고객을 이해하고 더 효과적으로 소통할 수 있도록 돕습니다.
이 앱에는 두 가지 주요 목표가 있습니다.
모바일 앱의 경우 이는 다음을 의미합니다.
이 SDK와 통합하는 앱 개발자는 아래 가이드를 따라야 합니다. 참조 구현을 위해 포함된 샘플 앱을 살펴볼 수도 있습니다.
Ometria 도움말 센터에서 Firebase 자격 증명으로 모바일 앱 설정을 참조하고 해당 단계에 따라 API 키를 받으세요.
ReactNative 프로젝트에 Ometria를 추가하는 가장 쉬운 방법은 npm install
또는 yarn add
사용하는 것입니다.
npm install react-native-ometria
또는 yarn add react-native-ometria
사용하여 react-native-ometria
에서 Ometria ReactNative 패키지를 설치합니다.참고: 라이브러리 설치에 문제가 있는 경우 typescript 구성에서 예제를 제외하는 것이 좋습니다. 예:
{
...,
"exclude": ["example"]
}
iOS
의 경우 로컬 CocoaPods 사양 미러를 생성하려면 Pods pod install
설치해야 합니다.
Pod 설치 실행 시 The Swift pod 'Ometria' depends upon 'FirebaseMessaging'
경우 use_frameworks! :linkage => :static
.
Ometria SDK를 초기화하려면 2. 시작하기 전에 에서 API 키를 입력해야 합니다.
import Ometria from 'react-native-ometria' ;
await Ometria . initializeWithApiToken ( 'API_KEY' , {
notificationChannelName : 'Example Channel Name' , // optional, only for Android
appGroupIdentifier : 'group.com.ometria.sampleRN' , // optional, only for iOS
} ) ;
버전 2.3.0부터 SDK는 Ometria 인스턴스의 재초기화를 허용합니다. 따라서 필요한 경우 나중에 앱에서 이 메서드를 다시 호출할 수 있습니다.
두 번째 선택적 옵션 매개변수에 Android 알림 채널의 사용자 정의 이름을 지정할 수 있습니다. 기본 채널 이름은 <blank>
입니다.
두 번째 선택적 옵션 매개변수에 앱 그룹 식별자를 지정할 수도 있습니다. iOS의 경우 이 섹션을 참조하세요.
Ometria는 기본적으로 런타임 중에 발생한 모든 오류를 기록하며, 이러한 로그는 개발 환경의 콘솔에서 액세스할 수 있습니다.
백그라운드에서 일어나는 일에 대한 자세한 정보를 원할 경우 고급 로깅을 활성화할 수 있습니다. 라이브러리를 초기화한 후 다음 줄을 추가하세요.
Ometria . isLoggingEnabled ( true ) ;
이를 이해하려면 플랫폼에서 사용자의 행동을 알아야 합니다. 일부 동작은 자동으로 감지 가능하며, 다른 이벤트는 추적하려면 앱 개발자의 작업이 필요합니다.
이러한 방법 중 상당수는 웹사이트 추적기에 유사한 이벤트가 있습니다.
예를 들어 고객 식별 이벤트는 고객 ID 또는 이메일을 사용합니다. 이러한 식별자는 여기에서 데이터 API와 동일해야 합니다. 이메일과 고객 ID를 모두 지정하는 경우 둘 다 일치해야 합니다.
이벤트는 Ometria 측에서 고객 행동에 대한 하나의 큰 교차 채널 보기로 병합됩니다. 일관되지 않은 이메일/고객 ID를 사용하는 경우 중복된 프로필이 생성되거나 데이터가 손실될 수 있습니다.
SDK가 초기화되면 전용 메서드를 호출하여 이벤트를 추적할 수 있습니다.
앱 사용자가 방금 자신을 식별했습니다. 즉, 로그인했습니다.
Ometria . trackProfileIdentifiedByCustomerIdEvent ( 'test_customer_id' ) ;
고객 ID 는 데이터베이스의 사용자 ID 입니다.
때로는 사용자가 완전히 로그인하지 않거나 계정이 없는 상태에서 이메일 주소만 제공하는 경우가 있습니다. 이 경우 Ometria는 이메일을 기반으로 일치 항목을 프로파일링할 수 있습니다.
Ometria . trackProfileIdentifiedByEmailEvent ( '[email protected]' ) ;
customerId가 있으면 프로필 일치가 더욱 강력해집니다.
이메일 이벤트 전송과 상호 배타적이지 않습니다. 최적의 통합을 위해서는 정보를 얻는 즉시 이벤트를 보내야 합니다. 이 두 이벤트는 SDK 기능에 중추적인 역할을 하므로 최대한 빨리 보내도록 하세요. 여기서 이러한 식별자는 귀하가 전자 상거래 플랫폼에서 사용하고 (데이터 API 또는 기타 방법을 통해) Ometria에 보내는 식별자와 동일해야 함을 다시 한번 강조합니다. 이메일과 고객 ID를 모두 지정하는 경우 둘 다 일치해야 합니다. 통합에서 볼 수 있는 일반적인 오류는 앱이 로그인할 때마다 새로운 고객 ID(Ometria에 저장된 고객 ID와 일치하지 않음)를 생성한다는 것입니다. 이를 방지하려면 서버에서 중앙에서 이러한 ID를 생성하고 Ometria 모바일 SDK 및 Ometria Data API를 통해 일관된 ID를 보내십시오. 일관된 ID를 생성하는 것이 불가능할 경우 연락처를 식별하기 위해 이메일만 사용하는 것이 좋습니다.
profileIdentified 이벤트를 실행 취소합니다. 사용자가 로그아웃한 경우 이 기능을 사용할 수 있습니다.
Ometria . trackProfileDeidentifiedEvent ( ) ;
현재 이 이벤트는 휴대전화의 로컬 저장소에 저장된 ID(이메일 및/또는 고객 ID)를 지웁니다. Ometria 내에서는 다른 효과가 없습니다.
방문자는 제품을 클릭/탭/보기/강조 표시하거나 기타 방법으로 제품에 관심을 나타냅니다.
예를 들어 방문자가 용어를 검색하고 결과 집합에서 제품 미리보기 중 하나를 선택하거나 의류 카테고리를 탐색하고 특정 셔츠를 클릭하여 더 큰 그림을 봅니다.
본 이벤트는 해당 제품에 대한 방문자의 관심을 끌기 위한 것입니다.
Ometria . trackProductViewedEvent ( 'product_id' ) ;
방문자가 장바구니 내용이 포함된 전용 페이지, 화면 또는 모달을 보았습니다.
Ometria . trackBasketViewedEvent ( ) ;
방문자가 장바구니를 변경했습니다.
const items : OmetriaBasketItem [ ] = [
{
productId : 'product-1' ,
sku : 'sku-product-1' ,
quantity : 1 ,
price : 12.0 ,
variantId : 'variant-1' ,
} ,
{
productId : 'product-2' ,
sku : 'sku-product-2' ,
quantity : 2 ,
price : 9.0 ,
variantId : 'variant-2' ,
} ,
{
productId : 'product-3' ,
sku : 'sku-product-3' ,
quantity : 3 ,
price : 20.0 ,
variantId : 'variant-3' ,
} ,
] ;
Ometria . trackBasketUpdatedEvent ( {
totalPrice : 12.0 ,
id : 'basket_id_eg' ,
currency : 'USD' ,
items ,
link : 'link_eg' ,
} ) ;
이 이벤트는 업데이트된 부품뿐만 아니라 전체 현재 바구니를 매개변수로 사용합니다.
이는 분실되거나 동기화되지 않은 장바구니 이벤트를 복구하는 데 도움이 됩니다. 최신 업데이트는 항상 신뢰할 수 있습니다.
OmetriaBasketItem 은 장바구니 항목의 내용을 설명하는 개체입니다. 적용되는 다양한 규칙과 프로모션에 따라 자체 가격과 수량을 가질 수 있습니다. 여기에는 다음과 같은 속성이 있습니다.
- productId : (
String
, 필수) - 이 제품의 고유 식별자를 나타내는 문자열입니다.- sku : (
String
, 선택 사항) - 특정 품목을 식별할 수 있는 재고 보관 단위를 나타내는 문자열입니다.- 수량 : (
Int
, 필수) - 이 항목이 나타내는 항목 수입니다.- 가격 : (
Float
, 필수) - 한 항목의 가격을 나타내는 Float 값입니다. 통화는 이 항목이 포함된 OmetriaBasket에 의해 설정됩니다.- variandId : (
String
, 선택 사항) - 이 품목과 연결된 변형 제품의 식별자입니다.
OmetriaBasket 은 장바구니의 내용을 설명하는 개체이며 다음과 같은 속성을 갖습니다.
- id : (
String
, 선택 사항) - 이 장바구니의 고유 식별자- 통화 : (
String
, 필수) - ISO 4217 3자리 통화 코드로 통화를 나타내는 문자열(예:"USD"
,"GBP"
- totalPrice : (
float
, 필수) - 가격을 나타내는 부동 소수점 값입니다.- items : (
Array[OmetriaBasketItem]
) - 이 바구니에 있는 품목 항목을 포함하는 배열입니다.- link : (
String
) - 이 장바구니의 웹 또는 인앱 페이지에 대한 딥링크입니다. 사용자에게 전송되는 알림에 사용할 수 있습니다(예: "체크아웃하는 것을 잊으셨나요? 계속하려면 장바구니를 확인하세요: 'https://eg.com/basket_url'"). 해당 링크를 따라가면 장바구니 페이지로 바로 이동됩니다.
사용자가 결제 프로세스를 시작한 시기를 추적합니다. 이는 현재 페이지 조회수를 계산하는 데만 사용되며 Ometria에는 다른 영향을 미치지 않습니다.
Ometria . trackCheckoutStartedEvent ( 'order_id' ) ;
주문이 완료되었으며 다음 금액이 결제되었습니다.
const items : OmetriaBasketItem [ ] = [
{
productId : 'product-1' ,
sku : 'sku-product-1' ,
quantity : 1 ,
price : 12.0 ,
} ,
] ;
Ometria . trackOrderCompletedEvent ( 'order_id' , {
totalPrice : 12.0 ,
id : 'basket_id_eg' ,
currency : 'USD' ,
items ,
link : 'link_eg' ,
} ) ;
앱이 열리는 화면(또는 기타 대상)에 대한 충분한 정보가 있는 경우 이 이벤트를 수동으로 추적하려면 URL이 포함된 알림과의 상호 작용 처리 가이드를 사용하세요.
Ometria . trackDeepLinkOpenedEvent ( '/profile' , 'ProfileScreen' ) ;
방문자는 앱의 '홈 페이지' 또는 랜딩 화면을 봅니다.
Ometria . trackHomeScreenViewedEvent ( ) ;
방문자는 제품 목록을 클릭/탭/보기/강조 표시하거나 기타 방법으로 관심을 나타냅니다. 이러한 종류의 화면에는 검색 결과, 그룹, 카테고리, 컬렉션의 제품 목록 또는 제품 목록을 표시하는 기타 화면이 포함됩니다.
예를 들어, A 매장에서 의류를 판매하고 방문자가 '여성 신발'을 탭하여 해당 카테고리의 제품 목록을 보거나, '파란색 점퍼'를 검색하여 해당 카테고리의 제품 목록을 봅니다.
이 이벤트는 다음에서 트리거되어야 합니다.
Ometria . trackProductListingViewedEvent ( ) ;
방문자의 독립적인 화면 조회수를 추적하면 방문자의 앱 참여와 여정 중 어느 위치에 있는지 추적하는 데 도움이 됩니다.
웹사이트의 유사한 이벤트는 독립적인 페이지 조회수를 추적하는 것입니다.
일반적인 전자상거래 화면에는 모두 장바구니 조회, 조회한 제품 목록 등 자체 최상위 이벤트가 있습니다.
앱에는 마케팅 담당자가 참여를 추적하는 데 유용한 특정 유형의 페이지가 있을 수 있습니다.
예를 들어, 프로모션을 진행 중이고 특정 화면을 보는 것은 프로모션에 대한 관심을 나타내며 나중에 마케팅이 후속 조치를 원할 수 있는 경우입니다.
이러한 맞춤 화면을 추적하려면 화면 조회 이벤트를 사용하세요.
Ometria . trackScreenViewedEvent ( 'OnboardingScreen' , { a : '1' , b : '2' } ) ;
앱에는 마케팅 팀이 관심을 갖는 특정 흐름이나 페이지가 있을 수 있습니다.
예를 들어 마케팅에서는 특정 프로모션에 등록했거나 앱의 버튼이나 특정 요소와 상호작용한 모든 사용자에게 이메일이나 알림을 보내고 싶을 수 있습니다.
해당 작업에 해당하는 맞춤 이벤트를 보내면 해당 작업에 대한 자동화 캠페인이 실행될 수 있습니다.
구체적인 내용과 필요할 수 있는 사항에 대해 마케팅 팀에 문의하세요. 특히 이미 이메일용으로 Ometria를 사용하고 있다면 자동화 캠페인과 맞춤 이벤트에 대해 알게 될 것입니다.
Ometria . trackCustomEvent ( 'my_custom_type' , { } ) ;
다음 이벤트는 SDK에 의해 자동으로 추적됩니다.
SDK를 초기화하면 이러한 이점을 충분히 활용할 수 있습니다. 별도의 언급이 없는 한 추가 통합은 필요하지 않습니다.
이벤트 | 설명 |
---|---|
애플리케이션이 설치됨 | 방금 앱이 설치되었습니다. 일반적으로 앱이 실제로 설치될 때는 전송되지 않으며, 대신 앱이 처음 실행될 때만 전송됩니다. |
애플리케이션이 출시되었습니다. | 누군가 방금 앱을 시작했습니다. |
애플리케이션 포그라운드 | 앱이 이미 실행되었지만 백그라운드에 있었습니다. 방금 전경으로 가져 왔습니다. |
애플리케이션이 백그라운드로 실행됨 | 앱이 활성 사용 중이었고 방금 백그라운드로 전송되었습니다. |
앱 종료 상태에서 알림 수신 | 앱이 종료된 상태에서 시스템에 푸시 알림이 수신되었습니다. (iOS에서는 알림 서비스 확장이 필요함) |
오류가 발생했습니다 | 클라이언트 측에서 오류가 발생했습니다. 우리는 실제 알림 페이로드에서 문제를 감지하려고 노력하므로 최종 사용자에게 피드백해야 할 오류는 없을 것으로 예상됩니다. |
전력 및 대역폭 소비를 줄이기 위해 Ometria 라이브러리는 사용자가 요청하지 않는 한 이벤트를 하나씩 보내지 않습니다.
대신, 다음 중 하나가 발생한 경우 애플리케이션 런타임 중에 백엔드로 전송되는 이벤트 배치를 구성합니다.
pushtokenRefreshed
이벤트).notificationReceived
이벤트appForegrounded
이벤트appBackgrounded
이벤트다음을 호출하여 원할 때마다 남은 모든 이벤트를 백엔드로 보내도록 라이브러리에 요청할 수 있습니다.
Ometria . flush ( ) ;
추적되었지만 아직 플러시되지 않은 모든 이벤트를 완전히 지울 수 있습니다.
이렇게 하려면 다음 메서드를 호출하세요.
Ometria . clear ( ) ;
어떤 이벤트가 캡처되었는지 확인하려면 로깅이 활성화된 경우 Ometria SDK에서 나오는 로그를 확인할 수 있습니다. "Ometria"라는 단어로 필터링할 수 있습니다. SDK는 발생하는 모든 이벤트를 기록하고 플러시(즉, Ometria 모바일 이벤트 API로 전송될 때)도 기록합니다. 전송과 관련된 잠재적인 오류(API 문제 또는 이벤트 유효성 검사 문제)도 여기에 표시됩니다.
Ometria는 Firebase 클라우드 메시징을 사용하여 모바일 장치에 푸시 알림을 보냅니다.
따라서 다음 줄을 사용하여 'React-Native Firebase'를 Ometria의 종속성으로 추가해야 합니다.
import firebase from '@react-native-firebase/app' ;
import messaging from '@react-native-firebase/messaging' ;
Android 의 경우 Firebase ReactNative 튜토리얼을 따르세요 Android용 Firebase iOS 의 경우 Firebase ReactNative 튜토리얼을 따르세요 iOS용 Firebase
푸시 알림을 사용하려면 푸시 알림 ReactNative 가이드의 단계도 따라야 합니다.
올바르게 설정되면 Ometria는 귀하의 모바일 애플리케이션에 대한 개인화된 알림을 보낼 수 있습니다.
다음 단계를 따르세요.
계속하기 전에 다음을 이미 구성해야 합니다.
섹션 4에서 해당 단계에 대해 자세히 알아보세요. 라이브러리 초기화
Android 13 (API 수준 33) 이상의 경우 먼저 AndroidManifest.xml 파일에서 권한을 선언해야 합니다.
< manifest ...>
< uses-permission android : name = " android.permission.POST_NOTIFICATIONS " />
< application ...>
...
</ application >
</ manifest >
알림에 대한 권한을 요청해야 합니다. 반응 네이티브 권한을 사용할 수 있습니다.
import { requestNotifications , RESULTS } from 'react-native-permissions' ;
...
await requestNotifications ( [ 'alert' , 'sound' , 'badge' ] ) . then ( ( { status } ) => {
if ( status === RESULTS . GRANTED ) {
console . log ( '? Push Notification permissions granted!' ) ;
}
} ) ;
여기에서 Android의 알림 런타임 권한에 대해 자세히 알아보세요.
Ometria 초기화 후에는 Firebase 푸시 알림 토큰(iOS 및 Android 모두)을 전달해야 합니다 .
또한 새로 고칠 때마다 푸시 알림 토큰을 Ometria에 전달해야 합니다.
import Ometria from 'react-native-ometria' ;
import messaging from '@react-native-firebase/messaging' ;
await Ometria . initializeWithApiToken ( 'API_KEY' , {
notificationChannelname : 'Example Channel Name' , // optional, only for Android
appGroupIdentifier : 'group.com.ometria.sampleRN' , // optional, only for iOS
} ) ;
messaging ( )
. getToken ( )
. then ( ( pushToken ) => Ometria . onNewToken ( pushToken ) ) ;
messaging ( ) . onTokenRefresh ( ( pushToken ) => Ometria . onNewToken ( pushToken ) ) ;
포그라운드 앱 상태에서 앱이 받는 원격 메시지를 구독하세요. @react-native-firebase/messaging
패키지의 onMessage
메소드를 사용하면 됩니다.
콜백에서 Ometria.onNotificationReceived
사용하여 Ometria SDK에 원격 메시지가 수신되었으며 notificationReceived
이벤트가 시작되었음을 알릴 수 있습니다. 원격 메시지에서 Ometria 데이터를 추출하려면 Ometria.parseNotification
사용하십시오.
messaging ( ) . onMessage ( async ( remoteMessage ) => {
Ometria . onNotificationReceived ( remoteMessage ) ;
const ometriaData = Ometria . parseNotification ( remoteMessage ) ;
// Use ometriaData
} ) ;
이러한 사용자 지정 솔루션을 구현하는 경우 Ometria.onNotificationOpenedApp
호출하여 SDK가 포그라운드 알림에 대한 알림 상호 작용 이벤트를 처리할 때 알림이 상호 작용할 수 있도록 하는 것을 잊지 마세요.
Ometria가 iOS 앱의 종료 및 백그라운드 상태에서 수신된 모든 알림을 정확하게 추적하려면 모든 알림에 액세스할 수 있는 백그라운드 서비스의 기능을 활용해야 합니다.
알림 서비스 확장을 설정하는 방법에 대한 전체 지침은 알림 서비스 확장 대상 추가를 참조하세요.
Ometria가 Android에서 앱의 종료 및 백그라운드 상태에서 수신된 모든 알림을 정확하게 추적하려면 앱이 종료 및 백그라운드 상태에 있는 동안 받는 원격 메시지를 조기에( index.js
에서) 구독해야 합니다.
Ometria.onAndroidBackgroundMessage
Ometria SDK에 원격 메시지가 수신되었음을 알리고 notificationReceived 이벤트가 시작될 것임을 알려줍니다. 백그라운드에서 SDK를 초기화하려면 Ometria 토큰이 필요합니다.
Platform . OS === 'android' &&
messaging ( ) . setBackgroundMessageHandler ( async ( remoteMessage ) => {
Ometria . onAndroidBackgroundMessage ( {
ometriaToken : 'OMETRIA_KEY'
ometriaOptions : { } ,
remoteMessage ,
} ) ;
} ) ;
버전 2.4.0부터 Ometria.setBackgroundMessageHandler
더 이상 사용되지 않는 메서드입니다. 대신 Ometria.onAndroidBackgroundMessage
사용하세요.
사용자가 백그라운드 또는 종료 상태에서 알림과 상호 작용할 때 알림이 상호 작용했고 앱이 열렸다는 사실을 Ometria SDK에 알려야 합니다. 원격 메시지를 매개변수로 사용하여 Ometria.onNotificationOpenedApp
호출하여 이를 수행할 수 있습니다.
// Check if the app was opened from quit state by a notification
messaging ( )
. getInitialNotification ( )
. then ( ( remoteMessage ) => {
if ( remoteMessage ) {
Ometria . onNotificationOpenedApp ( remoteMessage ) ;
}
} ) ;
// Subscribe to the app being opened from background state by a notification
messaging ( ) . onNotificationOpenedApp ( ( remoteMessage ) =>
Ometria . onNotificationOpenedApp ( remoteMessage )
) ;
버전 2.4.0부터 Ometria.onNotificationInteracted
는 더 이상 사용되지 않는 방법입니다. 대신 Ometria.onNotificationOpenedApp
사용하세요.
Ometria를 사용하면 푸시 알림과 함께 URL 및 추적 정보를 보낼 수 있으며 장치에서 이를 처리할 수 있습니다. 알림이 앱을 열면 알림 원격 메시지를 구문 분석하고 딥링크 URL이 포함되어 있는지 확인할 수 있습니다.
const notif = await Ometria . parseNotification ( remoteMessage ) ;
if ( notif ?. deepLinkActionUrl ) {
Ometria . trackDeepLinkOpenedEvent ( notif . deepLinkActionUrl , 'Browser' ) ;
Linking . openURL ( notif . deepLinkActionUrl ) ;
}
Ometria.parseNotification
다음과 같은 OmetriaNotificationData
유형의 객체를 반환합니다.
type OmetriaNotificationData = {
campaignType?: 'trigger; // represents automation campaigns
deepLinkActionUrl?: string;
externalCustomerId?: string;
imageUrl?: string;
sendId?: string;
tracking: { // Can be overridden / added in your automation campaign's settings
utm_medium?: string; // default is "push"
utm_source: string;
utm_campaign: string; // generated from campaign hash and title
om_campagin: string; // generated from campaign hash, campaign version and node id
[key: string]: string | undefined; // additional tracking data you add
};
};
알림 서비스 확장에는 다음 두 가지 목적이 있습니다.
확장을 추가하려면 파일 > 새로 만들기 > 대상 으로 이동하고 알림 서비스 확장 > 다음을 선택합니다.
새 항목이 대상 목록에 표시됩니다.
다음으로, 새로 추가된 대상을 포함하고 Ometria를 종속성으로 지정하도록 Podfile을 업데이트하여 이 새 대상에도 Ometria SDK를 사용할 수 있는지 확인하세요.
# move this line before the App target
pod 'GoogleUtilities' , : modular_headers => true
use_frameworks! :linkage => :static
target 'sampleApp' do
# Pods for sampleApp
end
# Add the following lines
target 'NotificationService' do
use_frameworks! :linkage => :static
pod 'Ometria'
end
이 시점에서 기본 애플리케이션과 확장 기능은 공유 구성 요소가 코드뿐인 두 개의 별도 엔터티로 작동합니다. 확장 프로그램이 SDK와 관련된 데이터에 대한 읽기 및 쓰기 액세스 권한을 얻으려면 기본 대상과 동일한 앱 그룹에 있어야 합니다. 이렇게 하면 기본 대상과 확장 프로그램이 데이터를 공유할 수 있습니다.
프로젝트 탐색기에서 프로젝트를 선택한 다음 서명 및 기능 으로 이동하고 왼쪽 상단에서 + 기능을 선택합니다.
완료하면 서명 아래에 새 섹션이 표시됩니다. 새 앱 그룹을 추가할 수 있습니다. 관련 식별자(예: group.[BUNDLE_IDENTIFIER]
)를 선택하고 Ometria를 인스턴스화할 때 필요하므로 값을 유지하십시오. 알림 서비스 확장 대상에 대해 프로세스를 반복하면 준비가 완료됩니다.
Ometria가 알림을 가로챌 수 있도록 하려면 확장과 함께 자동으로 생성된 NotificationService
클래스를 열고 내용을 다음으로 바꿉니다.
import UserNotifications
import Ometria
class NotificationService : OmetriaNotificationServiceExtension {
override func instantiateOmetria ( ) -> Ometria ? {
Ometria . initializeForExtension ( appGroupIdentifier : " group.[BUNDLE_IDENTIFIER] " )
}
}
마지막으로 ReactNative 애플리케이션에서 Ometria를 초기화할 때 앱 그룹 식별자를 사용해야 합니다.
import Ometria from 'react-native-ometria' ;
// Ometria init
await Ometria . initializeWithApiToken ( 'API_KEY' , {
notificationChannelName : 'Example Channel Name' , // optional, only for Android
appGroupIdentifier : 'group.[BUNDLE_IDENTIFIER]' , // optional, only for iOS
} ) ;
이제 앱은 종료 상태에서 알림이 수신될 때마다 notificationReceived
이벤트를 내보내며 iOS에 풍부한 콘텐츠 알림을 표시할 수 있습니다.
전체 예제와 사용 사례를 보려면 샘플 앱을 참조하세요.
Ometria는 귀하의 웹사이트를 다시 가리키는 URL이 포함된 개인화된 이메일을 보냅니다. 애플리케이션 내에서 이러한 URL을 열려면 이 가이드를 따르십시오.
먼저, 귀하의 계정에 SSL이 활성화된 Ometria 추적 도메인이 설정되어 있는지 확인하십시오. 귀하의 이메일 캠페인에 대해 이미 이 정보가 있을 수 있지만, 그렇지 않은 경우 Ometria 담당자에게 설정을 요청하면 해당 도메인을 제공받을 것입니다.
연결된 도메인에 대한 iOS 문서를 따른 다음 apple-app-site-association 파일을 생성하여 Ometria 연락처로 보내십시오.
마지막 단계는 앱의 URL을 처리하고 사용자를 앱의 적절한 섹션으로 안내하는 것입니다. 웹사이트의 URL과 앱 화면 간의 매핑을 구현해야 합니다.
앱 화면에 푸시 알림 연결도 참조하세요.
웹 사이트를 가리키는 일반 URL을 처리하는 경우 이를 다른 경로 구성 요소와 매개 변수로 분해할 수 있습니다. 이를 통해 앱에서 올바른 화면으로 이동하는 데 필요한 정보를 얻을 수 있습니다.
ReactNative가 URL이 앱을 여는 것을 식별하려면 ios 폴더에서 AppDelegate.m 파일을 조정해야 합니다. ./ios/ProjectName에서 AppDelegate.m에 다음 코드를 추가합니다.
- ( BOOL )application:(UIApplication *)application openURL:( NSURL *)url
sourceApplication:( NSString *)sourceApplication annotation:( id )annotation
{
return [RCTLinkingManager application: application openURL: url
sourceApplication: sourceApplication annotation: annotation];
}
// Only if your app is using [Universal Links](https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html).
- ( BOOL )application:(UIApplication *)application continueUserActivity:( NSUserActivity *)userActivity
restorationHandler:( void (^)( NSArray * _Nullable))restorationHandler
{
return [RCTLinkingManager application: application
continueUserActivity: userActivity
restorationHandler: restorationHandler];
}
Android의 경우 다음을 추가하세요.
< intent-filter android : autoVerify = " true " >
< action android : name = " android.intent.action.VIEW " />
< category android : name = " android.intent.category.DEFAULT " />
< category android : name = " android.intent.category.BROWSABLE " />
< data
android : host = " clickom.omdemo.net "
android : scheme = " https " />
</ intent-filter >
/android/app/src/main/AndroidManifest.xml에
그러나 Ometria 이메일에는 난독화된 추적 URL이 포함되어 있으며, 이를 시작하기 전에 귀하의 웹사이트를 가리키는 원래 URL로 다시 변환해야 합니다.