Audiences personnalisées pour application mobile

Créez des audiences sur la base des actions conformes à vos critères qui ont été effectuées par des personnes dans votre application. Cette fonctionnalité vous permet de créer une audience qui a, par exemple :

  • « passé le niveau 8 au cours des dix derniers jours »
  • « utilisé l’app au cours des huit derniers jours, mais n’a effectué aucun achat »
  • « ajouté des articles dans le panier sans finaliser l’achat »

Cette solution utilise des évènements nommés enregistrés via nos SDK Facebook, l’API App Events ou les partenaires Mobile Measurement Partner. Voici quelques exemples d’évènements à enregistrer : « Installé », « Ajouté au panier », « Acheté » ou « Ont atteint un certain niveau ».

Limitations

  • Les audiences personnalisées des interactions prennent en charge subtype uniquement pour les vidéos.
  • Le ciblage d’inclusion via les audiences personnalisées pour l’app mobile n’est plus pris en charge pour le point de terminaison POST /{ad-account-id}/adsets pour les campagnes SKAdNetwork sur iOS 14.5.
  • Les nouvelles campagnes d’installation d’app pour les utilisateurs d’iOS 14.5 ne pourront plus utiliser le ciblage des connexions à l’app.

Créer une audience

Pour créer des audiences personnalisées à partir de votre app mobile, le compte publicitaire doit accepter les Conditions de service des audiences personnalisées dans le Gestionnaire de publicités. Pour signer les Conditions :

  • Vous devez être un admin, un développeur ou un utilisateur Insights du compte publicitaire.
  • Votre compte publicitaire doit être répertorié comme tel dans les paramètres de votre application.

Pour créer votre audience :

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/v21.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', })

Renvoie l’id de l’audience en cas de succès. Ces paramètres sont les plus pertinents :

Nom Description

name

type : chaîne

Obligatoire.

Nom de votre audience personnalisée.

description

type : chaîne

Facultatif.

Description de votre audience personnalisée.

rule

type : objet JSON

Facultatif.

Règles de définition de l’audience. Reportez-vous à la section Règles d’audience.

Chaque compte publicitaire peut créer au maximum 200 audiences personnalisées via Audiences personnalisées à partir de l’app mobile. Envoyez une demande POST à :

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

Utilisez les champs suivants :

Nom Description

name

type : chaîne

Obligatoire.

Nom de votre audience personnalisée.

retention_days

type : nombre entier

Obligatoire.

Indique depuis combien de temps une personne se trouve dans cette audience. La valeur minimale est 1. La valeur maximale est 180.


Si la valeur du champ retention_days est de 14 et que, le treizième jour, un membre de l’audience déclenche un app event répondant à vos critères, Facebook étend sa présence dans l’audience de 14 jours supplémentaires. Une personne se trouve dans une audience N jours à compter du dernier évènement correspondant qu’elle a déclenché.

rule

type : objet JSON

Obligatoire.

Règles définissant l’audience. Reportez-vous à la section Règles d’audience.

Règles d’audience

Pour déterminer les personnes ajoutées à l’audience personnalisée, définissez une règle sur la base des évènements de votre application. Une règle est un objet JSON avec des paires clé/valeur qui peut faire référence à plusieurs app events. Vous pouvez définir la règle en fonction d’événements spécifiques et de leurs paramètres, ainsi que de l’agrégation. Pour plus d’informations, lisez la section Règles d’audience. Voir aussi :

Exemples de règles des audiences personnalisées pour app mobile

Exemple d’évènement standard

Tous les acheteurs sur app mobile au cours des 30 derniers jours pour l’ID d’app 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"
                        }
                    ]
                }
            }
        ]
    }
}

Exemple d’évènement personnalisé avec paramètres

Tous les utilisateurs ayant renvoyé des évènements “timeOnPanel” personnalisés au cours des 30 derniers jours pour l’ID d’app 55064006 :

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

Tous les utilisateurs ayant renvoyé des évènements “timeOnPanel” personnalisés dont la valeur d’évènement est supérieure à 30, la couleur est “red” ou “blue” et le dessert favori contient “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",
                        }
                    ]
                }
            }
        ]
    }
}

Exemple d’agrégation

Top 20 % des meilleurs acheteurs sur la base des achats effectués au cours des 30 derniers jours :

{
    "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,
                }
            }
        ]
    }
}

Exemple d’exclusion

L’exemple suivant comprend les personnes ayant ajouté des articles dans le panier sans finaliser l’achat :

{
    "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 App Events

Recherchez les app events et les paramètres qu’une application a signalés à Facebook. Vous pouvez utiliser directement ces évènements et paramètres pour créer des audiences personnalisées. Vous avez besoin d’un token d’accès associé à l’app_id, avec un rôle admin, développeur ou annonceur.

Envoyez une requête GET :

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

La réponse est un objet JSON contenant un tableau de data de dictionnaires JSON avec les champs suivants :

Nom Description

event_name

type : chaîne

Type d’app event à utiliser dans la règle.

display_name

type : chaîne

Nom du type d’évènement dans un format lisible

description

type : chaîne

Description détaillée d’un évènement standard

parameters

type : tableau

Tableau de dictionnaires JSON décrivant les paramètres de cet évènement {"parameter_name": "fb_currency","display_name": "Currency","description": "Currency for event"}


parameter_name : chaîne, type de paramètre d’app à utiliser dans la règle


display_name : chaîne, nom du type d’évènement dans un format lisible


description : chaîne, description détaillée du paramètre, dans le cas d’un paramètre standard


Gestion des audiences