Opções de anúncios nativos

Os anúncios nativos têm muitos recursos avançados que permitem fazer outras personalizações e ter a melhor experiência de anúncio possível. Este guia mostra como usar os recursos avançados dos anúncios nativos.

Pré-requisitos

Controles de recursos

Controles de proporção de mídia preferidos

Com os controles de proporção da mídia, você pode especificar uma preferência para a proporção dos criativos de anúncios.

Defina GADNativeAdMediaAdLoaderOptions mediaAspectRatio com um GADMediaAspectRatio.

  • Se não for definido, o anúncio retornado poderá ter qualquer proporção de mídia.

  • Quando definido, você poderá melhorar a experiência do usuário especificando o tipo de proporção preferido.

O exemplo a seguir instrui o SDK a preferir uma imagem ou vídeo de retorno com uma proporção específica.

GADNativeAdMediaAdLoaderOptions *nativeOption = [[GADNativeAdMediaAdLoaderOptions alloc] init];
nativeOption.mediaAspectRatio = GADMediaAspectRatioAny;

GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                                           rootViewController:self
                                                      adTypes:@[ GADAdLoaderAdTypeNative ]
                                                      options:@[ nativeOption ]];

Controle de download de imagens

O controle de download de imagens permite decidir se os recursos de imagem ou apenas os URIs são retornados pelo SDK.

Defina GADNativeAdImageAdLoaderOptions disableImageLoading com um valor BOOL.
  • O controle de download de imagens fica desativado por padrão.

  • Quando desativado, o SDK dos anúncios para dispositivos móveis do Google preenche a imagem e o URI para você.

  • Quando ativado, o SDK preenche apenas o URI, permitindo que você faça o download das imagens reais.

O exemplo a seguir instrui o SDK a retornar apenas o URI.

GADNativeAdImageAdLoaderOptions *nativeOption = [[GADNativeAdImageAdLoaderOptions alloc] init];
nativeOption.disableImageLoading = YES;

GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                                           rootViewController:self
                                                      adTypes:@[ GADAdLoaderAdTypeNative ]
                                                      options:@[ nativeOption ]];

Controles de payload de imagem

Alguns anúncios têm uma série de imagens em vez de apenas uma. Use esse recurso para indicar se o app está preparado para mostrar todas as imagens ou apenas uma.

Defina GADNativeAdImageAdLoaderOptions shouldRequestMultipleImages com um valor BOOL.
  • Os controles de payload de imagem ficam desativados por padrão.

  • Quando desativado, o app instrui o SDK a fornecer apenas a primeira imagem para todos os recursos que contêm uma série.

  • Quando ativado, o app indica que está preparado para mostrar todas as imagens de recursos que têm mais de uma.

O exemplo a seguir instrui o SDK a retornar vários recursos de imagem.

GADNativeAdImageAdLoaderOptions *nativeOption = [[GADNativeAdImageAdLoaderOptions alloc] init];
nativeOption.shouldRequestMultipleImages = YES;

GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                                           rootViewController:self
                                                      adTypes:@[ GADAdLoaderAdTypeNative ]
                                                      options:@[ nativeOption ]];

Posições das Opções de anúncios

Controles de posição das Opções de anúncios

Os controles de posição das Opções de anúncios permitem escolher em qual canto renderizar o ícone das Opções de anúncios.

Defina GADNativeAdViewAdOptions preferredAdChoicesPosition com um valor GADAdChoicesPosition.

  • Se não for definido, a posição do ícone da Opções de anúncios será definida como canto superior direito.

  • Se definido, o AdChoices é colocado na posição personalizada conforme solicitado.

O exemplo a seguir demonstra como definir uma posição de imagem personalizada do AdChoices.

GADNativeAdViewAdOptions *nativeOptions = [[GADNativeAdViewAdOptions alloc] init];
nativeOptions.preferredAdChoicesPosition = GADAdChoicesPositionTopLeftCorner;

GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                                           rootViewController:self
                                                      adTypes:@[ GADAdLoaderAdTypeNative ]
                                                      options:@[ nativeOptions ]];

Visualização personalizada de Opções de anúncios

O recurso de visualização personalizada das Opções de anúncios permite posicionar o ícone das Opções de anúncios em um local personalizado. Isso é diferente dos controles de posição do AdChoices, que permitem apenas a especificação de um dos quatro cantos.

Defina a propriedade GADNativeAd.adChoicesView com um GADAdChoicesView antes da renderização. O conteúdo do AdChoices será renderizado dentro do GADAdChoicesView.

O exemplo a seguir demonstra como definir uma visualização personalizada da AdChoices. O ícone "Opções de anúncios" será renderizado dentro do GADAdChoicesView.

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader didReceiveNativeAd:(GADNativeAd *)nativeAd {

    ...

    
    GADAdChoicesView *customAdChoicesView =
        [[GADAdChoicesView alloc] initWithFrame: CGRectMake(..., ..., ..., ...)];

    [nativeAdView addSubview:customAdChoicesView];
    nativeAdView.adChoicesView = customAdChoicesView;

    // Associate the native ad view with the native ad object. This is
    // required to make the ad clickable.
    // Note: this should always be done after populating the ad views.
    nativeAdView.nativeAd = nativeAd;
}

Swift

func adLoader(_ adLoader: GADAdLoader, didReceive nativeAd: GADNativeAd) {
    refreshAdButton.isEnabled = true

    ...
    // Define a custom position for the AdChoices icon.
    let customRect = CGRect(x: 100, y: 100, width: 15, height: 15)
    let customAdChoicesView = GADAdChoicesView(frame: customRect)
    nativeAdView.addSubview(customAdChoicesView)
    nativeAdView.adChoicesView = customAdChoicesView

    // Associate the native ad view with the native ad object. This is
    // required to make the ad clickable.
    // Note: this should always be done after populating the ad views.
    nativeAdView.nativeAd = nativeAd;
}

