

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 a Google Analytics 4
<a name="connecting-to-googleanalytics"></a>

 Google Analytics 4 è un servizio di analisi che monitora e riporta le metriche relative alle interazioni dei visitatori con le tue app e i tuoi siti web. Queste metriche includono le visualizzazioni di pagina, gli utenti attivi e gli eventi. Se sei un utente di Google Analytics 4, puoi connetterti AWS Glue al tuo account Google Analytics 4. Puoi usare Google Analytics 4 come origine dati nei tuoi processi ETL. Esegui questi processi per trasferire dati da Google Analytics 4 ai AWS servizi o ad altre applicazioni supportate. 

**Topics**
+ [

# AWS Glue supporto per Google Analytics 4
](googleanalytics-support.md)
+ [

# Policy contenenti le operazioni API per creare e utilizzare le connessioni
](googleanalytics-configuring-iam-permissions.md)
+ [

# Configurazione di Google Analytics 4
](googleanalytics-configuring.md)
+ [

# Configurazione delle connessioni di Google Analytics 4
](googleanalytics-configuring-connections.md)
+ [

# Lettura dalle entità di Google Analytics 4
](googleanalytics-reading-from-entities.md)
+ [

# Opzioni di connessione di Google Analytics 4
](googleanalytics-connection-options.md)
+ [

# Creazione di un account Google Analytics 4
](googleanalytics-create-account.md)
+ [

# Passaggi per creare un'app client e credenziali OAuth 2.0
](googleanalytics-client-app-oauth-credentials.md)
+ [

# Considerazioni e limitazioni
](googleanalytics-connector-limitations.md)

# AWS Glue supporto per Google Analytics 4
<a name="googleanalytics-support"></a>

AWS Glue supporta Google Analytics 4 come segue:

**Supportato come origine?**  
Sì. Puoi utilizzare i job AWS Glue ETL per interrogare i dati di Google Analytics 4.

**Supportato come destinazione?**  
No.

**Versioni dell'API di Google Analytics 4 supportate**  
 v1 Beta. 

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

 La seguente politica di esempio descrive le AWS autorizzazioni 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": "*"
    }
  ]
}
```

------

È anche possibile utilizzare le seguenti policy IAM per autorizzare l'accesso:
+  [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Garantisce l'accesso alle risorse che diversi AWS Glue processi richiedono per l'esecuzione per conto dell'utente. Queste risorse includono Amazon S3 AWS Glue, 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 necessarie. 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 Google Analytics 4
<a name="googleanalytics-configuring"></a>

Prima di poter AWS Glue utilizzare il trasferimento da Google Analytics 4, devi soddisfare questi requisiti:

## Requisiti minimi
<a name="googleanalytics-configuring-min-requirements"></a>
+  Hai un account Google Analytics con uno o più flussi di dati che raccolgono i dati che desideri trasferire. 
+  Hai un account Google Cloud Platform e un progetto Google Cloud. 
+  Nel tuo progetto Google Cloud, hai abilitato quanto segue APIs: 
  +  API Google Analytics 
  +  API di amministrazione di Google Analytics 
  +  API di dati di Google Analytics 
+  Nel tuo progetto Google Cloud, hai configurato una schermata di OAuth consenso per gli utenti esterni. Per informazioni sulla schermata di OAuth consenso, consulta [Configurazione della schermata di OAuth consenso](https://support.google.com/cloud/answer/10311615#) nella guida della console di Google Cloud Platform. 
+  Nel tuo progetto Google Cloud, hai configurato un ID client OAuth 2.0. Per ulteriori informazioni, consulta [Configurazione OAuth 2.0](https://support.google.com/cloud/answer/6158849?hl=en#zippy=). 

 Se soddisfi questi requisiti, sei pronto per connetterti AWS Glue al tuo account Google Analytics 4. 

# Configurazione delle connessioni di Google Analytics 4
<a name="googleanalytics-configuring-connections"></a>

Per configurare una connessione a Google Sheet:

1.  In AWS Secrets Manager, crea un segreto con i seguenti dettagli. È necessario creare un segreto per ogni connessione in AWS Glue. 

   1.  Per il tipo di AuthorizationCode sovvenzione: 
      +  Per le app connesse gestite dal cliente: il segreto deve contenere l'app connessa Consumer Secret con `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` come chiave. 

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

   1. Quando selezioni un **tipo di connessione**, seleziona Google Analytics 4.

   1. Fornisci `INSTANCE_URL` di Google Analytics 4 a cui desideri connetterti.

   1.  Seleziona il ruolo 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. 

 Tipo di concessione `AUTHORIZATION_CODE`. 

 Questo tipo di concessione è considerato «a tre gambe» 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 La AWS Glue Console reindirizzerà l'utente a Google Analytics 4, dove l'utente deve effettuare il login e consentire AWS Glue le autorizzazioni richieste per accedere alla propria istanza di Google Analytics 4. 

 Gli utenti possono comunque scegliere di creare la propria app connessa in Google Analytics 4 e fornire il proprio ID client e il segreto del client quando creano connessioni tramite la AWS Glue Console. In questo scenario, verranno comunque reindirizzati a Google Analytics 4 per accedere e autorizzare l'accesso AWS Glue alle proprie risorse. 

 Questo tipo di concessione genera un token di aggiornamento e un token di accesso. Il token di accesso dura poco tempo e può essere aggiornato automaticamente senza l'interazione dell'utente utilizzando il token di aggiornamento. 

 Per ulteriori informazioni, consulta [Utilizzo di Auth 2.0 per accedere a Google](https://developers.google.com/identity/protocols/oauth2). APIs 

# Lettura dalle entità di Google Analytics 4
<a name="googleanalytics-reading-from-entities"></a>

 **Prerequisiti** 
+  Un oggetto di Google Analytics 4 da cui si desidera leggere. Consulta la tabella delle entità supportate qui di seguito per verificare le entità disponibili. 

 **Entità supportate** 


| Entità | Può essere Filtrato | Supporta Limite | Supporta Ordina per | Supporta Seleziona \$1 | Supporta il partizionamento | 
| --- | --- | --- | --- | --- | --- | 
| Real-Time Report | Sì  | Sì | Sì | Sì | No | 
| Core Report | Sì  | Sì | Sì | Sì | Sì | 

 **Esempio** 

```
googleAnalytics4_read = glueContext.create_dynamic_frame.from_options(
    connection_type="GoogleAnalytics4",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v1beta"
    }
