Introdução ao Vungle - SDK do iOS v. 5

Conteúdo

Antes de começar

  • O Vungle SDK para iOS v. 5 é compatível com iOS 8+.
  • O Vungle SDK para iOS v. 5 foi testado com iOS 11 beta/GM Seed.
  • O Vungle SDK para iOS v. 5 é compatível com aplicativos de 32 e 64 bits.
  • A integração requer que você tenha uma conta Vungle. Se você ainda não tem uma conta, crie uma antes de continuar.
  • Nosso SDK do iOS é compatível com o Xcode 9.0 ou superior.

Etapa 1. Adicionar o framework Vungle ao projeto Xcode

Adicione o VungleSDK.framework ao seu projeto

Há duas maneiras de adicionar o Vungle a seu projeto do Xcode: usando Cocoapods ou integração manual.

Cocoapods

O Vungle SDK está disponível pelo Cocoapods. Adicione o Vungle ao seu projeto adicionando a seguinte linha ao podfile do projeto.

 pod "VungleSDK-iOS", "5.4.0"

Depois disso, uma execução rápida do pod install deve atualizar seu projeto com a versão mais recente de nosso SDK para iOS. Neste ponto, você pode ir para a “Etapa 2. Remover a barra de status do iOS”.

Integração manual

Baixe o Vungle SDK v5. Se estiver fazendo a atualização a partir de uma versão anterior do Vungle SDK, primeiro remova todo o diretório VungleSDK.framework antes de adicionar o novo SDK.

Localize os arquivos extraídos e arraste e solte o diretório VungleSDK.framework no Xcode em Frameworks. Certifique-se de adicionar a pasta VungleSDK.framework como um grupo (pasta amarela) e não como uma referência (pasta azul).

Adicionar outros frameworks necessários

O Vungle SDK requer que você vincule alguns outros frameworks nativos ao seu projeto em Navegador do projeto e vá para Geral → Frameworks e bibliotecas vinculados.

Muitos desses frameworks já estão inclusos, porque são padrão para a maioria dos projetos do Xcode, mas certifique-se de adicionar os que ainda não estão inclusos:

  • AdSupport.framework
  • AudioToolbox.framework
  • AVFoundation.framework
  • CFNetwork.framework
  • CoreGraphics.framework
  • CoreMedia.framework
  • Foundation.framework
  • libz.dylib ou libz.tbd
  • MediaPlayer.framework
  • QuartzCore.framework
  • StoreKit.framework
  • SystemConfiguration.framework
  • UIKit.framework
  • WebKit.framework
    Nota: O Vungle SDK v.5 não é compatível com o iOS 7. Se o iOS 7 for o destino de implementação, use o Vungle iOS SDK v.4.1 ou inferior.

Certifique-se de que o framework VungleSDK apareça em Frameworks e bibliotecas vinculados.

Adicionar o flag de vinculação “-ObjC”

Clique no seu projeto em Navegador do projeto e vá para Configurações de build → Vinculação → Outras flags de vinculação . Adicione -ObjC em Outras flags de vinculação .

Etapa 2. Remover a barra de status do iOS

Embora esta etapa não seja necessária, recomendamos que você remova a barra de status do iOS para garantir que a interação e apresentação de anúncios do Vungle funcione perfeitamente. Para remover a barra de status, abra seu Info.plist, adicione a chave Aparência de barra de status de visualização baseada em controle e defina-a como Não.

Etapa 3. Adicionar código

Inicializar o SDK

Nota: Um posicionamento padrão é automaticamente criado para cada aplicativo. Você deve fornecer seu ID de referência de posicionamento nesta etapa de inicialização, independentemente se planeja ou não aproveitar a funcionalidade de posicionamentos. Se criar múltiplos posicionamentos, forneça todos os IDs de referência.

Inicialize o SDK assim que o seu aplicativo iniciar de modo a dar ao SDK tempo suficiente para colocar em cache um anúncio para o posicionamento armazenado automaticamente em cache. Você precisará do ID do aplicativo para todos os IDs de referência de posicionamento que você deseja usar no seu aplicativo (ativos e inativos) para inicializar o SDK. Você pode encontrar estes IDs no painel do Vungle (consulte Configuração de posicionamentos no painel do Vungle).

- (BOOL)startWithAppId:(nonnull NSString *)appID placements:(nonnull NSArray *)placements error:(NSError **)error;

Exemplo de código:

#import <VungleSDK/VungleSDK.h>
...
NSError* error;
NSString* appID = @"Your_AppID_Here"; NSArray* placementIDsArray = @[@"<Your_PlacementID_1>", @"<Your_PlacementID_2>", @"<Your_PlacementID_3>"]; VungleSDK* sdk = [VungleSDK sharedSDK]; [sdk startWithAppId:appID placements:placementIDsArray error:&error];

