移动应用自定义受众

根据用户在应用中做出的符合条件的操作创建受众。您可利用此功能创建如下受众:

  • “在过去 10 天成功通过第 8 关”
  • “在过去 8 天使用过应用,但没有购买任何产品”
  • “已将产品加入购物车但尚未购买”

此解决方案通过我们的 Facebook SDK应用事件 APIMobile Measurement Partner 使用已记录并已命名的事件。举例来说,要记录的事件包括“已安装”、“已加入购物车”、“已购买”或“已完成关卡”。

限制

  • 我们仅为视频的互动自定义受众提供 subtype 支持。
  • iOS 14.5 SKAdNetwork 广告系列的 POST /{ad-account-id}/adsets 端点将不再支持在包含定位中使用移动应用自定义受众。
  • 全新的 iOS 14.5 应用安装广告系列将无法继续使用应用关系网络定位。

创建受众

如要通过您的移动应用创建自定义受众,则广告帐户必须在广告管理工具中接受自定义受众服务条款。签署条款的条件如下:

  • 您需要是广告帐户的管理员、开发者或成效分析用户。
  • 您应在应用设置中将此广告帐户列为“广告帐户”。

要创建您的受众,请执行以下代码:

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

操作成功后,系统会返回受众的 id。以下是相关性最高的参数:

名称 说明

name

类型:字符串

必需

自定义受众的名称。

description

类型:字符串

可选。

自定义受众的说明。

rule

类型:JSON 对象

可选。

用于定义受众的规则。请参阅受众规则

每个广告帐户最多可通过来自您移动应用的自定义受众创建 200 个自定义受众。发送 POST 请求至:

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

使用以下字段:

名称 说明

name

类型:字符串

必填

自定义受众的名称

retention_days

类型:整数

必填

用户留在此受众中的时长。最小值为 1。最大值为 180


如果 retention_days 为 14,而一位受众成员在第 13 天触发满足条件的应用事件,Facebook 会将其留在受众中的时间再延长 14 天。用户留在受众中的时长为其上次触发匹配事件后的 N 天。

rule

类型:JSON 对象

必填

用于定义受众的规则。请参阅受众规则

受众规则

如要确定将哪些用户加入自定义受众,请根据应用内的事件定义规则。规则是具有键值对的 JSON 对象,并且可参考多个应用事件。您可以根据特定事件及其参数以及聚合来定义规则。详情请参阅受众规则。其他参考文档:

  • 包含和排除规则语法:在 event_sources 下,将 id 设为您应用的编号,将 type 设为 app
  • 筛选条件规则
    • 如果筛选条件用于指定事件,请将 'event' 用作 field。与应用发送的应用事件匹配的参数;例如,“_appVersion”、“_value”等。
    • 如果您将 field 属性设置为 "event",则必须将值设为事件名称。使用应用事件 API 查看由像素报告的应用事件和参数。
  • 聚合函数:以下聚合函数适用于移动应用自定义受众:"count""sum""avg""min""max"

移动应用自定义受众规则示例

标准事件示例

过去 30 天内应用编号 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"
                        }
                    ]
                }
            }
        ]
    }
}

包含参数的自定义事件示例

过去 30 天内传回应用编号 55064006 的自定义 “timeOnPanel” 事件的所有用户:

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

传回自定义 “timeOnPanel” 事件的所有用户,其中事件值大于 30、颜色为 “red”“blue”,而最爱甜品则包含 “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",
                        }
                    ]
                }
            }
        ]
    }
}

聚合示例

过去 30 天的购买活动中前 20% 的购买者:

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

排除示例

以下示例包括已将产品加入购物车但尚未购买的用户:

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

查询应用向 Facebook 报告的应用事件和参数。您可将这些事件和参数直接用于创建自定义受众。您需要拥有与 app_id 关联的管理员、开发者或广告主身份访问口令。

发出 GET 请求:

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

响应为包含 JSON 字典 data 数组的 JSON,并具有以下字段:

名称 说明

event_name

类型:字符串

用于规则的应用事件类型。

display_name

类型:字符串

人类可读的事件类型名称

description

类型:字符串

标准事件的详细描述

parameters

类型:数组

描述以下事件参数的 JSON 字典数组:{"parameter_name": "fb_currency","display_name": "Currency","description": "Currency for event"}


parameter_name:字符串,用于规则的应用参数类型


display_name:字符串,人类可读的事件类型名称


description:字符串,参数的详细描述(如为标准参数)


管理受众