```

 **Dettagli sull'entità e sul campo di Google Analytics 4** 


| Entità | Campo | Tipo di dati | Operatori supportati | 
| --- | --- | --- | --- | 
| Core Report | Campi dinamici |  |  | 
| Core Report | Campi dimensionali | Stringa | LIKE, = | 
| Core Report | Campi dimensionali | Data | LIKE, = | 
| Core Report | Campi metrici | Stringa | >, <, >=, <=, = BETWEEN | 
| Core Report | Dimensioni personalizzate e campi metrici personalizzati | Stringa | N/A | 
| Real-Time Report | appVersion | Stringa | LIKE, = | 
| Real-Time Report | audienceId | Stringa | LIKE, = | 
| Real-Time Report | audienceName | Stringa | LIKE, = | 
| Real-Time Report | città | Stringa | LIKE, = | 
| Real-Time Report | cityId | Stringa | LIKE, = | 
| Real-Time Report | paese | Stringa | LIKE, = | 
| Real-Time Report | countryId | Stringa | LIKE, = | 
| Real-Time Report | deviceCategory | Stringa | LIKE, = | 
| Real-Time Report | eventName | Stringa | LIKE, = | 
| Real-Time Report | minutesAgo | Stringa | LIKE, = | 
| Real-Time Report | platform | Stringa | LIKE, = | 
| Real-Time Report | streamId | Stringa | LIKE, = | 
| Real-Time Report | streamName | Stringa | LIKE, = | 
| Real-Time Report | unifiedScreenName | Stringa | LIKE, = | 
| Real-Time Report | activeUsers | Stringa | >, <, >=, <=, = BETWEEN | 
| Real-Time Report | conversions | Stringa | >, <, >=, <=, = BETWEEN | 
| Real-Time Report | eventCount | Stringa | >, <, >=, <=, = BETWEEN | 
| Real-Time Report | screenPageViews | Stringa | >, <, >=, <=, = BETWEEN | 

 **Query di partizionamento** 

1.  **Partizione basata su filtri** 

    Se si desidera utilizzare la simultaneità in Spark, possono essere fornite opzioni Spark `PARTITION_FIELD`, `LOWER_BOUND`, `UPPER_BOUND`, `NUM_PARTITIONS` aggiuntive. 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 la data, accettiamo il formato di data di Spark utilizzato nelle query di Spark SQL. Esempio di valori validi: `"2024-02-06"`. 
   +  `UPPER_BOUND`: un valore limite superiore esclusivo del campo di partizione scelto. 
   +  `NUM_PARTITIONS`: numero di partizioni. 

    **Esempio** 

   ```
   googleAnalytics4_read = glueContext.create_dynamic_frame.from_options(
       connection_type="GoogleAnalytics4",
       connection_options={
           "connectionName": "connectionName",
           "ENTITY_NAME": "entityName",
           "API_VERSION": "v1beta",
           "PARTITION_FIELD": "date"
           "LOWER_BOUND": "2022-01-01"
           "UPPER_BOUND": "2024-01-02"
           "NUM_PARTITIONS": "10"
       }
   ```

1.  **Partizione basata su record** 

    Se desideri utilizzare la concorrenza in Spark, possono essere fornite le opzioni aggiuntive `NUM_PARTITIONS`. Con questi parametri, la query originale viene suddivisa in `NUM_PARTITIONS` query secondarie che possono essere eseguite contemporaneamente dalle attività Spark. 
   +  `NUM_PARTITIONS`: numero di partizioni. 

    **Esempio** 

   ```
   googleAnalytics4_read = glueContext.create_dynamic_frame.from_options(
       connection_type="GoogleAnalytics4",
       connection_options={
           "connectionName": "connectionName",
           "ENTITY_NAME": "entityName",
           "API_VERSION": "v1beta",
           "NUM_PARTITIONS": "10"
       }
   ```

# Opzioni di connessione di Google Analytics 4
<a name="googleanalytics-connection-options"></a>

Le seguenti sono le opzioni di connessione per Google Analytics 4:
+  `ENTITY_NAME`(String): (obbligatorio) utilizzato per la lettura. Il nome del tuo oggetto in Google Analytics 4. 
+  `API_VERSION`(String): (obbligatorio) utilizzato per la lettura. La versione dell'API Rest di Google Analytics 4 che desideri utilizzare. 
+  `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. 
+  `INSTANCE_URL`(Numero intero): utilizzato per la lettura. (Facoltativo) 

# Creazione di un account Google Analytics 4
<a name="googleanalytics-create-account"></a>

 Segui i passaggi per creare un account Google Analytics 4: [https://support.google.com/analytics/answer/9304153? hl=it](https://support.google.com/analytics/answer/9304153?hl=en) 

# Passaggi per creare un'app client e credenziali OAuth 2.0
<a name="googleanalytics-client-app-oauth-credentials"></a>

 Per ulteriori informazioni, consulta [la documentazione dell'API di Google Analytics4](https://developers.google.com/analytics/devguides/reporting/data/v1). 

1.  Crea e configura il tuo account accedendo all'[account di Google Analytics](https://analytics.google.com/) con le tue credenziali. Quindi, vai su **Amministratore** > **Crea account**. 

1.  Crea una proprietà per l'account che hai creato scegliendo **Crea proprietà**. Imposta la proprietà con i dettagli richiesti. Una volta forniti tutti i dettagli, verrà generato l'ID della proprietà corrispondente. 

1.  Aggiungi il flusso di dati per la proprietà creata scegliendo **Flussi di dati** > **Aggiungi flusso** > **Web** dal menu a discesa. Fornisci i dettagli del sito Web come l'URL e altri campi obbligatori. Dopo aver fornito tutti i dettagli, verranno generati l'**ID dello stream** e l'**ID di misurazione** corrispondenti. 

1.  Configura Google Analytics sul tuo sito Web copiando l'ID di misurazione e aggiungendolo alla configurazione del tuo sito Web. 

1.  Crea un report da Google Analytics accedendo a **Report** e generando il report richiesto. 

1.  Autorizza la tua app accedendo a [console.cloud.google.com]( https://console.cloud.google.com) e cerca l'API dei dati di Google Analytics, quindi abilitala. 

   1.  Vai alla pagina API e servizi e scegli **Credenziali** > **setup OAuth 2.0** Client. IDs 

   1.  Fornisci l'URL di reindirizzamento aggiungendo l'URL di AWS Glue reindirizzamento. 

1.  Copia l'ID client e il segreto client, che richiederanno ulteriori informazioni per la creazione della connessione. 

# Considerazioni e limitazioni
<a name="googleanalytics-connector-limitations"></a>

Di seguito sono riportate le limitazioni per il connettore di Google Analytics 4.
+  Per l'entità Core Report, è consentito inviare solo 9 campi dimensionali e 10 campi metrici in una richiesta. Se viene superato il numero consentito di campi, la richiesta avrà esito negativo e il connettore genererà un messaggio di errore. 
+  Per l'entità Real-Time Report, è consentito inviare solo 4 campi dimensionali in una richiesta. Se viene superato il numero consentito di campi, la richiesta avrà esito negativo e il connettore genererà un messaggio di errore. 
+  Google Analytics 4 è uno strumento gratuito in versione beta, quindi ci saranno aggiornamenti regolari sulle nuove funzionalità, sul miglioramento delle entità, sull'aggiunta di nuovi campi e sulla deprecazione dei campi esistenti. 
+  I campi Core Report vengono compilati in maniera dinamica, quindi è possibile aggiungere, deprecare e rinominare i campi e imporre loro nuovi limiti in qualsiasi momento. 
+  La data di inizio predefinita è 30 giorni e la data di fine è ieri (un giorno prima della data corrente); queste date verranno sostituite nel codice di espressione del filtro se l'utente ha impostato il valore O se il flusso è incrementale. 
+  Secondo la documentazione, l'entità di report in tempo reale restituisce 10.000 record se il limite non viene superato nella richiesta, altrimenti l'API restituisce un massimo di 250.000 righe per richiesta, indipendentemente dal numero richiesto. Per ulteriori informazioni, vedere [Metodo: proprietà. runRealtimeReport](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/runRealtimeReport)nella documentazione di Google Analytics. 
+  L'entità Real-Time Report non supporta la partizione basata su record in quanto non supporta l'impaginazione. Inoltre, non supporta la partizione basata sul campo poiché nessuno dei campi soddisfa i criteri definiti. 
+  A causa della limitazione del numero di campi che possono essere trasferiti in una richiesta. Stiamo impostando i campi dimensionali e metrici predefiniti entro i limiti designati. Se si sceglie “seleziona tutto”, verranno recuperati solo i dati di quei campi predeterminati. 
  +  Core Report 
    +  In base alle limitazioni di SAAS, le richieste sono consentite solo fino a 9 dimensioni e fino a 10 metriche. In altre parole, una richiesta può contenere un massimo di 19 campi (metriche \$1 dimensione). 
    +  Riguardo all'implementazione: se l'utente utilizza SELECT\$1ALL o se seleziona più di 25 campi, i campi predefiniti verranno passati nella richiesta. 
    +  I seguenti campi sono considerati campi predefiniti per Core Report: «country», «city», «eventName», «cityID», «browser», «date», «currencyCode», «deviceCategory», «transactionID», active1 «, «active28», «active7», «activeUsers», "«," User», "DayUsers«, «EngagedSessions», DayUsers «EventCount», DayUsers «EngagementRate». averagePurchaseRevenue averageRevenuePer averageSessionDuration 
  +  Real-Time Report 
    +  Come da limitazione, le richieste SAAS sono consentite fino a 4 dimensioni. 
    +  Se l'utente passa SELECT\$1ALL o se seleziona più di 15 campi, i campi predefiniti verranno passati nella richiesta. 
    +  I seguenti campi sono considerati campi predefiniti per RealTime Report: «country», «deviceCategory», «city», «cityID», «activeUsers», «conversions», «eventCount», "screenPageViews». 
+  Nell'entità Core Report, se la partizione sul campo data e il filtro su startDate sono presenti contemporaneamente. In tal caso il valore dateRange viene sovrascritto con il valore del filtro startDate; tuttavia, poiché la partizione deve sempre essere la priorità, si elimina il filtro startDate se la partizione nel campo della data è già presente. 
+  Poiché ora anche cohortSpecs fa parte del corpo di richiesta di Core Report, abbiamo migliorato l'attuale entità Core Report per includere il supporto per l'attributo cohortSpec. Nel corpo della richiesta cohortSpecs, quasi tutti i campi richiedono l'input dell'utente. Per risolvere questo problema, abbiamo impostato valori predefiniti per questi valori attributes/fields e fornito all'utente la possibilità di sovrascrivere questi valori, se necessario.     
<a name="google-analytics-connector-limitations-table"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/googleanalytics-connector-limitations.html)
+  Puoi anche passare tutti questi filtri insieme o con altri filtri. 
  +  Esempio 1: filterPredicate: startDate compresa tra “09/05/2023” e “10/05/2023” E startOffset=1 E endOffset=2 E granularity="SETTIMANALE” 
  +  Esempio 2: filterPredicate: city=”xyz” E startOffset=1 E endOffset=2 E granularity="SETTIMANALE” 
+  Nella richiesta di coorte: 
  +  Se nella richiesta viene inserito cohortNthMonth '', internamente il valore di granularità verrà impostato come «MENSILE» 
  +  Allo stesso modo, se viene passato cohortNthWeek '', il valore di granularità verrà impostato come «WEEKLY» 
  +  Inoltre, per 'cohortNthDay' il valore di granularità sarà impostato come «GIORNALIERO». Per ulteriori informazioni, consulta: 
    +  [ https://developers.google.com/analytics/devguides/reporting/data/v1/advanced ](https://developers.google.com/analytics/devguides/reporting/data/v1/advanced) 
    +  [ https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/CohortSpec ](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/CohortSpec) 
  +  È prevista la possibilità per l'utente di sovrascrivere il valore predefinito di dateRange e di granularità. Fare riferimento alla tabella precedente. 