Uma vez que o SDK tenha sido inicializado com sucesso, o seguinte método de callback é chamado:

- (void)vungleSDKDidInitialize;

Consulte a seção “Delegar callbacks” neste artigo.

Você também pode verificar o status da inicialização do SDK com a seguinte propriedade:

@property (atomic, readonly, getter=isInitialized) BOOL initialized;

Depois que o SDK é inicializado, ele automaticamente coloca em cache um anúncio no posicionamento que você selecionou em Armazenado automaticamente em cache no painel Vungle. Recomendamos que você selecione o posicionamento mais visualizado como sua seleção de armazenado em cache automaticamente.

Assim que o anúncio é armazenado em cache, o método de callback vungleAdPlayabilityUpdate é chamado com o ID de referência de posicionamento correspondente ao seu posicionamento Armazenado automaticamente em cache. (Consulte a seção “Verificar a disponibilidade de anúncio para um posicionamento” deste artigo.)

Carregar um anúncio para um posicionamento

Para outros posicionamentos além do posicionamento armazenado automaticamente em cache, chame o método loadPlacementWithID para carregar um anúncio.

- (BOOL)loadPlacementWithID:(NSString *)placementID error:(NSError **)error;

Exemplo de código:

NSError* error;
VungleSDK* sdk = [VungleSDK sharedSDK]; [sdk loadPlacementWithID:"<Your_PlacementID>" error:&error];

Consulte a seção “Verificar a disponibilidade de anúncio para um posicionamento” deste artigo.

Verifica a disponibilidade de anúncio para um posicionamento

Uma vez que o SDK finalize o armazenamento em cache de um anúncio para um posicionamento, o seguinte método de callback é chamado:

- (void)vungleAdPlayabilityUpdate:(BOOL)isAdPlayable placementID:(nullable NSString *)placementID; 

Exemplo de código:

- (void)vungleAdPlayabilityUpdate:(BOOL)isAdPlayable placementID:(NSString *)placementID { if([placementID isEqualToString:@"<Your_PlacementID>"]) { self.playButtonPlacement1.enabled = isAdPlayable; } }

Nota: Para o posicionamento armazenado em cache automaticamente, este método de callback é chamado apenas quando um anúncio fica disponível. O SDK ficará solicitando um anúncio para o posicionamento armazenado em cache automaticamente. Para todos os outros posicionamentos, este método de callback é chamado em caso de "Falha de carregamento" (isAdPlayable retorna 'NÃO' neste caso).

Você também pode verificar a disponibilidade de anúncio para um posicionamento com a seguinte propriedade:

- (BOOL)isAdCachedForPlacementID:(nonnull NSString *)placementID;

Reproduzir um anúncio

Depois que você tiver se certificar que um anúncio esteja pronto para um posicionamento, você pode reproduzir o anúncio com o seguinte método:

- (BOOL)playAd:(UIViewController *)controller options:(nullable NSDictionary *)options placementID:(nullable NSString *)placementID error:( NSError *__autoreleasing _Nullable *_Nullable)error;

Exemplo de código:

VungleSDK* sdk = [VungleSDK sharedSDK]; NSError *error; [self.sdk playAd:self options:nil placementID:@"<Your_PlacementID_1>" error:&error]; if (error) { NSLog(@"Error encountered playing ad: %@", error); }

Anúncios Flex Feed

A compatibilidade com anúncios Flex Feed é oferecida desde o SDK v.5.3 do Vungle. Este é o primeiro formato de anúncio que não requer tela cheia. Em vez disso, o distribuidor determina as dimensões e a localização exatas do contêiner de anúncios dentro do aplicativo.

Carregamento de um anúncio Flex Feed

Carregar um anúncio Flex Feed é o mesmo que carregar um anúncio de tela cheia. Contudo, o posicionamento deve ser configurado para suportar Flex Feed. Contate seu gerente de conta da Vungle para ativar o Flex Feed para um posicionamento.

Exibição de um anúncio Flex Feed

Exibir anúncios Flex Feed é diferente de exibir anúncios de tela cheia. Com os anúncios Flex Feed, você deve primeiro criar um contêiner para o anúncio. Esse contêiner é um UIView. Você pode colocar UIView em qualquer lugar na tela. O anúncio será dimensionado para qualquer tamanho de contêiner, mas tenha em mente que uma resolução muito baixa tornará o anúncio menos visível. Você deve chamar a função addAdViewToView para associar o contêiner ao anúncio Flex Feed.

Visão geral da função:

