warning:
AppboyKit (also known as the Objective-C SDK) is no longer supported and has been replaced by the Swift SDK. It will no longer receive new features, bug fixes, security updates, or technical support—however, messaging and analytics will continue to function as normal. To learn more, see Introducing the New Braze Swift SDK.
콘텐츠 카드 통합
콘텐츠 카드 데이터 모델
콘텐츠 카드 데이터 모델은 iOS SDK에서 사용할 수 있습니다.
데이터 가져오기
콘텐츠 카드 데이터 모델에 액세스하려면 콘텐츠 카드 업데이트 이벤트에 가입합니다.
1
2
3
4
5
6
| // Subscribe to Content Cards updates
// Note: you should remove the observer where appropriate
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(contentCardsUpdated:)
name:ABKContentCardsProcessedNotification
object:nil];
|
1
2
3
4
5
6
7
| // Called when Content Cards are refreshed (via `requestContentCardsRefresh`)
- (void)contentCardsUpdated:(NSNotification *)notification {
BOOL updateIsSuccessful = [notification.userInfo[ABKContentCardsProcessedIsSuccessfulKey] boolValue];
if (updateIsSuccessful) {
// get the cards using [[Appboy sharedInstance].contentCardsController getContentCards];
}
}
|
1
2
3
4
5
| // Subscribe to content card updates
// Note: you should remove the observer where appropriate
NotificationCenter.default.addObserver(self, selector:
#selector(contentCardsUpdated),
name:NSNotification.Name.ABKContentCardsProcessed, object: nil)
|
1
2
3
4
5
6
7
8
| // Called when the Content Cards are refreshed (via `requestContentCardsRefresh`)
@objc private func contentCardsUpdated(_ notification: Notification) {
if let updateIsSuccessful = notification.userInfo?[ABKContentCardsProcessedIsSuccessfulKey] as? Bool {
if (updateIsSuccessful) {
// get the cards using Appboy.sharedInstance()?.contentCardsController.contentCards
}
}
}
|
Braze에서 카드 데이터를 보낸 후에 변경하려면 카드 데이터의 딥 카피를 로컬에 저장하고 데이터를 업데이트한 후 직접 표시하는 것이 좋습니다. 카드는 ABKContentCardsController
를 통해 접근할 수 있습니다.
콘텐츠 카드 모델
Braze는 세 가지 콘텐츠 카드 유형(배너, 자막 이미지 및 클래식)을 제공합니다. 각 유형은 기본 ABKContentCard
클래스에서 공통 속성정보를 상속받으며 다음과 같은 추가 속성정보가 있습니다.
기본 콘텐츠 카드 모델 속성 - ABKContentCard
등록정보 |
설명 |
idString |
(읽기 전용) Braze에서 설정한 카드의 ID. |
viewed |
이 속성정보는 사용자가 카드를 조회했는지 여부를 반영합니다. |
created |
(읽기 전용) 이 속성은 Braze에서 카드 생성 시간의 Unix 타임스탬프입니다. |
expiresAt |
(읽기 전용) 이 속성은 카드의 만료 시간에 대한 Unix 타임스탬프입니다. |
dismissible |
이 속성은 사용자가 카드를 해제할 수 있는지 여부를 반영합니다. |
pinned |
이 속성정보는 대시보드에서 카드가 ‘고정됨’으로 설정되었는지 여부를 반영합니다. |
dismissed |
이 속성은 사용자가 카드를 닫았는지 여부를 반영합니다. |
url |
카드를 클릭한 후 열리는 URL입니다. HTTP(s) URL 또는 프로토콜 URL일 수 있습니다. |
openURLInWebView |
이 속성정보는 URL이 앱 내에서 열릴지, 외부 웹 브라우저에서 열릴지를 결정합니다. |
extras |
선택적 NSDictionary (값: NSString ). |
배너 콘텐츠 카드 속성정보 - ABKBannerContentCard
등록정보 |
설명 |
image |
이 속성은 카드 이미지의 URL입니다. |
imageAspectRatio |
이 속성정보는 카드 이미지의 종횡비이며 이미지 로드가 완료되기 전에 힌트로 사용됩니다. 특정 상황에서는 속성이 제공되지 않을 수 있습니다. |
캡션이 있는 이미지 콘텐츠 카드 속성 - ABKCaptionedImageCard
등록정보 |
설명 |
image |
이 속성은 카드 이미지의 URL입니다. |
imageAspectRatio |
이 속성은 카드 이미지의 종횡비입니다. |
title |
카드의 제목 텍스트입니다. |
cardDescription |
카드의 본문 텍스트. |
domain |
속성 URL의 링크 텍스트, 예를 들어 @”blog.braze.com”. 카드의 UI에 표시되어 카드를 클릭할 때 동작과 방향을 나타낼 수 있습니다. |
클래식 콘텐츠 카드 속성 - ABKClassicContentCard
등록정보 |
설명 |
image |
(Optional) 이 속성은 카드 이미지의 URL입니다. |
title |
카드의 제목 텍스트입니다. |
cardDescription |
카드의 본문 텍스트. |
domain |
속성 URL의 링크 텍스트, 예를 들어 @”blog.braze.com”. 카드의 UI에 표시되어 카드를 클릭할 때 동작과 방향을 나타낼 수 있습니다. |
카드 방법
방법 |
설명 |
logContentCardImpression |
특정 카드에 대해 Braze에 노출 횟수를 수동으로 기록합니다. |
logContentCardClicked |
특정 카드에 대해 Braze에 클릭을 수동으로 기록합니다. SDK는 카드에 유효한 값이 있는 url 속성정보가 있을 때만 카드 클릭을 기록합니다. |
logContentCardDismissed |
특정 카드에 대해 Braze에 해제를 수동으로 기록합니다. SDK는 카드의 dismissed 속성정보가 이미 true 로 설정되지 않은 경우에만 카드 방출을 기록합니다. |
isControlCard |
카드가 A/B 테스트의 제어 카드인지 확인합니다. |
자세한 내용은 클래스 참조 설명서를 참조하십시오.
Content Cards 뷰 컨트롤러 통합
콘텐츠 카드는 두 가지 보기 컨트롤러 컨텍스트(탐색 또는 Modal)와 통합될 수 있습니다.
탐색 컨텍스트
내비게이션 컨트롤러에 ABKContentCardsTableViewController
인스턴스를 푸시하는 예:
1
2
3
4
| ABKContentCardsTableViewController *contentCards = [[ABKContentCardsTableViewController alloc] init];
contentCards.title = @"Content Cards Title";
contentCards.disableUnreadIndicator = YES;
[self.navigationController pushViewController:contentCards animated:YES];
|
1
2
3
4
| let contentCards = ABKContentCardsTableViewController()
contentCards.title = "Content Cards Title"
contentCards.disableUnreadIndicator = true
navigationController?.pushViewController(contentCards, animated: true)
|
note:
탐색 모음의 제목을 사용자 지정하려면 ABKContentCardsTableViewController
인스턴스 navigationItem
의 제목 속성정보를 설정합니다.
모달 컨텍스트
이 모달은 모달 보기에서 보기 컨트롤러를 표시하는 데 사용되며, 상단에 탐색 막대가 있고 막대 측면에 Done 버튼이 있습니다.
1
2
3
4
| ABKContentCardsViewController *contentCards = [[ABKContentCardsViewController alloc] init];
contentCards.contentCardsViewController.title = @"Content Cards Title";
contentCards.contentCardsViewController.disableUnreadIndicator = YES;
[self.navigationController presentViewController:contentCards animated:YES completion:nil];
|
1
2
3
4
| let contentCards = ABKContentCardsViewController()
contentCards.contentCardsViewController.title = "Content Cards Title"
contentCards.contentCardsViewController.disableUnreadIndicator = true
self.present(contentCards, animated: true, completion: nil)
|
보기 컨트롤러 예제를 보려면 콘텐츠 카드 샘플 앱을 확인하세요.
note:
헤더를 사용자 정의하려면 부모 ABKContentCardsViewController
인스턴스에 포함된 ABKContentCardsTableViewController
인스턴스에 속하는 navigationItem
의 제목 속성을 설정하십시오.