Compartir a través de


Obtener Facebook demanda de nativo en iOS

En este documento se describe el proceso para recuperar recursos de anuncios nativos que se mostrarán en el SDK de Audience Network de Facebook.

Nota:

Este SDK requiere Xcode versión 15.0 o posterior y la aplicación debe tener como destino la versión 12.0 o posterior de iOS.

Asegúrese de que están instalados los SDK adecuados.

El SDK de Xandr y el paquete Xandr-FAN-Demand tendrán que instalarse. Use CocoaPods.

Una vez que tenga CocoaPods instalado.

  1. Use Terminal o el editor de línea de comandos que prefiera, vaya al directorio del proyecto y cree un podfile.

    pod init
    
  2. Con un editor de texto, abra el podfile recién creado. Establezca la plataforma en 12.0 (AppNexus siempre admite dos versiones de iOS desde la versión actual) y agregue el pod "AppNexusSDX" al destino.

    # iOS: Podfile config to include our SDK
    platform :ios, '12.0'
    
    project 'SampleApp'
    
    target 'SampleApp' do
    
      pod 'AppNexusSDK'
      pod 'AppNexusSDK/FacebookCSRAdapter'
    
    end 
    
  3. Guarde los cambios y vuelva a Terminal y escriba:

    pod install
    
  4. Cocoapods descargará el SDK de AppNexus y FacebookCRSAdapter y también creará un área de trabajo en el directorio del proyecto. Si el proyecto está abierto actualmente, ciérrelo y abra el área de trabajo.

Inicializar el SDK de Audience Network de Facebook

Al principio del ciclo de vida de la aplicación, inicialice el SDK de Audience Network de Facebook (FBAudienceNetworkAds) como se muestra en el bloque de código siguiente.

[FBAudienceNetworkAds 
  initializeWithSettings:fbAdSettingObject  
  completionHandler:^(FBAdInitResults *results) {
         if (results.success) {
             [ANFBSettings setFBAudienceNetworkInitialize:YES];
             complete(nil);
         } else {
             [ANFBSettings setFBAudienceNetworkInitialize:NO];
             complete(error); 
        }
     }];

En la inicialización correcta de FBAudienceNetworkAds, setFBAudienceNetworkInitialize se establece en YES, de lo contrario, se establece como NO. Si el valor se establece como YES se inicializa el SDK de Audience Network, getBidderToken el método del SDK de Audience Network devolvería el Facebook token del licitador para continuar. Para los valores establecidos como NO, el getBidderToken método devolverá nil.

A partir de iOS 14, la aplicación publisher debe establecer un nuevo conjunto de APIAdvertiserTrackingEnabled para cumplir las obligaciones de directiva de iOS para usar el SDK de Audience Network. Se agregó una nueva API setAdvertiserTrackingEnabled a FBAdSettings que solo funciona en iOS 14 (y versiones posteriores) con el SDK de FacebookAd 6.0.0.

// Set the flag as true if a user provides consent
 [FBAdSettings setAdvertiserTrackingEnabled:YES];
 // Set the flag as false if a user disallows tracking
 [FBAdSettings setAdvertiserTrackingEnabled:NO];

Create solicitud de anuncio nativa y carga de anuncios

Nota:

Conserve una referencia a la solicitud hasta que se devuelva una respuesta.

self.nativeAdRequest= [[ANNativeAdRequest alloc] init];
self.nativeAdRequest.placementId = @"18793423";
self.nativeAdRequest.delegate = self;
[self.nativeAdRequest loadAd];

Controlar la respuesta de FBNativeBanner

Create un diseño para FBNativeBanner. Puede seguir el ejemplo proporcionado por Facebook.

Si se devuelve una respuesta correcta:

- (void)adRequest:(ANNativeAdRequest *)request didReceiveResponse:(ANNativeAdResponse *)response {
    // (code which loads the view)
    self.nativeAdResponse = response;
    self.adTitleLabel.text = self.nativeAdResponse.title;
    self.bodyLabel.text = self.nativeAdResponse.body;
    self.adSponsoredLabel.text = self.nativeAdResponse.sponsoredBy;
 
 
     if(self.nativeAdResponse.customElements[kANNativeCSRObject] && self.nativeAdResponse.customElements[kANNativeCSRObject] isKindOfClass:[ANAdAdapterCSRNativeBannerFacebook class]) {
        ANAdAdapterCSRNativeBannerFacebook *fbNativeBanner = (ANAdAdapterCSRNativeBannerFacebook *)response.customElements[kANNativeCSRObject];
        // CSR registerViewForTracking (see example below)
    }else {
        //  Non CSR registerViewForTracking
            //  See native ad examples here: show-native-ads-on-ios.md
    }
}

En un error de respuesta:

- (void)adRequest:(ANNativeAdRequest *)request didFailToLoadWithError:(NSError *)error withAdResponseInfo:(ANAdResponseInfo *)adResponseInfo{
    NSLog(@"didFailToLoadWithError");
}

Registro de la vista para el seguimiento

Llame al método registerViewForTracking del objeto ANAdAdapterCSRNativeBannerFacebook.

Para MediaView con clickableViews

/*registerViewForTracking using MediaView with Click Tracker */
[fbNativeBanner registerViewForTracking:self.adUIView
                 withRootViewController:self
                          iconView:self.adIconView
                         clickableViews:@[self.adUIView]];          

Para MediaView sin vistas en las que no se puede hacer clic

/*registerViewForTracking using MediaView without Click Tracker */
[fbNativeBanner registerViewForTracking:self.adUIView
                 withRootViewController:self
                          iconView:self.adIconView];          

Para ImageView con vistas en las que se puede hacer clic (sin MediaView)

/* registerViewForTracking using Image View with Click Tracker */
  [fbNativeBanner registerViewForTracking:self.adUIView
                   withRootViewController:self
                            iconImageView:self.imageView
                           clickableViews:@[self.adUIView]];     

Para ImageView sin vistas en las que no se puede hacer clic (sin MediaView)

/*registerViewForTracking using Image View without Click Tracker */
[fbNativeBanner registerViewForTracking:self.adUIView
                     withRootViewController:self
                              iconImageView:self.imageView];

Anular el registro de la vista

Cuando finalice la visualización del anuncio, la vista debe anular el registro.

self.nativeAdResponse = nil; // It will handle ad unregister views