/** * Pass in an UIView which acts as a container for the ad experience. This view container may be placed in random positions. * @param publisherView container view in which an ad will be displayed * @param options A reference to an instance of NSDictionary with customized ad playback options * @param placementID The placement defined on the Vungle dashboard * @param error An optional double reference to an NSError. In case this method returns `NO` it will be non-nil * @return YES/NO in case of success/error while presenting an AdUnit */ - (BOOL)addAdViewToView:(UIView *)publisherView withOptions:(nullable NSDictionary *)options placementID:(nullable NSString *)placementID error:( NSError *__autoreleasing _Nullable *_Nullable)error; 

Exemplo de código:

NSError *error; NSDictionary *options = @{}; VungleSDK* sdk = [VungleSDK sharedSDK]; [sdk addAdViewToView:_FlexFeedViewArea withOptions:options placementID: error:&error]; if (error) { NSLog(@"Error encountered while playing an ad: %@", error); } 

Fechamento de um anúncio Flex Feed

Devido à natureza dos anúncios do Flex Feed, um usuário pode parar de visualizar o vídeo sem fechar o anúncio. Assim, você deve informar o SDK para dispensar o anúncio quando ele não estiver mais na tela. Para isso, chame a função finishedDisplayingAd. Esta função só funciona com os anúncios Flex Feed e Flex View. Observe que esta função não ocorre em um posicionamento; ela simplesmente fecha qualquer anúncio nativo que esteja em reprodução no momento.

Visão geral da função:

/** * This method must be called when the publisher is confident that they are finished displaying the ad unit. * This signals to the SDK that a new ad may be fetched or a different ad may be displayed. This will * be called in conjunction with `addViewToView:containedInViewController:withOptions:placementID:error:` */ - (void)finishedDisplayingAd; 

Exemplo de código:

//Ad is no longer on screen VungleSDK* sdk = [VungleSDK sharedSDK]; [sdk finishedDisplayingAd]; 

Delegar callback

Você pode receber callbacks do SDK com VungleSDKDelegate. Existem quatro métodos de callback na delegação nos quais você recebe notificação em eventos do SDK.

Você pode anexar e desanexar sua delegação com:

// Attach [[VungleSDK sharedSDK] setDelegate:yourDelegateInstance]; // Detach [[VungleSDK sharedSDK] setDelegate:nil]; 

Nota: Para evitar vazamentos de memória, lembre-se de limpar a delegação registrada quando esta não é mais necessária.

O seguinte método é chamado quando o SDK está prestes a reproduzir um anúncio de vídeo. Isto é ideal para pausar jogos, efeitos sonoros, animações etc.

- (void)vungleWillShowAdForPlacementID:(nullable NSString *)placementID; 

O seguinte método é chamado quando o SDK está prestes a fechar um anúncio. Isso é ideal para recompensar seu usuário e retomar jogos, efeitos sonoros, animações, etc.

 - (void)vungleWillCloseAdWithViewInfo:(VungleViewInfo *)info placementID:(NSString *)placementID; 

VungleViewInfo inclui as seguintes propriedades a serem verificadas como resultado da reprodução do anúncio:

@interface VungleViewInfo : NSObject //Representa um BOOL independentemente de o vídeo poder ou não ser considerado uma visualização completa. @property (nonatomic, readonly) NSNumber *completedView; //O tempo em segundos que o usuário assistiu ao vídeo. @property (nonatomic, readonly) NSNumber *playTime; //Representa um BOOL independente de se o usuário clicou ou não o botão para baixar. @property (nonatomic, readonly) NSNumber *didDownload; @end 

O seguinte método é chamado quando o SDK alterou o status de disponibilidade do anúncio. O booleano isAdPlayable denota a nova habilidade de reproduzir um placementID específico.

- (void)vungleAdPlayabilityUpdate:(BOOL)isAdPlayable placementID:(NSString *)placementID;

Consulte a seção “Verificar a disponibilidade de anúncio para um posicionamento” deste artigo.

O seguinte método é chamado quando o SDK é inicializado com sucesso:

- (void)vungleSDKDidInitialize;

Opções de personalização

Use essas opções para personalizar a experiência de reprodução de anúncio.

Observação: Anúncios com recompensa são, às vezes, chamados de anúncios incentivados; ambos os termos sempre referem-se ao mesmo tipo de anúncio. No código do SDK e em nossa API de relatórios, usamos o termo "incentivado".

Chaves de opção

Valor/tipo padrão

Descrição

VunglePlayAdOptionKeyOrientations

autorotate

UIInterfaceOrientationMaskAll

Um NSNumber representando um bitmask com orientações

Define a orientação do anúncio. Recomendamos que você permita que os anúncios girem automaticamente, mesmo se o aplicativo estiver em modo de retrato. Assim, o usuário terá a opção de assistir a vídeos em tela cheia, resultando em uma melhor experiência. Você pode obter isso definindo a orientação em um nível de controlador de visualização (em vez de um nível de projeto).

