Catalogo e qualità dei segnali

Offriamo due opzioni per ricevere feedback sulla qualità e sulle prestazioni delle differenti risorse delle inserzioni del catalogo Advantage+:

Feedback sul pixel e sugli eventi nell'app per i cataloghi

Per identificare problemi riguardanti l'installazione del pixel o dell'app, puoi verificare le statistiche aggregate sugli eventi con e senza corrispondenza ricevute da diversi pixel, app e dispositivi.

Interroga l'API Event per ottenere statistiche sugli eventi che vengono originati da origini degli eventi collegate al tuo catalogo. Per i dettagli, consulta il riferimento all'API Events.

Statistiche degli eventi

Puoi ottenere queste informazioni al livello del catalogo:

curl -X GET \ -d 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v21.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: { }, })

Restituisce un array di elementi, uno per tipo di evento, origine e data relativi al mese scorso:

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

I campi restituiti per ciascun tipo di evento, origine e data sono:

Numero Descrizione

total_matched_content_ids

Il numero totale di ID dei contenuti provenienti dagli eventi ricevuti che corrispondono a un articolo del catalogo. Questo conteggio non viene deduplicato negli ID dei contenuti.

total_content_ids_matched_other_catalogs

Il numero totale di ID dei contenuti provenienti dagli eventi ricevuti che corrispondono a un articolo in un altro catalogo associato a un determinato pixel o a una determinata app. Questo conteggio non viene deduplicato negli ID del contenuto.

total_unmatched_content_ids

Il numero totale di ID dei contenuti provenienti dagli eventi ricevuti che non corrispondono a un articolo del catalogo. Questo conteggio non viene deduplicato negli ID del contenuto.

unique_matched_content_ids

Il numero di ID dei contenuti unici dagli eventi ricevuti che corrispondono a un articolo del catalogo.

unique_content_ids_matched_other_catalogs

Il numero di ID dei contenuti unici provenienti dagli eventi ricevuti che corrispondono a un articolo in un altro catalogo associato a un determinato pixel o a una determinata app che ha attivato l'evento.

unique_unmatched_content_ids

Il numero di ID dei contenuti unici dagli eventi ricevuti che non corrispondono a un articolo del catalogo.

Scomposizioni del tipo di dispositivo

Scomponi i risultati passando il 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

Restituisce i risultati raggruppati in base al dispositivo sul quale sono stati emessi. Ad esempio desktop, mobile_iphone, mobile_android_phone e così via:

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

Feedback su pixel e App Events

Esempio: usa i controlli per verificare che non ci siano problemi con gli eventi inviati dal tuo pixel.

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

Esempio: risposta

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

Puoi usare i seguenti controlli:

Controllo Descrizione

pixel_missing_dpa_event

Controlla se sono presenti eventi mancanti per questo pixel, come definito nelle inserzioni del catalogo Advantage+.

pixel_missing_param_in_events

Controlla se sono presenti eventi con parametri obbligatori mancanti, come definito nelle inserzioni dinamiche.

pixel_decline

Controlla se si è verificata una diminuzione nel numero di eventi ricevuti per quel pixel nelle ultime 24 ore.

Per i dettagli, consulta il riferimento ai controlli delle inserzioni dinamiche con pixel.

Valori possibili per il campo result:

Stato Descrizione

passed

Il tuo pixel ha superato questo controllo.

failed

Il tuo pixel non ha superato questo controllo.

unavailable

Questo controllo non è al momento disponibile per questo pixel. Riprova più tardi.

Restituiamo tutti i controlli per impostazione predefinita, ma puoi specificare i controlli che desideri eseguire come indicato di seguito:

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

Per gli eventi nell'app

Puoi verificare che non siano presenti problemi con gli eventi inviati dalla tua app:

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

Risposta di esempio:

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

app_missing_dpa_event

Controlla se sono presenti eventi mancanti per l'app, come definito nelle inserzioni dinamiche.

app_missing_param_in_events

Controlla se sono presenti eventi con parametri obbligatori mancanti, come definito nelle inserzioni dinamiche.

Per maggiori dettagli, consulta il riferimento ai controlli delle inserzioni dinamiche nell'app.

Possibili valori restituiti per result:

Stato Descrizione

passed

La tua app ha superato questo controllo.

failed

La tua app non ha superato questo controllo.

unavailable

Questo controllo non è al momento disponibile per questa app. Riprova più tardi.

Puoi richiedere i valori per controlli specifici. Restituiamo tutti i controlli per impostazione predefinita, ma puoi specificare i controlli che desideri eseguire passandoli nella richiesta:

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