Este documento se ha actualizado.
La traducción en Español (España) no está disponible todavía.
Actualización del documento en inglés: 20 ago.

Introducción a los eventos de la aplicación en iOS

En esta guía se muestra cómo añadir eventos de la aplicación a una aplicación nueva o existente mediante la integración del SDK de Facebook y el registro de dichos eventos.

Se han producido cambios en el SDK de Facebook para iOS. Recomendamos actualizar el SDK de Facebook para iOS a la nueva versión. Consulta la sección sobre el consentimiento del dispositivo para obtener más información sobre este cambio.

Antes de empezar

Necesitarás lo siguiente:

Paso 1: Configurar la aplicación de Facebook

Accede al panel de aplicaciones, haz clic en Mis aplicaciones y crea una nueva aplicación si aún no tienes ninguna. Navega a Configuración > Básica para ver la ventana Detalles de la aplicación, en la que encontrarás el identificador de la aplicación, la clave secreta de la aplicación y otra información.

Desplázate hasta la parte inferior de la página y haz clic en Añadir plataforma. Elige iOS, añade los detalles de la aplicación y guarda los cambios.

Con el fin de configurar tu aplicación para la publicidad, añade los siguientes detalles:

  • Dominios de la aplicación: proporciona la URL de Apple App Store de tu aplicación.
  • URL de la Política de privacidad: proporciona una URL de la Política de privacidad. Es obligatoria para poder publicar tu aplicación.
  • URL de las Condiciones del servicio: proporciona una URL de las Condiciones del servicio.
  • Plataforma: desplázate al final de la ventana “Configuración” para añadir la plataforma iOS.

Para obtener más información sobre la adición de detalles a la aplicación, como un icono o una categoría, consulta los documentos de desarrollo de aplicaciones.

Paso 2: Vincular el porfolio publicitario y el porfolio empresarial

Para poner anuncios en circulación y medir las descargas en el Administrador de anuncios, asocia como mínimo una cuenta publicitaria y un porfolio empresarial a la aplicación.

  1. En el panel de aplicaciones, haz clic en Configuración > Opciones avanzadas.
  2. En el campo Identificadores de cuentas publicitarias autorizadas, añade los identificadores de tus cuentas publicitarias. Puedes obtener los identificadores de las cuentas publicitarias en el Administrador de anuncios.
  3. En la ventana Cuentas publicitarias, haz clic en Empezar y sigue las instrucciones para conectar la aplicación a una empresa.

Paso 3: Configurar el entorno de desarrollo

En el procedimiento siguiente se utiliza el administrador de paquetes Swift para configurar el entorno de desarrollo en Xcode.

  1. En Xcode, haz clic en File > Add Packages… (Archivo > Añadir paquetes…).
  2. En el campo de búsqueda que aparece, escribe la URL del repositorio: https://github.com/facebook/facebook-ios-sdk.
  3. En Dependency Rule (Regla de dependencia), selecciona Up to Next Major Version (Hasta la siguiente versión principal) e introduce una versión reciente. La versión más actual se indica en https://github.com/facebook/facebook-ios-sdk/releases/
  4. Elige las bibliotecas que pretendes utilizar y los destinos a los que quieres añadir dichas bibliotecas.
  5. Haz clic en Add Package (Añadir paquete) para finalizar la configuración.

Paso 4: Registrar y configurar la aplicación para que funcione con Facebook

Añade el identificador de paquete y activa el inicio de sesión único para tu aplicación.

El identificador de paquete debería aparecer en cuadro que hay debajo. Si está vacío, localiza el identificador en la sección “iOS Application Target” de tu proyecto de Xcode y pégalo en el cuadro que hay debajo.
Identificador de paquete
Puedes cambiar este identificador más adelante en la sección “iOS” de la página de configuración.
Activar el inicio de sesión único
Para activar el inicio de sesión único en tu aplicación, establece “Inicio de sesión único” en “Sí” a continuación.
Inicio de sesión único Se iniciará desde las notificaciones de iOS

Paso 5: Configurar el proyecto

Configura el archivo Info.plist con un fragmento de código XML que contenga datos sobre tu aplicación.

