

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Herstellen einer Verbindung mit Facebook Ads
<a name="connecting-to-data-facebook-ads"></a>

Facebook Ads ist eine leistungsstarke digitale Werbeplattform, die von Unternehmen jeder Größe genutzt wird, um ihre Zielgruppe sowie verschiedene Marketingziele zu erreichen. Die Plattform ermöglicht es Werbetreibenden, maßgeschneiderte Anzeigen zu erstellen, die in der gesamten Facebook-Familie von Apps und Diensten, einschließlich Facebook und Messenger, angezeigt werden können. Mit seinen fortschrittlichen Targeting-Funktionen ermöglicht Facebook Ads Unternehmen, bestimmte demografische Gruppen, Interessen, Verhaltensweisen und Standorte anzusprechen.

**Topics**
+ [AWS Glue Unterstützung für Facebook-Werbeanzeigen](facebook-ads-support.md)
+ [Richtlinien, welche die API-Vorgänge für die Erstellung und Verwendung von Verbindungen enthalten](facebook-ads-configuring-iam-permissions.md)
+ [Konfigurieren von Facebook Ads](facebook-ads-configuring.md)
+ [Konfigurieren von Facebook Ads-Verbindungen](facebook-ads-configuring-connections.md)
+ [Lesen aus Facebook Ads-Entitäten](facebook-ads-reading-from-entities.md)
+ [Facebook Ads-Verbindungsoptionen](facebook-ads-connection-options.md)
+ [Einschränkungen und Hinweise für den Facebook Ads-Connector](facebook-ads-connector-limitations.md)

# AWS Glue Unterstützung für Facebook-Werbeanzeigen
<a name="facebook-ads-support"></a>

AWS Glue unterstützt Facebook-Werbung wie folgt:

**Als Quelle unterstützt?**  
Ja. Sie können AWS Glue ETL-Jobs verwenden, um Daten aus Facebook-Anzeigen abzufragen.

**Als Ziel unterstützt?**  
Nein.

**Unterstützte Versionen der Facebook Ads-API**  
Die folgenden Versionen der Facebook Ads-API werden unterstützt:
+ v17.0
+ v18.0
+ v19.0
+ v20.0

# Richtlinien, welche die API-Vorgänge für die Erstellung und Verwendung von Verbindungen enthalten
<a name="facebook-ads-configuring-iam-permissions"></a>

Die folgende Beispielrichtlinie beschreibt die erforderlichen AWS IAM-Berechtigungen für das Erstellen und Verwenden von Verbindungen. Wenn Sie eine neue Rolle erstellen, erstellen Sie eine Richtlinie, die Folgendes enthält:

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

****  

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

------

Wenn Sie die oben genannte Methode nicht verwenden möchten, verwenden Sie alternativ die folgenden verwalteten IAM-Richtlinien:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Gewährt Zugriff auf Ressourcen, die verschiedene AWS Glue Prozesse benötigen, um in Ihrem Namen ausgeführt zu werden. Zu diesen Ressourcen gehören AWS Glue Amazon S3, IAM, CloudWatch Logs und Amazon EC2. Wenn Sie die in dieser Richtlinie angegebene Benennungskonvention für Ressourcen einhalten, verfügen AWS Glue Prozesse über die erforderlichen Berechtigungen. Diese Richtlinie wird typischerweise mit Rollen verknüpft, die bei der Definition von Crawlern, Aufträgen und Entwicklungsendpunkten angegeben werden.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Gewährt vollen Zugriff auf AWS Glue Ressourcen, wenn eine Identität, der die Richtlinie zugeordnet ist, die AWS Managementkonsole verwendet. Wenn Sie die Namenskonvention für Ressourcen befolgen, die in dieser Richtlinie angegeben sind, haben Benutzer alle Konsolenfunktionalitäten. Diese Richtlinie wird normalerweise Benutzern der AWS Glue Konsole zugewiesen.

