Per pubblicare annunci e generare entrate, integra Google Mobile Ads SDK for React Native nella tua app React Native. Questa guida illustra l'installazione e l'inizializzazione di Google Mobile Ads SDK for React Native e la selezione di un formato dell'annuncio.
Prerequisiti
Prima di continuare, procurati quanto segue:
- React Native 0.85.0 o versioni successive.
- Un account AdMob e un ID app. Per ottenere un ID app, consulta Configura un'app in AdMob.
I seguenti elementi Android:
- Android con livello API 24 o versioni successive.
- L'ultima versione di Android Studio.
- Plug-in Android per Gradle (AGP) versione 8.0 o successive.
I seguenti elementi iOS:
- iOS 13.0 o versioni successive.
- Xcode versione 16.0 o successive e strumenti a riga di comando abilitati.
- CocoaPods
Installa Google Mobile Ads SDK for React Native
Per installare Google Mobile Ads SDK for React Native, segui questi passaggi:
- Scarica la cartella
gma-sdk-react-nativeda Google Drive. Estrai il file ZIP in una directory separata al di fuori della directory del progetto di lavoro. Questo processo potrebbe evitare conflitti con i file di configurazione del progetto.
Nella directory root del progetto, crea una directory
local_packages/.In questa directory, copia il file
mobile-ads-0.1.0.tgz:mkdir -p local_packages cp EXTRACT_DIR/gma-sdk-react-native/google-mobile-ads/mobile-ads-0.1.0.tgz local_packages/Sostituisci EXTRACT_DIR con il percorso della directory in cui hai estratto l'archivio.
Installa il pacchetto con il gestore di pacchetti che preferisci:
npm
npm install ./local_packages/mobile-ads-0.1.0.tgzfilo
yarn add ./local_packages/mobile-ads-0.1.0.tgz
Configura la tua app
Per configurare la tua app con le dipendenze della piattaforma, aggiungi gli ID app AdMob al file app.json della directory principale del progetto.
Per i test, utilizza gli ID delle app monetizzate con AdMob di esempio mostrati nel seguente esempio:
{
"name": "APP_NAME",
"displayName": "APP_NAME",
"googleMobileAds": {
"android_app_id": "ca-app-pub-3940256099942544~3347511713",
"ios_app_id": "ca-app-pub-3940256099942544~1458002511"
}
}
Durante la fase di build, Google Mobile Ads SDK for React Native aggiunge la proprietà android_app_id al file AndroidManifest.xml e la proprietà ios_app_id nel file Info.plist creato come chiave GADApplicationIdentifier.
Per le opzioni specifiche della piattaforma o la configurazione manuale, seleziona una delle seguenti piattaforme:
Android
Se gestisci più configurazioni di build o stai integrando React Native in un'app per Android esistente, aggiungi l'ID app AdMob nell'elemento <application> del file AndroidManifest.xml del progetto anziché nel file app.json:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application>
<!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="SAMPLE_APP_ID"
tools:replace="android:value"/>
</application>
</manifest>
Gradle risolve automaticamente le dipendenze Android durante la fase di build.
iOS
Completa i seguenti passaggi:
Installa le dipendenze di CocoaPods dalla directory
ios/del progetto:pod install --repo-updateIn alternativa, installa le dipendenze CocoaPods dalla directory root del progetto:
npx pod-installIl collegamento automatico di CocoaPods configura lo script della fase di build di Xcode che aggiunge la proprietà
ios_app_iddal fileapp.jsonnel fileInfo.plistcreato.Nel file
Info.plistdell'app, aggiungi una chiaveSKAdNetworkItemsnell'elemento<dict>per Googlecstr6suwn9.skadnetworke seleziona acquirenti di terze parti.L'esempio seguente mostra un file
Info.plistcompleto che contiene l'arraySKAdNetworkItemsrichiesto:Esempio completo
<key>SKAdNetworkItems</key> <array> <dict> <key>SKAdNetworkIdentifier</key> <string>cstr6suwn9.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>4fzdc2evr5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>2fnua5tdw4.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>ydx93a7ass.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>p78axxw29g.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>v72qych5uu.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>ludvb6z3bs.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>cp8zw746q7.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3sh42y64q3.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>c6k4g5qg8m.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>s39g8k73mm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>wg4vff78zm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3qy4746246.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>f38h382jlk.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>hs6bdukanm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>mlmmfzh3r3.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>v4nxqhlyqp.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>wzmmz9fp6w.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>su67r6k2v3.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>yclnxrl5pm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>t38b2kh725.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>7ug5zh24hu.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>gta9lk7p23.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>vutu7akeur.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>y5ghdn5j9k.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>v9wttpbfk9.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>n38lu8286q.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>47vhws6wlr.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>kbd757ywx3.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>9t245vhmpl.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>a2p9lx4jpn.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>22mmun2rn5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>44jx6755aq.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>k674qkevps.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>4468km3ulz.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>2u9pt9hc89.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>8s468mfl3y.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>klf5c3l5u5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>ppxm28t8ap.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>kbmxgpxpgc.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>uw77j35x4d.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>578prtvx9j.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>4dzt52r2t5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>tl55sbb4fm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>c3frkrj4fj.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>e5fvkxwrpn.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>8c4e2ghe7u.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3rd42ekr43.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>97r2b46745.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3qcr597p9d.skadnetwork</string> </dict> </array>
Inizializza Google Mobile Ads SDK for React Native
Prima di caricare gli annunci, chiama il metodo initialize per inizializzare Google Mobile Ads SDK for React Native. Chiama il metodo initialize una volta all'avvio dell'app, ad esempio nel componente App.tsx principale.
L'esempio seguente inizializza Google Mobile Ads SDK for React Native:
import {InitializationStatus, initialize} from '@google/mobile-ads';
import {useEffect, useState} from 'react';
import {Text, View} from 'react-native';
/**
* Root application component demonstrating Google Mobile Ads SDK initialization.
*/
export function App() {
const [isInitialized, setIsInitialized] = useState<boolean>(false);
useEffect(() => {
// Initialize the Google Mobile Ads SDK.
initialize({}, (status: InitializationStatus) => {
console.log('Mobile Ads SDK initialized successfully:', status);
setIsInitialized(true);
});
}, []);
return (
<View>
<Text>
{isInitialized ? 'Mobile Ads SDK Ready' : 'Initializing SDK...'}
</Text>
</View>
);
}
Seleziona un formato dell'annuncio
Dopo aver inizializzato Google Mobile Ads SDK for React Native, puoi implementare gli annunci. AdMob offre i seguenti formati degli annunci:
| Formato | Descrizione | Documentazione |
|---|---|---|
| Apertura app | Viene visualizzato quando gli utenti aprono la tua app o vi tornano, sovrapponendosi alla schermata di caricamento o iniziale. | Configura gli annunci apertura app |
| Interstitial | Annunci a schermo intero che coprono l'interfaccia dell'app host. Questi annunci vengono visualizzati in punti di transizione naturali nel flusso di un'app, ad esempio tra le varie attività o durante la pausa tra i livelli di un gioco. | Configura gli annunci interstitial |
| Con premio | Annunci a schermo intero che premiano gli utenti per la visualizzazione di annunci video o l'interazione con annunci demo. | Configura gli annunci con premio |
| Interstitial con premio | Un formato dell'annuncio con incentivi che ti consente di offrire premi per gli annunci che vengono visualizzati automaticamente durante le normali transizioni dell'app. | Configura gli annunci interstitial con premio |