VunglePlayAdOptionKeyUser

nil

NSString

Defina seu ID de usuário. O valor é passado ao servidor Vungle e então enviado para o seu servidor através do sistema de callback servidor-a-servidor se um posicionamento é definido como “Com recompensa”.

VunglePlayAdOptionKeyIncentivizedAlertTitleText

nil

NSString

String usada como título da caixa de diálogo de alerta, apresentada quando um usuário fecha prematuramente um anúncio com incentivo.

VunglePlayAdOptionKeyIncentivizedAlertBodyText

“Deseja mesmo pular este anúncio? Se pular, pode não ganhar sua recompensa”

NSString

String usada como texto da caixa de diálogo de alerta, apresentada quando um usuário fecha prematuramente um anúncio com incentivo.

VunglePlayAdOptionKeyIncentivizedAlertCloseButtonText

“Fechar”

NSString

String de título para o texto do botão de fechar da caixa de diálogo de alerta, apresentada quando um usuário fecha prematuramente um anúncio com incentivo.

VunglePlayAdOptionKeyIncentivizedAlertContinueButtonText

“Continuar”

NSString

String de título para o texto do botão de fechar da caixa de diálogo de alerta, apresentada quando um usuário fecha prematuramente um anúncio com incentivo.

VunglePlayAdOptionKeyFlexViewAutoDismissSeconds

Int

Use esta opção para fazer com que os anúncios Flex Feed sejam desativados automaticamente após um determinado número de segundos.
Esta função só funciona com anúncios Flex View.

VunglePlayAdOptionKeyOrdinal

Int

Se você receber relatórios de dados ordinais do Vungle, use este campo para passar na mediação ordinal. Este é um número inteiro que indica a ordem em que este anúncio foi exibido na sessão do jogo (por exemplo, se dois anúncios já foram exibidos nesta sessão e este anúncio da Vungle foi exibido em terceiro lugar, aparece o número 3). Leia mais sobre dados ordinais aqui.


NSDictionary *options = @{VunglePlayAdOptionKeyOrientations: @(UIInterfaceOrientationMaskLandscape), VunglePlayAdOptionKeyUser: @"userGameID", VunglePlayAdOptionKeyIncentivizedAlertBodyText : @"If the video isn't completed you won't get your reward! Are you sure you want to close early?", VunglePlayAdOptionKeyIncentivizedAlertCloseButtonText : @"Close", VunglePlayAdOptionKeyIncentivizedAlertContinueButtonText : @"Keep Watching", VunglePlayAdOptionKeyIncentivizedAlertTitleText : @"Careful!"}; // Pass in dict of options, play ad NSError *error; [self.sdk playAd:self options:options placementID: error:&error]; if (error) { NSLog(@"Error encountered playing ad: %@", error); }

Opção de silenciar

A instância do Vungle SDK oferece a opção de reproduzir anúncios com o sim desabilitado. Você pode definir a propriedade de silenciar como verdadeira antes de emitir um playAd().

Exemplo de código:

VungleSDK* sdk = [VungleSDK sharedSDK]; self.sdk.muted = true;

Nota: Esta opção aplica-se apenas ao tipo padrão de anúncio. A opção silenciado para anúncios de modelo dinâmico está disponível no painel para configuração.

Debug

Se você precisa de informações sobre o SDK, você pode obtê-las usando esta propriedade:

- (NSDictionary *)debugInfo;

Se você deseja que o SDK gere logs, use o seguinte método:

- (void)setLoggingEnabled:(BOOL)enable;

Protocolo VungleSDKLogger

@protocol VungleSDKLogger - (void)vungleSDKLog:(NSString*)message; @end

O singleton VungleSDK envia eventos de criação de log para qualquer classe anexa, seguindo o protocolo VungleSDKLogger. O evento de log contém o valor de NSString, que também é exibido no console (se a criação de logs estiver ativada). Para anexar o seu gerador de logs, use:

[sdk attachLogger:yourLoggerInstance];

Como mencionado acima, é importante limpar os geradores de logs anexos do Vungle SDK. Os geradores de logs podem ser desanexados com:

[sdk detachLogger:suaInstânciaDeLog];

Protocolo assetLoader

@protocol VungleAssetLoader /** * deverá retornar um NSData válido, contendo os dados (brutos) de uma imagem para o caminho especificado ou nil. */ - (NSData*)vungleLoadAsset:(NSString*)path; /** * deverá retornar um UIImage válido para o caminho especificado ou nil. */ - (UIImage*)vungleLoadImage:(NSString*)path; @end
Tem mais dúvidas? Envie uma solicitação

Comentários