Come integrare GCM con Mobile EngagementHow to Integrate GCM with Mobile Engagement

Importante

Prima di usare questa guida, è necessario eseguire la procedura di integrazione descritta nel documento relativo all'integrazione di Engagement in Android.You must follow the integration procedure described in the How to Integrate Engagement on Android document before following this guide.

Il documento è utile solo se è già stato integrato il modulo di copertura e si intende eseguire il push dei dispositivi Google Play.This document is useful only if you already integrated the Reach module and plan to push Google Play devices. Per integrare le campagne Reach nell'applicazione, leggere prima l'articolo relativo all'integrazione del servizio Reach di Engagement in Android.To integrate Reach campaigns in your application, please read first How to Integrate Engagement Reach on Android.

IntroduzioneIntroduction

L'integrazione di GCM consente il push dell'applicazione.Integrating GCM allows your application to be pushed.

I payload GCM di cui viene eseguito il push sull’SDK contengono sempre la chiave azme nell'oggetto dati.GCM payloads pushed to the SDK always contain the azme key in the data object. Pertanto se si usa GCM per uno scopo diverso nell'applicazione, è possibile filtrare le notifiche push in base a tale chiave.Thus if you use GCM for another purpose in your application, you can filter pushes based on that key.

Importante

Solo i dispositivi che eseguono Android 2.2 o versioni successive, con Google Play installato e con la connessione a Google in background abilitata, possono essere riattivati da GCM. È comunque possibile integrare questo codice in modo sicuro in dispositivi non supportati (usa solo elementi di tipo Intent).Only devices running Android 2.2 or above, having Google Play installed and having Google background connection enabled can be pushed using GCM; however, you can integrate this code safely on unsupported devices (it just uses intents).

Creare un progetto Google Cloud Messaging con chiave APICreate a Google Cloud Messaging project with API key

Creare un progetto Google Firebase con chiave APICreate a Google Firebase project with API key

Nota

Per completare questa procedura, è necessario disporre di un account Google con un indirizzo di posta elettronica verificato.To complete this procedure, you must have a Google account that has a verified email address. Per creare un nuovo account Google, visitare il sito Web all'indirizzo accounts.google.com.To create a new Google account, go to accounts.google.com.

  1. Passare alla console di Firebase ed eseguire l'accesso con le credenziali dell'account Google.Navigate to the Firebase Console and sign-in with your Google account credentials.
  2. Fare clic sul pulsante Create new Project (Crea nuovo progetto) per creare un nuovo progetto.Click on Create new Project button to create a new project. In alternativa, è possibile fare clic su Import Google Project (Importa progetto di Google) per importare un progetto esistente.Alternatively, you can also click on Import Google Project to import and existing project.
  3. Se si è scelto di creare un nuovo progetto, specificare un nome progetto e scegliere un paese/area geografica.If you opted for creating a new project then provide a Project name and choose a Country/Region.
  4. Nella pagina del progetto fare clic sull'ingranaggio delle impostazioni nell'angolo superiore sinistro.On your project page, click the Settings cog wheel at the top left. Nel menu fare clic su Project settings (Impostazioni del progetto).In the menu, click on Project settings.
  5. Fare clic sulla scheda Cloud Messaging in alto.Click on the Cloud Messaging tab at the top.
  6. Prendere nota dei valori di Server Key (Chiave server) e Sender ID (ID mittente), che verranno usati più avanti nel file manifesto Android.Make a note of the Server Key and the Sender ID that you will use later in the Android Manifest file.

Integrazione dell'SDKSDK integration

Gestione delle registrazioni dei dispositiviManaging device registrations

Ogni dispositivo deve inviare un comando di registrazione ai server Google; in caso contrario non sarà raggiungibile.Each device must send a registration command to the Google servers, otherwise they can't be reached.

Un dispositivo può anche annullare la registrazione alle notifiche GCM (la registrazione del dispositivo viene annullata automaticamente se l'applicazione viene disinstallata).A device can also unregister from GCM notifications (the device is automatically unregistered if the application is uninstalled).

Se non si usa Google Play SDK oppure se l'Intent di registrazione non viene inviato manualmente, è possibile fare in modo che Engagement registri automaticamente il dispositivo.If you don't use Google Play SDK or you don't already send the registration intent yourself, you can make Engagement register the device automatically for you.

Per abilitare questa funzionalità, aggiungere il codice seguente nel file AndroidManifest.xml, all'interno del tag <application/>:To enable this, add the following to your AndroidManifest.xml file, inside the <application/> tag:

        <!-- If only 1 sender, don't forget the \n, otherwise it will be parsed as a negative number... -->
        <meta-data android:name="engagement:gcm:sender" android:value="<Your Google Project Number>\n" />

Comunicare l'ID di registrazione al servizio push di Engagement e ricevere le notificheCommunicate registration id to the Engagement Push service and receive notifications

Per comunicare l'ID di registrazione del dispositivo al servizio push di Engagement e ricevere le relative notifiche, aggiungere quanto segue al file AndroidManifest.xml, all'interno del tag <application/> (anche se si gestiscono autonomamente le registrazioni dei dispositivi):In order to communicate the registration id of the device to the Engagement Push service and receive its notifications, add the following to your AndroidManifest.xml file, inside the <application/> tag (even if you manage device registrations yourself):

        <receiver android:name="com.microsoft.azure.engagement.gcm.EngagementGCMEnabler"
          android:exported="false">
          <intent-filter>
            <action android:name="com.microsoft.azure.engagement.intent.action.APPID_GOT" />
          </intent-filter>
        </receiver>

        <receiver android:name="com.microsoft.azure.engagement.gcm.EngagementGCMReceiver" android:permission="com.google.android.c2dm.permission.SEND">
          <intent-filter>
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <category android:name="<your_package_name>" />
          </intent-filter>
        </receiver>

Assicurarsi di avere le seguenti autorizzazioni nel file AndroidManifest.xml (dopo il tag </application>).Ensure you have the following permissions in your AndroidManifest.xml (after the </application> tag).

        <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
        <uses-permission android:name="<your_package_name>.permission.C2D_MESSAGE" />
        <permission android:name="<your_package_name>.permission.C2D_MESSAGE" android:protectionLevel="signature" />

Concedere a Mobile Engagement l'accesso alla chiave API GCMGrant Mobile Engagement access to your GCM API Key

Seguire questa guida per concedere a Mobile Engagement l'accesso alla chiave API GCM.Follow this guide to grant Mobile Engagement access to your GCM API Key.