ADMag

Este é o repositorio iOS do SDK da Admag. Se quiser instruções para Android, utilize este repositório SDK-ADmag-Android

Instalação

O primeiro passo para utilizar a SDK da ADMag em seu APP é copiar e adicionar no seu projeto os arquivos ADMag.bundle e ADMag.framework. Estes arquivos estão disponíveis neste repositório e são utilizados no APP de exemplo.

Você pode arrastar os dois arquivos diretamente para dentro do seu projeto no XCode. Não esqueça de marcar a opção Copy items if needed.

A SDK tem suporte para a versão 5.1.1 do iOS, ou superior. (>=5.1.1)

Dependências

A SDK da ADMag possui algumas dependências externas que devem ser adicionadas ao seu projeto. São as seguintes: - AFNetworking <= 1.3.4 - Mantle >= 1.5 - Magical Record >= 2.1.5 - ZipArchive >= 1.3.0

Uma forma simples e rápida de adicionar estas dependências é utilizar o CocoaPods. Basta adicionar as seguintes entradas no seu Podfile:

pod 'AFNetworking', '<= 1.3.4'
pod 'Mantle', '>= 1.5'
pod 'MagicalRecord', '>= 2.1.5'
pod 'ZipArchive', '>= 1.3.0' 

Além disso, você precisará adicionar duas libraries ao seu target. Para isso, vá até o seu Project->Build Phases->Link Binary With Libraries e adicione 'libsqlite3.dlyb', 'libz.dlyib' e 'AdSupport.framework'.

Utilizando a SDK

Todos os métodos utilizados nesta seção estão documentados dentro da pasta Documentação deste repositório.

1) Inicialização

No seu APPDelegate.m importe o ADMag utilizando #import <ADMag/ADMag.h>.

Ao final do método - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions inicie a SDK informando a sua API Key, da seguinte forma:

[ADMag startWithAPIKey:@"SUA-API-KEY"];

2) Adicionando uma publicação

Para que você possa exibir os ADs de uma determinada edição, primeiro é preciso adicionar uma publicação na SDK. Para isso, utilize o seguinte código:

ADMag *api = [ADMag sharedInstance];
[api addPublication:@(ID_DA_PUBLICAÇÃO)];

Substitua ID_DA_PUBLICAÇÃO pelo ID da publicação qeu você deseja adicionar.

3) Fazendo cache dos encartes de uma determinada edição

O próximo passo é informar a SDK para que faça o download e cache dos encartes da sua edição. Para tal, utilize a seguinte chamada como exemplo:

    api cacheADsForIssueWithIdentifier:@"1.RevistaDaora"
                              issueName:@"Revista Daora"
                          issueCoverURL:@"http://www.gq.com/entertainment/tv/blogs/the-stream/cover-450.jpg"
                            publication:@(1)
                          numberOfPages:50
                              blackList:nil
                          pageStepBlock:nil
        completionBlock:^(NSInteger totalAdsSize) {
             NSLog(@"Total Ads Size: %d", totalAdsSize);
        }
        completionBlock:^(NSArray *cachedAdsPages) {
              [MBProgressHUD hideAllHUDsForView:self.view animated:YES];
              [weakSelf.view setUserInteractionEnabled:YES];

            //list all insertions
            for (ADMagAdsInfo *adsInfo in cachedAdsPages)
            {
                    NSLog(@"Page Number:%d Campaign: %@ UUID: %@", adsInfo.pageNumber , adsInfo.campaigName, adsInfo.uuid);

            }
    }];
```
Para cada AD retornado no bloco de complitude, você deverá armazenar os números das páginas com os encartes. 

#### 4) Exibindo um determinado encarte
Para exibir um encarte você deverá chamar o método:
```
[api adWebViewForIssueWithIdentifier:@"com.admag.1" 
                          pageNumber:@(page) 
                             success:^(ADMagWebView *webview) {
                           } failure:^(NSError *error) {
 }];
```
Este método retorna uma **ADMagWebView** no bloco **success** contendo uma UIWebView com o encarte  já rederizado. Você só precisa adicionar esta WebView em alguma UIView sua.

#### 5) Reportando visualizações
Sempre que você exibir um ADMagWebView com um encarte renderizado para o usuário, você deve chamar o seguinte método: ```[admagWebView onShow]```. Da mesma forma, toda vez que a WebView não esiver mais visível para o usuário, você deverá chamar o método: ```[admagWebView onHide]```.

#### 6) Google Analytics
Nosso SDK empacota o Google Analytics v3.0, podendo haver conflito se a mesma já estiver presente em seu projeto. Para solucionar, você deverá remover a biblioteca linkada no seu projeto e alterar os imports de #import "GAI.h" para #import <ADMag/GAI.h>.

#### 7) Informaçoes sobre os encartes
Caso queira mais informações sobre os encartes como: página de inserção, nome da campanha e o id do encarte, você poderá chamar o método abaixo.


import

.... .... for (ADMagAdsInfo adsInfo in [api infoAdsForIssueIdentifier:@"1.RevistaDaora"]) { @try{ NSLog(@"Page Number:%d Campaign: %@ UUID: %@", adsInfo.pageNumber , adsInfo.campaigName, adsInfo.uuid); }@catch(NSException e){

            }

        }

````

8) Testando o app

  • Abrir AD na horizontal, rotacionar device.
  • Abrir AD na vertical, rotacionar device.
  • Abrir AD, sair da edição, verificar se onHide foi chamado.

Enviando o app para a App Store

Nosso framework utiliza o Advertising Identifier (IDFA), por este motivo você deverá seguir as intruçoes de aprovação para IDFA.

Mais informações

Para mais informações por favor verifique a pasta Documentação deste repositório.