Audiencias personalizadas de la aplicación para móviles

Crea públicos en función de las acciones que las personas realicen en tu aplicación y que cumplan tus criterios. Esta función te permite crear una audiencia que haya hecho lo siguiente, por ejemplo:

  • "Superar el nivel 8 en los últimos 10 días"
  • "Utilizar la aplicación en los últimos 8 días, pero sin hacer ninguna compra"
  • "Añadir un artículo al carrito, pero sin comprarlo"

En esta solución se utilizan eventos con nombre registrados mediante nuestros SDK de Facebook, la API de eventos de la aplicación o Mobile Measurement Partners. Por ejemplo, "instalado", "añadido al carrito", "comprado" o "nivel conseguido" son algunos de los eventos que se deben registrar.

Limitaciones

  • El elemento subtype para audiencias personalizadas de interacción solo se admite para vídeos.
  • Las audiencias personalizadas de la aplicación para móviles para la segmentación de inclusión ya no se admiten para el extremo POST /{ad-account-id}/adsets de las campañas de SKAdNetwork de iOS 14.5.
  • Las nuevas campañas de descarga de la aplicación para iOS 14.5 ya no podrán utilizar la segmentación para conexiones de la aplicación.

Crear una audiencia

Para crear audiencias personalizadas desde la aplicación para móviles, la cuenta publicitaria debe aceptar las Condiciones del servicio para audiencias personalizadas en el administrador de anuncios. Para firmar las condiciones:

  • Debes ser administrador, desarrollador o usuario de estadísticas de la cuenta publicitaria.
  • La cuenta publicitaria debe constar como tal en la configuración de la aplicación.

Para crear tu audiencia:

curl -X POST \ -F 'name="My Test Website Custom Audience"' \ -F 'rule={ "inclusions": { "operator": "or", "rules": [ { "event_sources": [ { "id": "<APP_ID>", "type": "app" } ], "retention_seconds": 8400, "filter": { "operator": "and", "filters": [ { "field": "event", "operator": "eq", "value": "fb_mobile_purchase" } ] } } ] } }' \ -F 'prefill=1' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/customaudiences
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const AdAccount = bizSdk.AdAccount; const CustomAudience = bizSdk.CustomAudience; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<AD_ACCOUNT_ID>'; const api = bizSdk.FacebookAdsApi.init(access_token); const showDebugingInfo = true; // Setting this to true shows more debugging info. if (showDebugingInfo) { api.setDebug(true); } const logApiCallResult = (apiCallName, data) => { console.log(apiCallName); if (showDebugingInfo) { console.log('Data:' + JSON.stringify(data)); } }; let fields, params; fields = [ ]; params = { 'name' : 'My Test Website Custom Audience', 'rule' : {'inclusions':{'operator':'or','rules':[{'event_sources':[{'id':'<appID>','type':'app'}],'retention_seconds':8400,'filter':{'operator':'and','filters':[{'field':'event','operator':'eq','value':'fb_mobile_purchase'}]}}]}}, 'prefill' : '1', }; const customaudiences = (new AdAccount(id)).createCustomAudience( fields, params ); logApiCallResult('customaudiences api call complete.', customaudiences);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\AdAccount; use FacebookAds\Object\CustomAudience; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<AD_ACCOUNT_ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( 'name' => 'My Test Website Custom Audience', 'rule' => array('inclusions' => array('operator' => 'or','rules' => array(array('event_sources' => array(array('id' => '<appID>','type' => 'app')),'retention_seconds' => 8400,'filter' => array('operator' => 'and','filters' => array(array('field' => 'event','operator' => 'eq','value' => 'fb_mobile_purchase'))))))), 'prefill' => '1', ); echo json_encode((new AdAccount($id))->createCustomAudience( $fields, $params )->exportAllData(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.adaccount import AdAccount from facebook_business.adobjects.customaudience import CustomAudience from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_ACCOUNT_ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { 'name': 'My Test Website Custom Audience', 'rule': {'inclusions':{'operator':'or','rules':[{'event_sources':[{'id':'<appID>','type':'app'}],'retention_seconds':8400,'filter':{'operator':'and','filters':[{'field':'event','operator':'eq','value':'fb_mobile_purchase'}]}}]}}, 'prefill': '1', } print AdAccount(id).create_custom_audience( fields=fields, params=params, )
import com.facebook.ads.sdk.*; import java.io.File; import java.util.Arrays; public class SAMPLE_CODE_EXAMPLE { public static void main (String args[]) throws APIException { String access_token = \"<ACCESS_TOKEN>\"; String app_secret = \"<APP_SECRET>\"; String app_id = \"<APP_ID>\"; String id = \"<AD_ACCOUNT_ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new AdAccount(id, context).createCustomAudience() .setName(\"My Test Website Custom Audience\") .setRule(\"{\\"inclusions\\":{\\"operator\\":\\"or\\",\\"rules\\":[{\\"event_sources\\":[{\\"id\\":\\"<appID>\\",\\"type\\":\\"app\\"}],\\"retention_seconds\\":8400,\\"filter\\":{\\"operator\\":\\"and\\",\\"filters\\":[{\\"field\\":\\"event\\",\\"operator\\":\\"eq\\",\\"value\\":\\"fb_mobile_purchase\\"}]}}]}}\") .setPrefill(true) .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_ACCOUNT_ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end ad_account = FacebookAds::AdAccount.get(id) customaudiences = ad_account.customaudiences.create({ name: 'My Test Website Custom Audience', rule: {'inclusions':{'operator':'or','rules':[{'event_sources':[{'id':'<appID>','type':'app'}],'retention_seconds':8400,'filter':{'operator':'and','filters':[{'field':'event','operator':'eq','value':'fb_mobile_purchase'}]}}]}}, prefill: '1', })

Si la operación se completa correctamente, se devuelve el valor id de la audiencia. Estos parámetros son más pertinentes:

Nombre Descripción

name

Tipo: cadena

Obligatorio

Nombre de la audiencia personalizada.

description

Tipo: cadena

Opcional.

Descripción de la audiencia personalizada.

rule

Tipo: objeto JSON

Opcional.

Regla para definir el público. Consulta Reglas de la audiencia.

Cada cuenta publicitaria puede crear un máximo de 200 audiencias personalizadas desde Audiencias personalizadas, en la aplicación para móviles. Haz una solicitud POST a:

https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/customaudiences

Usa estos campos:

Nombre Descripción

name

Tipo: cadena

Obligatorio

Nombre de la audiencia personalizada.

retention_days

Tipo: entero

Obligatorio

Tiempo que alguien permanece en el público. El número mínimo es 1. El número máximo es 180.


Si retention_days es 14 y, en el día 13, un miembro de la audiencia activa un evento de la aplicación que coincide con tu criterio, Facebook amplía su tiempo en la audiencia 14 días más. Una persona permanece en un público N días a partir del último evento de correspondencia que ha activado.

rule

Tipo: objeto JSON

Obligatorio

Reglas para definir la audiencia. Consulta Reglas de la audiencia

Reglas de público

Para determinar quién se añade a la audiencia personalizada, define una regla basada en eventos en tu aplicación. Una regla es un objeto JSON con pares de clave-valor, que puede hacer referencia a varios eventos de la aplicación. Puedes definir la regla basada en eventos específicos y sus parámetros, así como la agregación. Para obtener más información, consulta Reglas de la audiencia. Consulta también:

  • Sintaxis de la regla de inclusión y exclusión: en event_sources, define id con el identificador de la aplicación y type como app.
  • Reglas de filtros:
    • Utiliza 'event' como field si la finalidad del filtro es especificar un evento. Parámetros que coinciden con los eventos de la aplicación que envía la aplicación; por ejemplo, "_appVersion", "_value", etc.
    • Si el atributo field está establecido en "event", el valor debe establecerse en un nombre de evento. Utiliza la API de eventos de la aplicación para ver los eventos de la aplicación y los parámetros que notifica el píxel.
  • Funciones de agregación: las siguientes funciones de agregación están disponibles para audiencias personalizadas de la aplicación para móviles: "count","sum", "avg", "min" y "max".

Ejemplos de reglas de audiencia personalizada de aplicaciones para móviles

Ejemplo de evento estándar

Todos los compradores de la aplicación para móviles de los últimos 30 días del identificador de la aplicación 55064006:

{
    "inclusions: {
        "operator": "or",
        "rules": [    
            {
                "event_sources": [
                    {
                        "id": 55064006, 
                        "type": "app"
                    }
                ],
                "retention_seconds: 2592000,
                "filter": {
                    "operator": "and",
                    "filters": [
                        {
                            "field": "event",
                            "operator": "=",
                            "value": "fb_mobile_purchase"
                        }
                    ]
                }
            }
        ]
    }
}

Ejemplo de evento personalizado con parámetros

Todos los usuarios que pasaron eventos “timeOnPanel” personalizados en los últimos 30 días del identificador de la aplicación 55064006:

{
    "inclusions: {
        "operator": "or",
        "rules": [    
            {
                "event_sources": [
                    {
                        "id": 55064006, 
                        "type": "app"
                    }
                ],
                "retention_seconds: 2592000,
                "filter": {
                    "operator": "and",
                    "filters": [
                        {
                            "field": "event",
                            "operator": "=",
                            "value": "timeOnPanel"
                        }
                    ]
                }
            }
        ]
    }
}

