Качество каталога и сигналов

Мы предлагаем два варианта получения информации о качестве и результативности различных объектов рекламы из каталога Advantage+:

Получение информации о событиях пикселя и событиях в приложении для каталогов

Чтобы выявить проблемы с пикселем или установкой приложения, можно проверить совокупную статистику по соответствию событий, полученных от разных пикселей, приложений и устройств.

Чтобы получить статистику по событиям из источников, связанных с каталогом, используйте API Events. Подробную информацию см. в справочнике по API Events.

Статистика по событиям

Эту информацию можно получить на уровне каталога:

curl -X GET \ -d 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v19.0/<PRODUCT_CATALOG_ID>/event_stats
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const ProductCatalog = bizSdk.ProductCatalog; const ProductEventStat = bizSdk.ProductEventStat; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<PRODUCT_CATALOG_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 = { }; const event_statss = (new ProductCatalog(id)).getEventStats( fields, params ); logApiCallResult('event_statss api call complete.', event_statss);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\ProductCatalog; use FacebookAds\Object\ProductEventStat; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<PRODUCT_CATALOG_ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( ); echo json_encode((new ProductCatalog($id))->getEventStats( $fields, $params )->getResponse()->getContent(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.productcatalog import ProductCatalog from facebook_business.adobjects.producteventstat import ProductEventStat from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<PRODUCT_CATALOG_ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { } print ProductCatalog(id).get_event_stats( 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 = \"<PRODUCT_CATALOG_ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new ProductCatalog(id, context).getEventStats() .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<PRODUCT_CATALOG_ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end product_catalog = FacebookAds::ProductCatalog.get(id) event_statss = product_catalog.event_stats({ fields: { }, })

Возвращается массив элементов для каждого типа события, источника и даты за последний месяц:

{
  "data": [
    {
      "date_start": "2017-03-16",
      "date_stop": "2017-03-16",
      "event": "AddToCart",
      "event_source": {
        "id": "<PIXEL_ID>",
        "source_type": "PIXEL"
      },
      "total_matched_content_ids": 1086,
      "total_content_ids_matched_other_catalogs": 10024,
      "total_unmatched_content_ids": 13024,
      "unique_matched_content_ids": 285,
      "unique_content_ids_matched_other_catalogs": 102,
      "unique_unmatched_content_ids": 2132
    },
    {
      "date_start": "2017-03-16",
      "date_stop": "2017-03-16",
      "event": "ViewContent",
      "event_source": {
        "id": "<APP_ID>",
        "source_type": "APP"
      },
      "total_matched_content_ids": 1007,
      "total_content_ids_matched_other_catalogs": 504,
      "total_unmatched_content_ids": 20206,
      "unique_matched_content_ids": 507,
      "unique_content_ids_matched_other_catalogs": 402,
      "unique_unmatched_content_ids": 8037
    },
    ...
  ]
}

Для каждого типа события, источника и даты возвращаются следующие поля:

Счетчик Описание

total_matched_content_ids

Общее количество ID материалов в полученных событиях, которые соответствуют элементу в каталоге. Повторы при подсчете не исключаются.

total_content_ids_matched_other_catalogs

Общее количество ID материалов в полученных событиях, которые соответствуют элементу в другом каталоге, связанном с этим пикселем или приложением. Повторы при подсчете не исключаются.

total_unmatched_content_ids

Общее количество ID материалов в полученных событиях, которые не соответствуют ни одному элементу в каталоге. Повторы при подсчете не исключаются.

unique_matched_content_ids

Общее количество уникальных ID материалов в полученных событиях, которые соответствуют элементу в каталоге.

unique_content_ids_matched_other_catalogs

Общее количество уникальных ID материалов в полученных событиях, которые соответствуют элементу в другом каталоге, связанном с инициировавшим событие пикселем или приложением.

unique_unmatched_content_ids

Общее количество уникальных ID материалов в полученных событиях, которые не соответствуют ни одному элементу в каталоге.

Разбивка по типу устройства

Чтобы сделать разбивку результатов, передайте параметр device_type:

use FacebookAds\Api;
use FacebookAds\Http\RequestInterface;

$data = Api::instance()->call(
  '/' . <CATALOG_ID> . '/event_stats',
  RequestInterface::METHOD_GET,
  array(
    'breakdowns' => array('device_type'),
  ))->getContent();
curl -G \
  -d 'breakdowns=["device_type"]' \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/<CATALOG_ID>/event_stats

Будут возвращены результаты, сгруппированные по типу устройства, например desktop, mobile_iphone, mobile_android_phone и т. д.:

{
  "data": [
    {
      "date_start": "2017-03-10",
      "date_stop": "2017-03-10",
      "event": "AddToCart",
      "event_source": {
        "id": "<PIXEL_ID>",
        "source_type": "PIXEL"
      },
      "device_type": "desktop",
      "total_matched_content_ids": 282,
      "total_content_ids_matched_other_catalogs": 524,
      "total_unmatched_content_ids": 4965,
      "unique_matched_content_ids": 102,
      "unique_content_ids_matched_other_catalogs": 402,
      "unique_unmatched_content_ids": 1427
    },
    ...
  ]
}

Получение информации о событиях пикселя и событиях в приложении

Пример. Чтобы узнать, имеются ли проблемы с событиями, отправляемыми пикселем, используйте проверки.

use FacebookAds\Api;
use FacebookAds\Http\RequestInterface;

$data = Api::instance()->call(
  '/' . <PIXEL_ID> . '/da_checks',
  RequestInterface::METHOD_GET)->getContent();
curl -G \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/<PIXEL_ID>/da_checks

Пример ответа

{
  "data": [
    {
      "description": "Pixel hasn't sent some or any events for Advantage+ catalog ads (ex: ViewContent, AddToCart, Purchase) at least once in the last 24 hours.",
      "key": "pixel_missing_dpa_event",
      "result": "failed",
      "title": "Pixel is not sending DPA events"
    },
    {
      "description": "Pixel events might be missing parameters some or all of the time.",
      "key": "pixel_missing_param_in_events",
      "result": "passed",
      "title": "Pixel missing parameter in DPA events"
    },
    {
      "action_uri": "https://www.facebook.com/ads/manage/pixels/?pixel_id=<PIXEL_ID>&amp;m2w=1",
      "description": "The number of pixel events has dropped to less than half of the weekly average.",
      "key": "pixel_decline",
      "result": "passed",
      "title": "Decline in number of pixel events"
    }
  ]
}

Можно использовать следующие проверки:

Проверка Описание

pixel_missing_dpa_event

Проверяет, есть ли недостающие события для пикселя. См. статью, посвященную объявлениям из каталога Advantage+.

pixel_missing_param_in_events

Проверяет наличие событий с недостающими обязательными параметрами. См. статью, посвященную динамической рекламе.

pixel_decline

Проверяет, уменьшилось ли число событий, полученных от этого пикселя, за последние 24 часа.

Подробную информацию см. в справочнике по проверкам пикселя для динамической рекламы.

Возможные значения поля result:

Статус Описание

passed

Пиксель прошел эту проверку.

failed

Пиксель не прошел эту проверку.

unavailable

В данный момент эта проверка недоступна для этого пикселя. Повторите попытку позже.

По умолчанию проводятся все проверки, однако вы можете выбрать только некоторые из них следующим образом:

use FacebookAds\Api;
use FacebookAds\Http\RequestInterface;

$data = Api::instance()->call(
  '/' . <PIXEL_ID> . '/da_checks',
  RequestInterface::METHOD_GET,
  array(
    'checks' => array(
      'pixel_decline',
      'pixel_missing_dpa_event',
      'pixel_missing_param_in_events',
      ),
  ))->getContent();
curl -G \
  --data-urlencode 'checks=[ 
    "pixel_decline", 
    "pixel_missing_dpa_event", 
    "pixel_missing_param_in_events" 
  ]' \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/<PIXEL_ID>/da_checks

Для событий в приложении

Вы можете проверить, имеются ли проблемы с событиями, отправляемыми приложением:

use FacebookAds\Api;
use FacebookAds\Http\RequestInterface;

$data = Api::instance()->call(
  '/' . <APP_ID> . '/da_checks',
  RequestInterface::METHOD_GET)->getContent();
curl -G \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/<APP_ID>/da_checks

Пример ответа:

{
  "data": [
    {
      "description": "App hasn't sent some or any events for dynamic ads (ex: ViewContent, AddToCart, Purchase)...",
      "key": "app_missing_dpa_event",
      "result": "failed",
      "title": "App is not sending DPA events"
    },
    {
      "description": "App events might be missing parameters some or all of the time.",
      "key": "app_missing_param_in_events",
      "result": "passed",
      "title": "App missing parameter in DPA events"
    }
  ]
}
Проверка Описание

app_missing_dpa_event

Проверяет, есть ли недостающие события для приложения. См. статью, посвященную динамической рекламе.

app_missing_param_in_events

Проверяет наличие событий с недостающими обязательными параметрами. См. статью, посвященную динамической рекламе.

Дополнительную информацию можно найти в справочнике по проверкам приложения для динамической рекламы.

Возможные значения, возвращаемые для result:

Статус Описание

passed

Приложение прошло эту проверку.

failed

Приложение не прошло эту проверку.

unavailable

В данный момент эта проверка недоступна для этого приложения. Повторите попытку позже.

По умолчанию возвращаются результаты всех проверок. Однако вы можете запросить результаты только некоторых из них, указав их в следующем запросе:

use FacebookAds\Api;
use FacebookAds\Http\RequestInterface;

$data = Api::instance()->call(
  '/' . <APP_ID> . '/da_checks',
  RequestInterface::METHOD_GET,
  array(
    'checks' => array('app_missing_dpa_event', 'app_missing_param_in_events'),
  ))->getContent();
curl -G \
  -d 'checks=["app_missing_dpa_event","app_missing_param_in_events"]' \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/<APP_ID>/da_checks