# Konfigurieren von Facebook Ads
<a name="facebook-ads-configuring"></a>

Bevor du Daten von Facebook-Werbeanzeigen übertragen kannst, musst du die folgenden Anforderungen erfüllen: AWS Glue 

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

Die folgenden Anforderungen sind Mindestanforderungen:
+ Auf Facebook-Standardkonten wird direkt über Facebook zugegriffen.
+ Zur Generierung des Zugriffstokens ist eine Benutzerauthentifizierung erforderlich.
+ Der Facebook Ads SDK-Connector wird den OAuth Ablauf des *Benutzerzugriffstokens* implementieren.
+ Wir verwenden OAuth2 2.0, um unsere API-Anfragen für Facebook-Anzeigen zu authentifizieren. Diese webbasierte Authentifizierung fällt unter die Multi-Faktor-Authentifizierung (MFA)-Architektur, die eine Obergruppe von 2FA darstellt.
+ Der Benutzer muss Berechtigungen für den Zugriff auf die Endpunkte gewähren. Für den Zugriff auf die Benutzerdaten erfolgt die Autorisierung des Endpunkts über [Berechtigungen](https://developers.facebook.com/docs/permissions) und [Features](https://developers.facebook.com/docs/features-reference).

## 2.0-Anmeldeinformationen erhalten OAuth
<a name="facebook-ads-configuring-creating-facebook-ads-oauth2-credentials"></a>

Informationen zum Beziehen von API-Anmeldeinformationen für authentifizierte Aufrufe Ihrer Instance finden Sie unter [REST-API](https://developers.facebook-ads.com/rest-api/) im Entwicklerleitfaden von Facebook Ads.

# Konfigurieren von Facebook Ads-Verbindungen
<a name="facebook-ads-configuring-connections"></a>

Facebook Ads unterstützt den Zuschusstyp AUTHORIZATION\$1CODE für. OAuth2
+ Diese Art der Gewährung wird als dreigeteilt betrachtet, OAuth da sie darauf beruht, dass Benutzer zur Authentifizierung des Benutzers an den Autorisierungsserver eines Drittanbieters weitergeleitet werden. Er wird verwendet, wenn Verbindungen über die Konsole hergestellt werden. AWS Glue 
+ Nutzer können sich weiterhin dafür entscheiden, ihre eigene verbundene App in Facebook Ads zu erstellen und ihre eigene Client-ID und ihr eigenes Client-Geheimnis anzugeben, wenn sie Verbindungen über die AWS Glue Konsole herstellen. In diesem Szenario werden sie weiterhin zu Facebook Ads weitergeleitet, um sich anzumelden und den Zugriff auf ihre Ressourcen AWS Glue zu autorisieren.
+ Dieser Gewährungstyp führt zu einem Zugriffstoken. Ein Systembenutzer-Token mit Ablauf ist ab dem Datum der Generierung oder Aktualisierung 60 Tage lang gültig. Um Kontinuität zu gewährleisten, muss der Entwickler das Zugriffstoken innerhalb von 60 Tagen aktualisieren. Andernfalls verfällt das Zugriffstoken und der Entwickler muss ein neues beziehen, um den API-Zugriff wiederherzustellen. Siehe [Aktualisieren des Zugriffstokens](https://developers.facebook.com/docs/marketing-api/system-users/install-apps-and-generate-tokens/).
+ Die öffentliche Dokumentation von Facebook Ads zur Erstellung einer verbundenen App für den OAuth Autorisierungscodefluss findest du [unter OAuth Using 2.0 to Access Google APIs](https://developers.google.com/identity/protocols/oauth2) im Leitfaden Google für Entwickler.

So konfigurieren Sie eine Facebook Ads-Verbindung:

1. Erstellen Sie in AWS Glue Glue Studio eine Verbindung unter **Datenverbindungen**, indem Sie die folgenden Schritte ausführen:

   1. Wählen Sie für den **Verbindungstyp** Facebook Ads aus.

   1. Geben Sie die `INSTANCE_URL` der Facebook Ads-Instance an, mit der Sie eine Verbindung herstellen möchten.

   1. Wählen Sie die AWS IAM-Rolle aus, die die folgenden Aktionen übernehmen AWS Glue kann und über Berechtigungen verfügt:

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

****  

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

------

   1. Wählen Sie `secretName` die aus, in die Sie für diese Verbindung die Token einfügen AWS Glue möchten.

   1. Wählen Sie die Netzwerkoptionen aus, wenn Sie Ihr Netzwerk verwenden möchten.

1. Erteilen Sie der mit Ihrem AWS Glue Job verknüpften IAM-Rolle `secretName` Leserechte.

# Lesen aus Facebook Ads-Entitäten
<a name="facebook-ads-reading-from-entities"></a>

**Voraussetzung**

Ein Facebook Ads-Objekt, aus dem gelesen werden soll. Sie benötigen den Objektnamen. Die folgenden Tabellen zeigen die unterstützten Entitäten.

**Unterstützte Entitäten für Quelle**:


| Entität | Kann gefiltert werden | Unterstützt Limit | Unterstützt „Sortieren nach“ | Unterstützt „\$1 auswählen“ | Unterstützt Partitionierung | 
| --- | --- | --- | --- | --- | --- | 
| Kampagne | Ja | Ja | Nein | Ja | Ja | 
| Ad Set | Ja | Ja | Nein | Ja | Ja | 
| Ads | Ja | Ja | Nein | Ja | Ja | 
| Ad Creative | Nein | Ja | Nein | Ja | Nein | 
| Insights – Account | Nein | Ja | Nein | Ja | Nein | 
| Adaccounts | Ja | Ja | Nein | Ja | Nein | 
| Insights – Ad | Ja | Ja | Nein | Ja | Ja | 
| Einblicke - AdSet | Ja | Ja | Nein | Ja | Ja | 
| Insights – Campaign | Ja | Ja | Nein | Ja | Ja | 

**Beispiel:**

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

## Facebook Ads-Entitäts- und Felddetails
<a name="facebook-ads-reading-entity-and-field-details"></a>

Weitere Informationen zu den Entitäten und Felddetails finden Sie unter:
+ [Anzeigenkonto](https://developers.facebook.com/docs/marketing-api/reference/ad-account)
+ [Kampagne](https://developers.facebook.com/docs/marketing-api/reference/ad-campaign-group)
+ [Ad Set](https://developers.facebook.com/docs/marketing-api/reference/ad-campaign)
+ [Ad](https://developers.facebook.com/docs/marketing-api/reference/adgroup)
+ [Ad Creative](https://developers.facebook.com/docs/marketing-api/reference/ad-creative)
+ [Insight Ad Account](https://developers.facebook.com/docs/marketing-api/reference/ad-account/insights)
+ [Insights Ads](https://developers.facebook.com/docs/marketing-api/reference/adgroup/insights/)
+ [Einblicke AdSets](https://developers.facebook.com/docs/marketing-api/reference/ad-campaign/insights)
+ [Insights Campaigns](https://developers.facebook.com/docs/marketing-api/reference/ad-campaign-group/insights)

Weitere Informationen finden Sie unter [Marketing-API](https://developers.facebook.com/docs/marketing-api/reference/v21.0).

**Anmerkung**  
Die Datentypen Struktur und Liste werden in der Antwort der Connectors in den Datentyp Zeichenfolge konvertiert.

## Partitionierung von Abfragen
<a name="facebook-ads-reading-partitioning-queries"></a>

Sie können die zusätzlichen Spark-Optionen `PARTITION_FIELD`,`LOWER_BOUND`, `UPPER_BOUND` und `NUM_PARTITIONS` angeben, wenn Sie Parallelität in Spark nutzen möchten. Mit diesen Parametern wird die ursprüngliche Abfrage in `NUM_PARTITIONS` Unterabfragen aufgeteilt, die von Spark-Aufgaben gleichzeitig ausgeführt werden können.
+ `PARTITION_FIELD`: der Name des Feldes, das zur Partitionierung der Abfrage verwendet werden soll.
+ `LOWER_BOUND`: ein **inklusiver** Untergrenzwert des ausgewählten Partitionsfelds.

  Für dieses DateTime Feld akzeptieren wir das Spark-Zeitstempelformat, das in Spark-SQL-Abfragen verwendet wird.

  Beispiel für gültigen Wert:

  ```
  "2022-01-01"
  ```
+ `UPPER_BOUND`: ein **exklusiver** Obergrenzwert des ausgewählten Partitionsfelds.
+ `NUM_PARTITIONS`: Die Anzahl an Partitionen.

Beispiel:

```
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"
    }
```

# Facebook Ads-Verbindungsoptionen
<a name="facebook-ads-connection-options"></a>

Im Folgenden sind Verbindungsoptionen für Facebook Ads aufgeführt:
+ `ENTITY_NAME` (Zeichenfolge) – (Erforderlich) Zum Lesen verwendet. Der Name Ihres Objekts in Facebook Ads.
+ `API_VERSION` (Zeichenfolge) – (Erforderlich) Zum Lesen verwendet. Version der REST-API von Facebook Ads, die Sie verwenden möchten. Beispiel: v1.
+ `SELECTED_FIELDS` (Liste<Zeichenfolge>) – Standard: leer(SELECT \$1). Zum Lesen verwendet. Spalten, die Sie für das Objekt auswählen möchten.
+ `FILTER_PREDICATE`(Zeichenfolge) – Standard: leer. Zum Lesen verwendet. Muss das Spark-SQL-Format aufweisen.
+ `QUERY`(Zeichenfolge) – Standard: leer Zum Lesen verwendet. Vollständige Spark-SQL-Abfrage.
+ `PARTITION_FIELD`(Zeichenfolge) – Zum Lesen verwendet. Feld, das zur Partitionierung der Abfrage verwendet werden soll.
+ `LOWER_BOUND`(Zeichenfolge) – Zum Lesen verwendet. Ein inklusiver Untergrenzwert des ausgewählten Partitionsfelds.
+ `UPPER_BOUND`(Zeichenfolge) – Zum Lesen verwendet. Ein exklusiver Obergrenzwert des ausgewählten Partitionsfelds. 
+ `NUM_PARTITIONS`(Ganzzahl) – Standard: 1. Zum Lesen verwendet. Anzahl der zu lesenden Partitionen.
+ `TRANSFER_MODE`(Zeichenfolge) – Standard: SYNC. Für asynchrones Lesen verwendet.

# Einschränkungen und Hinweise für den Facebook Ads-Connector
<a name="facebook-ads-connector-limitations"></a>

Im Folgenden finden Sie Einschränkungen oder Hinweise für den Facebook Ads-Connector:
+ Da Facebook Ads dynamische Metadaten unterstützt, können alle Felder abgefragt werden. Alle Felder unterstützen die Filterung, und die Datensätze werden abgerufen, sofern die Daten verfügbar sind. Andernfalls gibt Facebook eine Antwort mit dem Status „Bad Request“ (400) und einer entsprechenden Fehlermeldung zurück.
+ Die Anzahl der Anrufe einer App ist die Anzahl der Anrufe, die ein Benutzer innerhalb eines fortlaufenden einstündigen Zeitfensters tätigen kann, 200 multipliziert mit der Anzahl der Benutzer. Einzelheiten zu den Ratenlimits finden Sie unter [Ratenlimits](https://developers.facebook.com/docs/graph-api/overview/rate-limiting/) und [Ratenlimits für geschäftliche Anwendungsfälle](https://developers.facebook.com/docs/graph-api/overview/rate-limiting/#buc-rate-limits).