Todos los usuarios que pasaron eventos “timeOnPanel” personalizados con un valor de evento superior a 30, el color “red” o “blue” y un postre favorito que contenga “banana”:

{
    "inclusions: {
        "operator": "or",
        "rules": [    
            {
                "event_sources": [
                    {
                        "id": 55064006, 
                        "type": "app",
                    }
                ],
                "retention_seconds: 2592000,
                "filter": {
                    "operator": "and",
                    "filters": [
                        {
                            "field": "event",
                            "operator": "=",
                            "value": "timeOnPanel",
                        },
                        {
                            "field": "_value",
                            "operator": ">",
                            "value": 30,
                        },
                        {
                            "field": "color",
                            "operator": "is_any",
                            "value": ["red", "blue"],
                        },
                        {
                            "field": "favoriteDessert",
                            "operator": "contains",
                            "value": "banana",
                        }
                    ]
                }
            }
        ]
    }
}

Ejemplo de agregación

El primer 20 % de los compradores según las compras de los últimos 30 días:

{
    "inclusions: {
        "operator": "or",
        "rules": [    
            {
                "event_sources": [
                    {
                        "id": 55064006, 
                        "type": "app"
                    }
                ],
                "retention_seconds: 2592000,
                "filter": {
                    "operator": "and",
                    "filters": [
                        {
                            "field": "event",
                            "operator": "=",
                            "value": "fb_mobile_purchase"
                        }
                    ]
                }
                "aggregation": {
                    "type": "count",
                    "method": "percentile",
                    "operator": "in_range",
                    "from": 75,  
                    "to": 100,
                }
            }
        ]
    }
}

Ejemplo de exclusiones

En el ejemplo siguiente se incluyen personas que añadieron artículos al carrito, pero no los compraron:

{
    "inclusions: {
        "operator": "or",
        "rules": [    
            {
                "event_sources": [
                    {
                        "id": 55064006, 
                        "type": "app"
                    }
                ],
                "retention_seconds: 2592000,
                "filter": {
                    "operator": "and",
                    "filters": [
                        {
                            "field": "event",
                            "operator": "=",
                            "value": "add_to_cart"
                        }
                    ]
                }
            }
        ]
    },
    "exclusions": {
        "operator": "or",
        "rules": [    
            {
                "event_sources": [
                    {
                        "id": 55064006, 
                        "type": "app"
                    }
                ],
                "retention_seconds: 2592000,
                "filter": {
                    "operator": "and",
                    "filters": [
                        {
                            "field": "event",
                            "operator": "=",
                            "value": "fb_mobile_purchase"
                        }
                    ]
                }
            }
        ]
    }
}

API de eventos de la aplicación

Consulta qué eventos de la aplicación y qué parámetros reporta una aplicación a Facebook. Puedes utilizar estos eventos y parámetros directamente para crear audiencias personalizadas. Necesitas un identificador de acceso asociado con app_id con un rol de administrador, desarrollador o anunciante.

Haz una solicitud GET:

https://graph.facebook.com/<API_VERSION>/<APP_ID>/app_event_types

La respuesta es un código JSON que contiene una matriz de data de diccionarios JSON con estos campos:

Nombre Descripción

event_name

Tipo: cadena

Tipo de evento de la aplicación que se utilizará en la regla.

display_name

Tipo: cadena

Nombre en lenguaje natural del tipo de evento.

description

Tipo: cadena

Descripción detallada del evento estándar.

parameters

Tipo: matriz

Matriz de diccionarios JSON que describen parámetros para este evento {"parameter_name": "fb_currency","display_name": "Currency","description": "Currency for event"}.


parameter_name: cadena, tipo de parámetro de aplicación que se utilizará en la regla.


display_name: cadena, nombre del tipo de evento en lenguaje natural.


description: cadena, descripción detallada de un parámetro, si se trata de un parámetro estándar.


Administración de audiencias