A integração do SDK dos anúncios para dispositivos móveis do Google a um app é o primeiro passo para exibir anúncios e gerar receita. Depois de integrar o SDK, é possível implementar um ou mais dos formatos de anúncio compatíveis.
Pré-requisitos
- Use o Xcode 15.3 ou versões mais recentes
- Direcione o app para o iOS 12.0 ou versões mais recentes
Importar o SDK dos anúncios para dispositivos móveis
Use um dos seguintes métodos para importar o SDK dos anúncios para dispositivos móveis do Google.
CocoaPods (preferencial)
A maneira mais simples de importar o SDK para um projeto do iOS é usar o CocoaPods. Abra o Podfile do projeto e adicione esta linha ao destino do app:
pod 'Google-Mobile-Ads-SDK'
Em seguida, na linha de comando, execute:
pod install --repo-update
Se você não conhece o CocoaPods, consulte a documentação oficial para saber como criar e usar Podfiles.
Gerenciador de pacotes do Swift
O SDK dos anúncios para dispositivos móveis do Google oferece suporte ao Swift Package Manager a partir da versão 9.0.0. Siga estas etapas para importar o pacote Swift:
No Xcode, instale o pacote Swift dos anúncios para dispositivos móveis do Google acessando File > Add Packages….
No prompt exibido, pesquise o repositório do GitHub do pacote Swift do Google Mobile Ads:
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
Selecione a versão do pacote Swift dos anúncios para dispositivos móveis do Google que você quer usar. Para novos projetos, recomendamos usar a Versão principal mais recente.
Depois disso, o Xcode vai começar a resolver as dependências do pacote e fazer o download delas em segundo plano. Para mais detalhes sobre como adicionar dependências de pacote, consulte o artigo da Apple (em inglês).
Download manual
Faça o download do SDK dos anúncios para dispositivos móveis do Google e
Embed & Sign
os seguintes frameworks no projeto do Xcode:GoogleMobileAds.xcframework
UserMessagingPlatform.xcframework
Nas configurações de build do projeto:
- Adicione o caminho
/usr/lib/swift
aos Caminhos de pesquisa do Runpath. - Adicione a flag de vinculador
-ObjC
a Outras flags de vinculador.
- Adicione o caminho
Atualizar o Info.plist
Atualize o arquivo Info.plist
do app para adicionar duas chaves:
Uma chave
GADApplicationIdentifier
com um valor de string do Ad Manager app ID found in the Ad Manager UI and of the formca-app-pub-################~##########
.Uma chave
SKAdNetworkItems
com valoresSKAdNetworkIdentifier
para o Google (cstr6suwn9.skadnetwork
) e selecione compradores terceirizados que forneceram esses valores ao Google.
Snippet completo
<key>GADApplicationIdentifier</key> <string>ca-app-pub-3940256099942544~1458002511</string> <key>SKAdNetworkItems</key> <array> <dict> <key>SKAdNetworkIdentifier</key> <string>cstr6suwn9.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>4fzdc2evr5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>2fnua5tdw4.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>ydx93a7ass.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>p78axxw29g.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>v72qych5uu.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>ludvb6z3bs.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>cp8zw746q7.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3sh42y64q3.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>c6k4g5qg8m.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>s39g8k73mm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3qy4746246.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>hs6bdukanm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>mlmmfzh3r3.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>v4nxqhlyqp.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>wzmmz9fp6w.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>su67r6k2v3.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>yclnxrl5pm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>7ug5zh24hu.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>gta9lk7p23.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>vutu7akeur.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>y5ghdn5j9k.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>v9wttpbfk9.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>n38lu8286q.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>47vhws6wlr.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>kbd757ywx3.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>9t245vhmpl.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>a2p9lx4jpn.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>22mmun2rn5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>4468km3ulz.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>2u9pt9hc89.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>8s468mfl3y.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>ppxm28t8ap.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>uw77j35x4d.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>pwa73g5rt2.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>578prtvx9j.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>4dzt52r2t5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>tl55sbb4fm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>e5fvkxwrpn.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>8c4e2ghe7u.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3rd42ekr43.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3qcr597p9d.skadnetwork</string> </dict> </array>
Para uma performance de inicialização ideal, é importante associar seus grupos de rendimento aos apps específicos em que eles são usados. As configurações de grupo de rendimento voltadas para iOS e não associadas a nenhum app específico serão enviadas para todos os apps iOS na sua conta, o que pode prolongar o tempo necessário para a inicialização.
Em um app real, substitua o ID de exemplo pelo ID Ad Manager real do app. Você pode usar o ID de exemplo se estiver apenas testando o SDK em um app Hello World.
Inicializar o SDK dos anúncios para dispositivos móveis
Antes de carregar anúncios, chame o método startWithCompletionHandler:
no
GADMobileAds.sharedInstance
,
que inicializa o SDK e chama um gerenciador de conclusão quando a
inicialização é concluída (ou após um tempo limite de 30 segundos). Esse processo só é realizado
uma vez, de preferência na inicialização do app. É preciso chamar startWithCompletionHandler:
o mais cedo possível.
Confira um exemplo de como chamar o método startWithCompletionHandler:
no
AppDelegate
:
Exemplo de AppDelegate (excerto)
Swift
import GoogleMobileAds
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
GADMobileAds.sharedInstance().start(completionHandler: nil)
return true
}
}
SwiftUI
import GoogleMobileAds
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
GADMobileAds.sharedInstance().start(completionHandler: nil)
return true
}
}
@main
struct YourApp: App {
// To handle app delegate callbacks in an app that uses the SwiftUI lifecycle,
// you must create an application delegate and attach it to your `App` struct
// using `UIApplicationDelegateAdaptor`.
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
var body: some Scene {
WindowGroup {
NavigationView {
ContentView()
}
}
}
}
Objective-C
@import GoogleMobileAds;
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[GADMobileAds.sharedInstance startWithCompletionHandler:nil];
return YES;
}
@end
Selecionar um formato de anúncio
O SDK dos anúncios para dispositivos móveis foi importado e inicializado, e você já pode implementar um anúncio. A Ad Manager oferece vários formatos de anúncio diferentes. Escolha o que melhor se adapta à experiência do usuário no seu app.
Para desenvolvedores da SwiftUI, siga nosso guia da SwiftUI.
Banner
Os blocos de anúncios de banner mostram anúncios retangulares que ocupam uma parte do layout de um app. Eles podem ser atualizados automaticamente após um tempo definido. Isso significa que os usuários vão ver um novo anúncio em intervalos regulares, mesmo que permaneçam na mesma tela do app. Esse é o formato mais simples de implementar.
Implementar anúncios de banner
Intersticial
Os blocos de anúncios intersticiais mostram anúncios de tela cheia no seu app. Posicione-os em intervalos e transições naturais da interface, por exemplo, após a conclusão de um nível em um app de jogo.
Implementar anúncios intersticiais
Nativo
Com os anúncios nativos, você pode personalizar a forma como os recursos, como títulos e chamadas para ação, são apresentados nos seus apps. Ao estilizar o anúncio, você pode criar apresentações naturais e discretas de anúncios que contribuem para uma experiência mais imersiva para o usuário.
O Google Ad Manager oferece duas maneiras de implementar anúncios nativos: estilos nativos e anúncios nativos padrão com renderização personalizada.
Os estilos nativos foram projetados para simplificar a implementação de anúncios nativos. Eles são uma ótima opção se você ainda não conhece o formato. A renderização personalizada foi projetada para maximizar a liberdade que você tem para criar suas apresentações.
Implementar estilos nativos Implementar anúncios nativos (renderização personalizada)
Premiado
Com os blocos de anúncios premiados, os usuários podem jogar, responder a pesquisas ou assistir a vídeos para ganhar prêmios no app, como moedas, vidas extras ou pontos. É possível definir prêmios diferentes para cada bloco de anúncios e especificar os valores e itens que o usuário recebeu.
Implementar anúncios premiados
Intersticial premiado
O intersticial premiado é um novo tipo de formato de anúncio com incentivos que permite oferecer recompensas, como moedas ou vidas extras, em anúncios que aparecem automaticamente durante transições naturais do app.
Diferente dos anúncios premiados, os usuários não precisam ativar a visualização de um intersticial premiado.
Em vez de exibir uma tela de ativação como nos anúncios premiados, os intersticiais premiados têm uma tela de introdução que mostra a recompensa e permite aos usuários recusar a oferta.
Implementar anúncios intersticiais premiados
Abertura do app
A abertura do app é um formato de anúncio que aparece quando os usuários abrem ou retornam ao app. O anúncio se sobrepõe à tela de carregamento.