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.
Integração do Feed de notícias
O feed de notícias será descontinuado. A Braze recomenda que os clientes que usam nossa ferramenta de feed de notícias migrem para o canal de envio de mensagens Content Cards - é mais flexível, personalizável e confiável. Para saber mais, consulte o guia de migração.
Modelo de dados do feed de notícias
Obtendo os dados
Para acessar o modelo de dados do Feed de notícias, assine os eventos de atualização do Feed de notícias:
1
2
3
4
5
6
// Subscribe to feed updates
// Note: you should remove the observer where appropriate
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(feedUpdated:)
name:ABKFeedUpdatedNotification
object:nil];
1
2
3
4
5
6
// Called when the feed is refreshed (via `requestFeedRefresh`)
- (void)feedUpdated:(NSNotification *)notification {
BOOL updateIsSuccessful = [notification.userInfo[ABKFeedUpdatedIsSuccessfulKey] boolValue];
// check for success
// get the cards using [[Appboy sharedInstance].feedController getCardsInCategories:ABKCardCategoryAll];
}
1
2
3
4
5
// Subscribe to feed updates
// Note: you should remove the observer where appropriate
NotificationCenter.default.addObserver(self, selector:
#selector(feedUpdated),
name:NSNotification.Name.ABKFeedUpdated, object: nil)
1
2
3
4
5
6
7
// Called when the feed is refreshed (via `requestFeedRefresh`)
private func feedUpdated(_ notification: Notification) {
if let updateSuccessful = notification.userInfo?[ABKFeedUpdatedIsSuccessfulKey] as? Bool {
// check for success
// get the cards using Appboy.sharedInstance()?.feedController.getCardsInCategories(.all);
}
}
Se você quiser alterar os dados do cartão depois que eles forem enviados pelo Braze, recomendamos armazenar (cópia profunda) os dados do cartão na localização, atualizá-los e exibi-los você mesmo. Os cartões podem ser acessados por meio do ABKFeedController
.
Modelo de feed de notícias
O Braze tem cinco tipos de cartões exclusivos: imagem de banner, imagem com legenda, anúncio de texto e clássico. Cada tipo herda propriedades comuns de um modelo base e possui as seguintes propriedades adicionais.
Propriedades do modelo do cartão básico
Propriedade | Descrição |
---|---|
idString |
(Somente leitura) O ID do cartão definido pelo Braze. |
viewed |
Essa propriedade reflete se o cartão foi lido ou não lido pelo usuário. |
created |
(Somente leitura) A propriedade é o registro de data e hora unix da hora de criação do cartão no dashboard da Braze. |
updated |
(Somente leitura) A propriedade é o registro de data e hora unix da última atualização do cartão no dashboard do Braze. |
categories |
A lista de categorias atribuídas ao cartão; os cartões sem uma categoria serão atribuídos a ABKCardCategoryNoCategory .Categorias disponíveis: - ABKCardCategoryNoCategory - ABKCardCategoryNews - ABKCardCategoryAdvertising - ABKCardCategoryAnnouncements - ABKCardCategorySocial - ABKCardCategoryAll |
extras |
Um NSDictionary opcional de valores NSString . |
Propriedades do cartão de imagem de banner
Propriedade | Descrição |
---|---|
image |
(Obrigatório) Essa propriedade é o URL da imagem do cartão. |
URL |
(Opcional) O URL que será aberto depois que o cartão for clicado. Pode ser um URL HTTP(S) ou um URL de protocolo. |
domain |
(Opcional) O texto do link para o URL da propriedade, como @”blog.braze.com”. Ele pode ser exibido na interface do usuário do cartão para indicar a ação e a direção do clique no cartão, mas fica oculto no feed de notícias padrão do Braze. |
Propriedades do cartão de imagem legendado
Propriedade | Descrição |
---|---|
image |
(Obrigatório) Essa propriedade é o URL da imagem do cartão. |
title |
(Obrigatório) O texto do título do cartão. |
description (Obrigatório) O texto do corpo do cartão. |
|
URL |
(Opcional) O URL que será aberto depois que o cartão for clicado. Pode ser um URL HTTP(S) ou um URL de protocolo. |
domain |
(Opcional) O texto do link para o URL da propriedade, como @”blog.braze.com”. Ele pode ser exibido na interface do usuário do cartão para indicar a ação e a direção do clique no cartão. |
Propriedades do cartão de anúncio de texto (imagem legendada sem imagem)
Propriedade | Descrição |
---|---|
title |
(Obrigatório) O texto do título do cartão. |
description |
(Obrigatório) O texto do corpo do cartão. |
url |
(Opcional) O URL que será aberto depois que o cartão for clicado. Pode ser um URL HTTP(S) ou um URL de protocolo. |
domain |
(Opcional) O texto do link para o URL da propriedade, como @”blog.braze.com”. Ele pode ser exibido na interface do usuário do cartão para indicar a ação e a direção do clique no cartão. |
Propriedades do cartão clássico
Propriedade | Descrição |
---|---|
image |
(Obrigatório) Essa propriedade é o URL da imagem do cartão. |
title |
(Opcional) O texto do título do cartão. |
description |
(Obrigatório) O texto do corpo do cartão. |
URL |
(Opcional) O URL que será aberto depois que o cartão for clicado. Pode ser um URL HTTP(S) ou um URL de protocolo. |
domain |
(Opcional) O texto do link para o URL da propriedade, como @”blog.braze.com”. Ele pode ser exibido na interface do usuário do cartão para indicar a ação e a direção do clique no cartão. |
Métodos do cartão
Método | Descrição |
---|---|
logCardImpression |
Registre manualmente uma impressão no Braze para um determinado cartão. |
logCardClicked |
Registre manualmente um clique no Braze para um determinado cartão. O SDK só registrará um clique no cartão quando o cartão tiver a propriedade url com um valor válido. Todas as subclasses de ABKCard têm a propriedade url . |
Exibição do feed de registros
Ao exibir o Feed de notícias em sua própria interface de usuário, é possível registrar manualmente as impressões do Feed de notícias por meio do site - (void)logFeedDisplayed;
. Por exemplo:
1
[[Appboy sharedInstance] logFeedDisplayed];
1
Appboy.sharedInstance()?.logFeedDisplayed()
Integração do controlador de visualização do feed de notícias
A integração do controlador de visualizações ABKNewsFeedViewController
exibirá o feed de notícias da Braze.
Você tem muita flexibilidade para escolher como exibir os controladores de visualização. Há diferentes versões dos controladores de visualização para acomodar diferentes estruturas de navegação.
O Feed de notícias que é chamado pelo comportamento padrão de um clique em uma mensagem no app não respeitará os delegados que você definir para o Feed de notícias. Se quiser respeitar isso, você deve definir o delegado em ABKInAppMessageUIController
e implementar o método delegado ABKInAppMessageUIDelegate
onInAppMessageClicked:
.
O feed de notícias pode ser integrado a dois contextos de controle de exibição: navegação ou modal.
Contexto de navegação - ABKFeedViewControllerNavigationContext
1
2
ABKNewsFeedTableViewController *newsFeed = [[ABKNewsFeedTableViewController alloc] init];
[self.navigationController pushViewController:newsFeed animated:YES];
1
2
let newsFeed = ABKNewsFeedTableViewController()
self.navigationController?.pushViewController(newsFeed, animated: true)
Para personalizar o title
da barra de navegação, defina a propriedade title do navigationItem
da instância ABKNewsFeedTableViewController
.
Contexto modal - ABKFeedViewControllerModalContext
Esse modal é usado para apresentar o controlador de exibição em uma exibição modal, com uma barra de navegação na parte superior e um botão Concluído no lado direito da barra. Para personalizar o título do modal, defina a propriedade title
do navigationItem
da instância ABKNewsFeedTableViewController
.
Se um delegado NÃO estiver definido, o botão Done (Concluído ) encerrará a exibição modal. Se um delegado for definido, o botão Done (Concluído ) chamará o delegado, e o próprio delegado será responsável por encerrar a exibição.
1
2
ABKNewsFeedViewController *newsFeed = [[ABKNewsFeedViewController alloc] init];
[self presentViewController:newsFeed animated:YES completion:nil];
1
2
let newsFeed = ABKNewsFeedViewController()
self.present(newsFeed, animated: true, completion: nil)
Para ver exemplos de controladores de exibição, confira nosso app de amostra do Feed de notícias.