Tip iOS #34 – Aggiungiamo iAd alle nostre applicazioni

iOSBuongiorno a tutti,

negli ultimi articoli ho parlato di iAd e della strategia di Apple per rilanciare questo network pubblicitario. Infatti, se pur vero che l’azienda di Cupertino sta avendo problemi sia a trovare investitori che publishers è anche vero che proprio iAd è il circuito che paga meglio chi inserisce i banner nelle proprie applicazioni.

Inoltre anche quando molto limitata (come i banner relativi ad altre applicazioni su AppStore) l’interattività di iAd lo rende una spanna al di sopra dei concorrenti (proprio parlando dei banner delle altre applicazioni, in caso di selezione, si apre la pagina dell’iTunes Store relativa all’applicazione pemettendo la consultazione di tutte le informazioni relative).

Ma come integrare iAd all’interno delle proprie applicazioni?

Essendo un circuito proprietario della Apple stessa la sua integrazione all’interno delle applicazioni è sufficientemente rapido ma richiede alcuni interventi non solo a livello di codice ma anche nella pagina di iTunesConnect dedicata all’applicazione, inoltre, fatto non trascurabile, una volta attivato iAd su una versione della vostra applicazione per disattivarlo dovrete pubblicare una nuova versione.

Iniziamo subito col dire che come prima operazione dovrette aggiungere l’iAd.framework al vostro progetto (per una guida su come aggiungere un framework ai vostri progetti potete leggere questo articolo).

Possiamo quindi passare ad aggiungere il banner all’applicazione; se adoperate le funzionalità dell’ex interface builder avrete a disposizione il componente Ad BannerView da inserire nella vostra view ed a cui collegare la proprietà della corrispondente classe, in questo modo avrete un feedback immediato di come si presenterà la vostra applicazione al momento dell’esecuzione. Alternativamente è possibile aggiungere il banner via objective-c con il seguente codice:

ADBannerView *appBannerView = [[ADBannerView alloc] initWithFrame:CGRectZero];
 appBannerView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
 appBannerView.delegate = self;
 [self.view addSubview:appBannerView];

Esaminiamo brevemente il codice:

  1. Come primo passo viene allocato il banner tramite il costruttore di classe, il parametro CGRectZero indica un frame dal contenuto nullo, questo perchè ci penserà il banner a dimensionarsi automaticamente
  2. Con la seconda riga indichiamo che il nostro banner deve essere predisposto, come dimensioni, in modo tale da riempire la larghezza per il dispositivo tenuto in verticale, posizionando l’origine nel punto 0,0 (in alto a sinistra)
  3. Assegniamo quindi al delegate il putatore al nostro ViewController, al quale avremo aggiunto il protocollo ADBannerViewDelegate nel file header insieme alla riga #import “iAd/iAd.h” l’uso del delegate è importante principalmente per la gestione dei casi di errore nella ricezione degli Ad
  4. Inseriamo quindi il nostro banner nella View.

Come accennato prima, Apple fornisce indicazioni molto chiare in merito alla gestione dei banner nelle proprie applicazioni. Vediamole elencate di seguito:

  • Se un ADBannerView riceve una condizione di errore durante il caricamento questo va nascosto per evitare di mostrare strisce vuote antiestetiche nella visualizzazione della view
  • Nel caso in cui una view copra un’altra contenente un banner, quest’ultimo andrebbe nascosto e mostrato nuovamente quando la view coprente viene eliminata
  • Il numero di Ad visualizzabili da un’applicazione in un giorno è limitato avere più componenti ADBannerView attivi all’interno della stessa applicazione (basti pensare ai TabController) rischia di bruciare il numero di banner disponibili senza ricevere alcun beneficio. Pertanto è consigliabile avere una sola ADBannerView attiva per tutta l’applicazione.

Il rispetto di queste tre regole è fondamentale per ricevere l’approvazione da parte di Apple. Vediamo come gestire la condizione di errore e di caricamento del banner:

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
    if (self.bannerIsVisible)
    {
        [UIView beginAnimations:@"animateAdBannerOff" context:NULL];
        banner.frame = CGRectOffset(banner.frame, 0, -banner.frame.size.height);
        [UIView commitAnimations];
        self.bannerIsVisible = NO;
    }
}

Il codice sopra viene attivato al momento del verificarsi di un errore al momento della ricezione del banner da parte dell’applicazione. Il codice, semplicemente, tramite un’animazione nasconde il banner se questo è già visibile (si deve allocare una proprietà o una variabile globale per la classe di tipo boolean che funziona da semaforo, in questo caso il nome della variabile è bannerIsVisible e visto che inseriamo il banner nella view dev’essere inizializzata a YES).

- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
    if (!self.bannerIsVisible)
    {
        [UIView beginAnimations:@"animateAdBannerOn" context:NULL];
        banner.frame = CGRectOffset(banner.frame, 0, banner.frame.size.height);
        [UIView commitAnimations];
        self.bannerIsVisible = YES;
    }
}

Il codice sopra viene invocato, invece, ogni volta che l’applicazione riceve un nuovo banner. Se l’ADBannerView non è visibile il codice si occupa, sempre con un’animazione, di visualizzarlo.

Per far si che il banner, infine, sia unico in tutta l’applicazione si possono scegliere vari modi, il migliore, forse, è allocarlo all’interno dell’Applcation Delegate per richiamarlo ed inserirlo nelle view quando serve, alternativamente si può pensare di deallocare il banner ogni volta che si esce dalla view e riallocarlo quando serve.

Infine per rendere attivi i banner nella vostra applicazione, al momento dell’inserimento dell’applicazione su iTunesConnect si deve passare attraverso gli iAd Network Settings e quindi abilitare il circuito indicando se i banner devono essere limitati solo a quelli per minori o vanno bene tutti.

Infine, una volta pubblicata l’applicazione, per visualizzare l’andamento delle pubblicità, sempre da iTunesConnect vi è la sezione iAd Network che fornisce tutte le indicazioni necessarie per le vostre applicazioni. Ricordate, infine, che iAd richiede un contratto apposito che dovete confermare attraverso la sezione Contracts, Tax and Banking di iTunesConnect.

Arrivederci al prossimo suggerimento,

Roberto S.



Related Posts Plugin for WordPress, Blogger...

Questa voce è stata pubblicata in iOS Tips e contrassegnata con , , , , , , , , , , . Contrassegna il permalink.
Wordpress Code Snippet by Allan Collins