Controles de vídeo

Comportamento de desativação do som

Com esse comportamento, você pode desativar ou ativar o áudio inicial de um vídeo.

Defina GADVideoOptions startMuted com um valor BOOL.
  • O comportamento de início do modo mudo está ativado por padrão.

  • Quando desativado, o app solicita que o vídeo comece com áudio.

  • Quando ativada, o app solicita que o vídeo comece com o áudio desativado.

O exemplo a seguir mostra como iniciar o vídeo com o áudio desativado.

GADVideoOptions *nativeOptions = [[GADVideoOptions alloc] init];
nativeOptions.startMuted = NO;

GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                                           rootViewController:self
                                                      adTypes:@[ GADAdLoaderAdTypeNative ]
                                                      options:@[ nativeOptions ]];

Controles de mídia personalizados

Isso permite que você solicite controles de entrada de vídeo personalizados para reproduzir, pausar ou silenciar o vídeo.

Defina GADVideoOptions customControlsRequested com um valor BOOL.
  • O controle de reprodução personalizado fica desativado por padrão.

  • Quando desativado, o vídeo mostra os controles de entrada renderizados pelo SDK.

  • Se o anúncio tiver conteúdo de vídeo e os controles personalizados estiverem ativados, mostre seus controles personalizados com o anúncio, já que ele não mostra nenhum controle. Os controles podem chamar os métodos relevantes no GADVideoController.

O exemplo a seguir mostra como solicitar um vídeo com controles de reprodução personalizados.

GADVideoOptions *nativeOptions = [[GADVideoOptions alloc] init];
nativeOptions.customControlsRequested = YES;

GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
                                           rootViewController:self
                                                      adTypes:@[ GADAdLoaderAdTypeNative ]
                                                      options:@[ nativeOptions ]];

Verificar se os controles personalizados estão ativados

Como não é possível saber se o anúncio retornado vai permitir controles de vídeo personalizados no momento da solicitação, verifique se eles estão ativados.

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveNativeAd:(GADNativeAd*)nativeAd {

  GADVideoController *videoController = nativeAd.mediaContent.videoController;
  BOOL canShowCustomControls = videoController.customControlsEnabled;

}

Swift

func adLoader(_ adLoader: GADAdLoader, didReceive nativeAd: GADNativeAd) {
        let videoController = nativeAd.mediaContent.videoController
        let canShowCustomControls = videoController?.customControlsEnabled() == true
}

Renderizar controles de vídeo personalizados

Renderize controles de vídeo personalizados usando as seguintes práticas recomendadas:

  1. Renderize a visualização de controles personalizados como uma filha da visualização de anúncio nativo. Essa abordagem garante que os cálculos de visibilidade do Open Measurement considerem os controles personalizados como uma obstrução amigável.
  2. Evite renderizar uma sobreposição invisível sobre toda a visualização de mídia. As sobreposições bloqueiam os cliques na visualização de mídia, o que afeta negativamente a performance dos anúncios nativos. Em vez disso, crie uma sobreposição pequena que seja grande o suficiente para caber nos controles.

Gestos de clique personalizados

Os gestos de clique personalizados são um recurso de anúncios nativos que permite que as deslizadas em visualizações de anúncios sejam registradas como cliques no anúncio. Ele foi projetado para funcionar com apps que usam gestos de deslizar para navegar pelo conteúdo. Este guia mostra como ativar gestos de clique personalizados nos seus anúncios nativos.

Inicialize uma instância de GADNativeAdCustomClickGestureOptions com a direção de deslizar selecionada. Também é necessário indicar se você quer que os toques sejam permitidos como cliques.

  • Os gestos de clique personalizados são desativados por padrão.

  • Quando desativado, apenas os toques são contabilizados como cliques.

  • Quando ativada, os gestos de deslizar são contados como cliques, e você pode especificar se os toques ainda podem ser contados como cliques.

O exemplo a seguir mostra como implementar um gesto de deslizar personalizado para a direita e preservar o comportamento normal de toque.

GADNativeAdCustomClickGestureOptions *swipeGestureOptions = [[GADNativeAdCustomClickGestureOptions alloc]
        initWithSwipeGestureDirection:UISwipeGestureRecognizerDirectionRight
                          tapsAllowed:YES];

// The following sample ad unit ID has been enabled for custom click gestures
// and can be used for testing.
self.adLoader = [[GADAdLoader alloc]
        initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
      rootViewController:self
                 adTypes:@[ GADAdLoaderAdTypeNative ]
                 options:@[ swipeGestureOptions ]];

Detectar eventos de gesto de deslizar

Quando um clique de gesto de deslizar é registrado, o SDK dos anúncios para dispositivos móveis do Google invoca o método nativeAdDidRecordSwipeGestureClick: do delegado em GADNativeAdDelegate, além do método de delegado nativeAdDidRecordClick:.

#pragma mark - GADNativeAdDelegate implementation

// Called when a swipe gesture click is recorded.
- (void)nativeAdDidRecordSwipeGestureClick:(GADNativeAd *)nativeAd {
  NSLog(@"A swipe gesture click has occurred.");
}

// Called when a swipe gesture click or a tap click is recorded, as configured in
// GADNativeAdCustomClickGestureOptions.
- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
  NSLog(@"A swipe gesture click or tap click has occurred.");
}

Mediação

Os gestos de clique personalizados só funcionam em anúncios nativos renderizados pelo SDK dos anúncios para dispositivos móveis do Google. As origens de anúncios que exigem SDKs de terceiros para renderização não respondem à configuração de instruções de clique personalizadas.