

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Connessione ad Annunci su Facebook
<a name="connecting-to-data-facebook-ads"></a>

Annunci su Facebook è una potente piattaforma pubblicitaria digitale usata da aziende di tutte le dimensioni per raggiungere il proprio pubblico di riferimento e realizzare diversi obiettivi di marketing. Questa piattaforma permette agli inserzionisti di creare annunci personalizzati che possono essere visualizzati su tutta la famiglia di app e servizi di Facebook, tra cui Facebook e Messenger. Grazie alle sue funzionalità di targeting avanzate, Annunci su Facebook consente alle aziende di accedere a dati demografici e relativi a interessi, comportamenti e località specifici.

**Topics**
+ [AWS Glue supporto per Facebook Ads](facebook-ads-support.md)
+ [Policy contenenti le operazioni API per creare e utilizzare le connessioni](facebook-ads-configuring-iam-permissions.md)
+ [Configurazione di Facebook Ads](facebook-ads-configuring.md)
+ [Configurazione delle connessioni su Facebook Ads](facebook-ads-configuring-connections.md)
+ [Lettura dalle entità di Facebook Ads](facebook-ads-reading-from-entities.md)
+ [Opzioni di connessione a Facebook Ads](facebook-ads-connection-options.md)
+ [Limitazioni e note per il connettore di Facebook Ads](facebook-ads-connector-limitations.md)

# AWS Glue supporto per Facebook Ads
<a name="facebook-ads-support"></a>

AWS Glue supporta Facebook Ads come segue:

**Supportato come origine?**  
Sì. Puoi utilizzare i lavori AWS Glue ETL per interrogare i dati di Facebook Ads.

**Supportato come destinazione?**  
No.

**Versioni supportate dell'API Facebook Ads**  
Le versioni dell'API di Facebook Ads supportate sono le seguenti:
+ v17.0
+ v18.0
+ v19.0
+ v20.0

# Policy contenenti le operazioni API per creare e utilizzare le connessioni
<a name="facebook-ads-configuring-iam-permissions"></a>

La seguente policy di esempio descrive le autorizzazioni AWS IAM richieste per la creazione e l'utilizzo delle connessioni. Se si sta creando un nuovo ruolo, creare una policy che contenga quanto segue:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

In alternativa, se non desideri utilizzare il metodo precedente, utilizza le seguenti policy IAM gestite:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Garantisce l'accesso alle risorse che AWS Glue i vari processi richiedono per l'esecuzione per conto dell'utente. Queste risorse includono AWS Glue Amazon S3, IAM, CloudWatch Logs e Amazon. EC2 Se segui la convenzione di denominazione delle risorse specificata in questa politica, AWS Glue i processi dispongono delle autorizzazioni richieste. Questa policy è in genere collegata ai ruoli specificati quando si definiscono crawler, processi ed endpoint di sviluppo.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Concede l'accesso completo alle AWS Glue risorse quando un'identità a cui è allegata la policy utilizza la AWS console di gestione. Se si segue la convenzione per la denominazione per le risorse specificate nella policy, gli utenti hanno la piena funzionalità della console. Questa policy è in genere associata agli utenti della AWS Glue console.

# Configurazione di Facebook Ads
<a name="facebook-ads-configuring"></a>

Prima di poter AWS Glue utilizzare il trasferimento di dati da Facebook Ads, devi soddisfare questi requisiti:

## Requisiti minimi
<a name="facebook-ads-configuring-min-requirements"></a>

I requisiti minimi sono i seguenti:
+ Gli account Facebook Standard sono accessibili direttamente tramite Facebook.
+ L'autenticazione dell'utente è necessaria per generare il token di accesso.
+ Il connettore Facebook Ads SDK implementerà il OAuth flusso *User Access Token*.
+ Stiamo utilizzando OAuth2 .0 per autenticare le nostre richieste API su Facebook Ads. Questa autenticazione basata sul Web rientra nell'architettura dell'autenticazione a più fattori (MFA), che è un superset di 2FA.
+ L'utente deve concedere le autorizzazioni per accedere agli endpoint. Per accedere ai dati dell'utente, l'autorizzazione degli endpoint viene gestita tramite [autorizzazioni](https://developers.facebook.com/docs/permissions) e [funzionalità](https://developers.facebook.com/docs/features-reference).

## Ottenere le credenziali 2.0 OAuth
<a name="facebook-ads-configuring-creating-facebook-ads-oauth2-credentials"></a>