After you integrate Facebook Login, certain App Events are automatically logged and collected for Events Manager, unless you disable Automatic App Event Logging. In particular, when launching an app in Korea, please note that Automatic App Event Logging can be disabled. For details about what information is collected and how to disable automatic app event logging, see Automatic App Event Logging.

  1. Haz clic con el botón derecho en el archivo Info.plist y elige Open as ▸ Source Code (Abrir como ▸ Código fuente).
  2. Copia y pega el siguiente fragmento de código XML en el cuerpo de tu archivo (<dict>...</dict>).
    <key>CFBundleURLTypes</key>
    <array>
      <dict>
      <key>CFBundleURLSchemes</key>
      <array>
        <string>fbAPP-ID</string>
      </array>
      </dict>
    </array>
    <key>FacebookAppID</key>
    <string>APP-ID</string>
    <key>FacebookClientToken</key>
    <string>CLIENT-TOKEN</string>
    <key>FacebookDisplayName</key>
    <string>APP-NAME</string>
  3. En <array><string>, en la clave [CFBundleURLSchemes], reemplaza APP-ID por el identificador de la aplicación.
  4. En <string>, en la clave FacebookAppID, reemplaza APP-ID por el identificador de la aplicación.
  5. En <string>, en la clave FacebookClientToken, reemplaza CLIENT-TOKEN por el valor que puedes encontrar en el panel de aplicaciones bajo Configuración > Opciones avanzadas > Identificador de cliente.
  6. En <string>, en la clave FacebookDisplayName, reemplaza APP-NAME por el nombre de la aplicación.
  7. Para usar los cuadros de diálogo de Facebook (p. ej., de inicio de sesión, contenido compartido, invitaciones a la aplicación, etc.) que pueden cambiar a las aplicaciones de Facebook, el elemento Info.plist de la aplicación también debe incluir lo siguiente:
    <key>LSApplicationQueriesSchemes</key>
    <array>
      <string>fbapi</string>
      <string>fb-messenger-share-api</string>
    </array>

Para establecer directamente la recopilación automática de eventos de la aplicación en “true” o “false”, añade FacebookAutoLogAppEventsEnabled como clave en Info.plist.

El proyecto deberá incluir la función de uso compartido de cadenas de claves para que el inicio de sesión funcione en aplicaciones de Mac Catalyst.
  1. Selecciona el botón + Capability (+ Función) en la pestaña Signing & Capabilities (Firma y funciones) al configurar el destino de la aplicación.
  2. Busca y selecciona la función Keychain Sharing (Uso compartido de cadenas de claves).
  3. Asegúrate de que la función Keychain Sharing (Uso compartido de cadenas de claves) se enumera para el destino.

Paso 6: Conectar el delegado de la aplicación y de la escena

Sustituye el código del método AppDelegate.swift por el código siguiente. Este código inicializa el SDK cuando se inicia tu aplicación y permite que el SDK gestione los inicios de sesión y el uso compartido de la aplicación de Facebook nativa cuando realizas la acción de iniciar sesión o compartir contenido. De lo contrario, el usuario debe tener la sesión iniciada en Facebook para usar el navegador en la aplicación a fin de iniciar sesión.
    
// AppDelegate.swift
import UIKit
import FacebookCore

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {    
    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {          
        ApplicationDelegate.shared.application(
            application,
            didFinishLaunchingWithOptions: launchOptions
        )

        return true
    }
          
    func application(
        _ app: UIApplication,
        open url: URL,
        options: [UIApplication.OpenURLOptionsKey : Any] = [:]
    ) -> Bool {
        ApplicationDelegate.shared.application(
            app,
            open: url,
            sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String,
            annotation: options[UIApplication.OpenURLOptionsKey.annotation]
        )
    }  
}

iOS 13 ha trasladado la funcionalidad de apertura de URL a SceneDelegate. Si usas iOS 13, añade el método siguiente a SceneDelegate para que operaciones como el inicio de sesión o la función para compartir contenido funcionen según lo previsto:
// SceneDelegate.swift
import FacebookCore
  ...
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
    guard let url = URLContexts.first?.url else {
        return
    }

    ApplicationDelegate.shared.application(
        UIApplication.shared,
        open: url,
        sourceApplication: nil,
        annotation: [UIApplication.OpenURLOptionsKey.annotation]
    )
}

Paso 7: Añadir eventos de la aplicación

Existen tres maneras de realizar un seguimiento de los eventos en la aplicación:

App Store Connect para iOS 14

Es posible que los eventos que tu aplicación recopila y envía a Facebook te exijan que reveles estos tipos de datos en el cuestionario de App Store Connect. Eres responsable de garantizar que esta información quede reflejada en la Política de privacidad de la aplicación. Consulta el artículo Detalles sobre la privacidad de Apple App Store para obtener más información sobre los tipos de datos que deberás revelar.

Eventos registrados automáticamente

Cuando utilizas el SDK de Facebook, determinados eventos de la aplicación se registran y recopilan automáticamente para el Administrador de eventos de Facebook, a menos que desactives el registro automático de eventos. Estos eventos son pertinentes para todos los casos de uso: segmentación, medición y optimización.

Existen tres eventos clave que se recopilan como parte del registro automático de eventos de la aplicación: descarga e inicio de la aplicación, y compra. Si el registro automático está activado, los anunciantes pueden desactivar estos eventos y otros internos de Facebook, como los de impresión de inicio de sesión. No obstante, si has desactivado el registro automático, pero quieres seguir registrando eventos específicos, como los de descarga o compra, implementa manualmente el registro de estos eventos en la aplicación.

EventoDetalles

Descarga de la aplicación

La primera vez que un usuario nuevo activa una aplicación o se utiliza en un dispositivo determinado.

Inicio de la aplicación

Cuando una persona inicia la aplicación, el SDK de Facebook se inicializa y el evento se registra. Sin embargo, si se produce un segundo evento de inicio de la aplicación en un plazo de 60 segundos desde el primero, el segundo no se registra.