Per ottenere le credenziali API così da effettuare chiamate autenticate alla tua istanza, consulta [REST API](https://developers.facebook-ads.com/rest-api/) nella Guida per gli sviluppatori di Facebook Ads.

# Configurazione delle connessioni su Facebook Ads
<a name="facebook-ads-configuring-connections"></a>

Facebook Ads supporta il tipo di concessione AUTHORIZATION\$1CODE per. OAuth2
+ Questo tipo di concessione è considerato a tre vie in OAuth quanto si basa sul reindirizzamento degli utenti al server di autorizzazione di terze parti per autenticare l'utente. Viene utilizzato durante la creazione di connessioni tramite la console. AWS Glue 
+ Gli utenti possono comunque scegliere di creare la propria app connessa in Facebook Ads e fornire il proprio ID cliente e il segreto del client quando creano connessioni tramite la AWS Glue console. In questo scenario, verranno comunque reindirizzati a Facebook Ads per accedere e autorizzare l'accesso AWS Glue alle proprie risorse.
+ Questo tipo di concessione genera un token di accesso. Un token utente di sistema in scadenza è valido per 60 giorni dalla data di generazione o aggiornamento. Per creare continuità, lo sviluppatore deve aggiornare il token di accesso entro 60 giorni. In caso contrario, il token di accesso verrà perso e lo sviluppatore dovrà ottenerne un altro per poter accedere di nuovo all'API. Consulta [Refresh Access Token](https://developers.facebook.com/docs/marketing-api/system-users/install-apps-and-generate-tokens/).
+ Per la documentazione pubblica di Facebook Ads sulla creazione di un'app connessa per il OAuth flusso del codice di autorizzazione, consulta [Using OAuth 2.0 to Access Google APIs](https://developers.google.com/identity/protocols/oauth2) nella guida Google per sviluppatori.

Per configurare una connessione a Facebook Ads:

1. In AWS Glue Glue Studio, crea una connessione in **Connessioni dati** seguendo i passaggi seguenti:

   1. Quando selezioni un **tipo di connessione**, seleziona Facebook Ads.

   1. Fornire `INSTANCE_URL` dell'istanza Facebook Ads a cui connettersi.

   1. Seleziona il ruolo AWS IAM che AWS Glue può assumere e dispone delle autorizzazioni per le seguenti azioni:

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Seleziona quello `secretName` che desideri utilizzare per questa connessione per AWS Glue inserire i token.

   1. Selezionare le opzioni di rete se si desidera utilizzare la propria rete.

1. Concedi il permesso di lettura `secretName` al ruolo IAM associato al tuo AWS Glue lavoro.

# Lettura dalle entità di Facebook Ads
<a name="facebook-ads-reading-from-entities"></a>

**Prerequisito**

Un oggetto di Facebook Ads da cui desideri leggere. È necessario il nome dell'oggetto. Le tabelle seguenti mostrano le entità supportate.

**Entità supportate come origine**:


| Entità | Può essere filtrato | Supporta limite | Supporta Ordina per | Supporta Seleziona \$1 | Supporta il partizionamento | 
| --- | --- | --- | --- | --- | --- | 
| Campagna | Sì  | Sì | No | Sì | Sì | 
| Set di annunci | Sì  | Sì | No | Sì | Sì | 
| Inserzioni | Sì  | Sì | No | Sì | Sì | 
| Creative Ad | No | Sì | No | Sì | No | 
| Informazioni approfondite: conto | No | Sì | No | Sì | No | 
| Account pubblicitari | Sì  | Sì | No | Sì | No | 
| Informazioni approfondite: inserzione | Sì  | Sì | No | Sì | Sì | 
| Approfondimenti - AdSet | Sì  | Sì | No | Sì | Sì | 
| Informazioni approfondite: campagna | Sì  | Sì | No | Sì | Sì | 

**Esempio**:

```
FacebookAds_read = glueContext.create_dynamic_frame.from_options(
    connection_type="FacebookAds",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v20.0"
    }
```

## Dettagli sull'entità e sul campo di Facebook Ads
<a name="facebook-ads-reading-entity-and-field-details"></a>

Per ulteriori informazioni sui dettagli dell'entità e del campo, consultare:
+ [Account pubblicitario](https://developers.facebook.com/docs/marketing-api/reference/ad-account)
+ [Campagna](https://developers.facebook.com/docs/marketing-api/reference/ad-campaign-group)
+ [Set di annunci](https://developers.facebook.com/docs/marketing-api/reference/ad-campaign)
+ [Inserzione](https://developers.facebook.com/docs/marketing-api/reference/adgroup)
+ [Creative Ad](https://developers.facebook.com/docs/marketing-api/reference/ad-creative)
+ [Informazioni approfondite sull'account pubblicitario](https://developers.facebook.com/docs/marketing-api/reference/ad-account/insights)
+ [Informazioni approfondite sulle inserzioni](https://developers.facebook.com/docs/marketing-api/reference/adgroup/insights/)
+ [Approfondimenti AdSets](https://developers.facebook.com/docs/marketing-api/reference/ad-campaign/insights)
+ [Informazioni approfondite sulle campagne](https://developers.facebook.com/docs/marketing-api/reference/ad-campaign-group/insights)

Per ulteriori informazioni, consulta [l'API Marketing](https://developers.facebook.com/docs/marketing-api/reference/v21.0).

**Nota**  
I tipi di dati Struct e List vengono convertiti in tipo di dati String nella risposta dei connettori.

## Query di partizionamento
<a name="facebook-ads-reading-partitioning-queries"></a>

Puoi fornire le opzioni Spark aggiuntive `PARTITION_FIELD`, `LOWER_BOUND`, `UPPER_BOUND` e `NUM_PARTITIONS` se desideri utilizzare la concorrenza in Spark. Con questi parametri, la query originale viene suddivisa in `NUM_PARTITIONS` query secondarie che possono essere eseguite contemporaneamente dalle attività Spark.
+ `PARTITION_FIELD`: il nome del campo da utilizzare per partizionare la query.
+ `LOWER_BOUND`: un valore limite inferiore **inclusivo** del campo di partizione scelto.

  Per il DateTime campo, accettiamo il formato di timestamp Spark utilizzato nelle query SQL di Spark.

  Esempio di valore valido:

  ```
  "2022-01-01"
  ```
+ `UPPER_BOUND`: un valore limite superiore **esclusivo** del campo di partizione scelto.
+ `NUM_PARTITIONS`: il numero di partizioni.

Esempio:

```
FacebookADs_read = glueContext.create_dynamic_frame.from_options(
    connection_type="FacebookAds",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v20.0",
        "PARTITION_FIELD": "created_time"
        "LOWER_BOUND": "2022-01-01"
        "UPPER_BOUND": "2024-01-02"
        "NUM_PARTITIONS": "10"
    }
```

# Opzioni di connessione a Facebook Ads
<a name="facebook-ads-connection-options"></a>

Le seguenti sono le opzioni di connessione per Facebook Ads:
+ `ENTITY_NAME`(Stringa): (obbligatorio) utilizzato per la lettura. Il nome del tuo oggetto in Facebook Ads.
+ `API_VERSION`(Stringa): (obbligatorio) utilizzato per la lettura. La versione dell'API Rest di Facebook Ads che desideri utilizzare. Ad esempio: v1.
+ `SELECTED_FIELDS`(List<String>): predefinito: vuoto (SELECT \$1). Utilizzato per la lettura. Colonne da selezionare per l'oggetto.
+ `FILTER_PREDICATE`(Stringa): predefinito: vuoto. Utilizzato per la lettura. Dev'essere in formato Spark SQL.
+ `QUERY`(Stringa): predefinito: vuoto. Utilizzato per la lettura. Query Spark SQL completa.
+ `PARTITION_FIELD`(Stringa): utilizzato per la lettura. Campo da utilizzare per partizionare la query.
+ `LOWER_BOUND`(Stringa): utilizzato per la lettura. Un valore limite inferiore inclusivo del campo di partizione scelto.
+ `UPPER_BOUND`(Stringa): utilizzato per la lettura. Un valore limite superiore esclusivo del campo di partizione scelto. 
+ `NUM_PARTITIONS`(Numero intero): predefinito: 1. Utilizzato per la lettura. Numero di partizioni da leggere.
+ `TRANSFER_MODE`(Stringa): predefinito: SYNC. Utilizzato per la lettura asincrona.

# Limitazioni e note per il connettore di Facebook Ads
<a name="facebook-ads-connector-limitations"></a>

Di seguito sono riportate le limitazioni o le note per il connettore di Facebook Ads:
+ Poiché Facebook Ads supporta i metadati dinamici, è possibile interrogare tutti i campi. Tutti i campi supportano il filtraggio e i record vengono recuperati se i dati sono disponibili, altrimenti Facebook restituisce un errore di richiesta non valida (400) con un relativo messaggio di errore.
+ Il conteggio delle chiamate di un'app è il numero di chiamate che un utente può effettuare durante una finestra continua di un'ora moltiplicando 200 per il numero di utenti. Per i dettagli sui limiti di velocità, consulta [Limiti della frequenza](https://developers.facebook.com/docs/graph-api/overview/rate-limiting/) e [Limiti della frequenza dei casi d'uso business](https://developers.facebook.com/docs/graph-api/overview/rate-limiting/#buc-rate-limits).