Compras en la aplicación

Cuando se completa una compra procesada en Apple App Store o Google Play. Si utilizas otras plataformas de pago, tendrás que añadir el código del evento de compra manualmente.

Informe de errores del SDK de Facebook

(Solo para uso por parte de Facebook).

Si la aplicación se bloquea por culpa del SDK de Facebook, se genera un informe de errores y se envía a Facebook cuando se reinicia la aplicación. Este informe no contiene datos del usuario y ayuda a Facebook a garantizar la calidad y la estabilidad del SDK. Para anular la suscripción al registro de este evento, desactiva los eventos registrados automáticamente.

Obtener el consentimiento del dispositivo

A partir de iOS 14.5, deberás establecer isAdvertiserTrackingEnabled y añadir un registro cada vez que concedas permiso a un dispositivo para compartir datos con Facebook.

Si un dispositivo proporciona consentimiento, establece Settings.shared.isAdvertiserTrackingEnabled = true.

Si un dispositivo no permite el seguimiento, establece Settings.shared.isAdvertiserTrackingEnabled = false.

Desactivar los eventos registrados automáticamente

Para desactivar el registro automático de eventos, abre el archivo Info.plist de la aplicación como código en Xcode y añade el código XML siguiente al diccionario de propiedades:

<key>FacebookAutoLogAppEventsEnabled</key>
<false/>

En algunos casos, es posible que quieras retrasar la recopilación de eventos registrados automáticamente, por ejemplo, para obtener el consentimiento del usuario o cumplir con las obligaciones legales, en lugar de desactivarla. En este caso, establece Settings.shared.isAutoLogAppEventsEnabled = true para volver a activar el registro automático una vez que el usuario final haya proporcionado su consentimiento.

Para volver a suspender la recopilación por cualquier motivo, establece Settings.shared.isAutoLogAppEventsEnabled = false.

También puedes desactivar el registro automático de los eventos de compra en la aplicación mediante el panel de aplicaciones. Dirígete a la tarjeta de iOS en Básica>Configuración y cambia el conmutador a No.

Desactivar la recopilación de identificadores de anunciantes

Para desactivar la recopilación de advertiser-id, abre el archivo .plist de la aplicación como código en Xcode y añade el código XML siguiente al diccionario de propiedades:

<key>FacebookAdvertiserIDCollectionEnabled</key>
<false/>

En algunos casos, es posible que quieras retrasar la recopilación de advertiser_id, por ejemplo, para obtener el consentimiento del usuario o cumplir con las obligaciones legales, en lugar de desactivarla. En este caso, establece Settings.shared.isAdvertiserIDCollectionEnabled = true una vez que el usuario final haya proporcionado su consentimiento.

Para suspender la recopilación por cualquier motivo, establece Settings.shared.isAdvertiserIDCollectionEnabled = false.

Registrar eventos manualmente

Para registrar un evento personalizado, simplemente pasa el nombre del evento como AppEvents.Name:

AppEvents.shared.logEvent(AppEvents.Name("battledAnOrc"))

Parámetros de eventos

Facebook ha creado un conjunto de parámetros de eventos útiles para incluirlos con los eventos estándar o con tus eventos personalizados. También puedes proporcionar tus propios parámetros.

Estos parámetros predefinidos están pensados como guía para patrones de registro comunes y pueden mostrarse de forma más legible en informes y otras interfaces de usuario. Registra el conjunto de parámetros que te interesa ver desglosados. Las descripciones recomendadas de estos parámetros son solo orientativas; puedes usarlos para lo que consideres conveniente en la aplicación.

Los parámetros se pasan mediante un diccionario en el que la clave incluye el nombre del parámetro como AppEvents.ParameterName y el valor debe ser de tipo String o un número (Int, Double, etc.).

Paso 8: Probar los eventos

Con el asistente para anuncios sobre aplicaciones, puedes probar los eventos de la aplicación en tu aplicación para asegurarte de que esta los envía a Facebook.

  1. Abre el asistente para anuncios sobre aplicaciones.
  2. En Seleccionar una aplicación, elige la aplicación y haz clic en Enviar.
  3. Desplázate hasta la parte inferior y elige Probar evento.
  4. Inicia la aplicación y envía un evento, que debería aparecer en la página.

Si tienes previsto optimizar los eventos de las campañas SKAdNetwork o realizar un seguimiento de ellos, también tienes que configurar de forma adecuada la prioridad de los eventos (también conocida como “valor de conversión”) para que Facebook reciba correctamente las conversiones. Puedes encontrar más detalles aquí.

Más información

Aplicaciones de ejemplo

Hemos creado algunos ejemplos para distintos tipos de aplicaciones con el fin de que puedas ver fácilmente cómo se pueden usar los eventos de la aplicación. Cada una de las aplicaciones de ejemplo ofrece un desglose por pantallas de los distintos eventos y parámetros que se pueden recopilar. Al final de cada sección, se incluye una tabla con los eventos y parámetros recomendados para cada aplicación. Si es preciso, puedes crear tus propios eventos y parámetros.