āĻāĻ āύāĻŋāϰā§āĻĻā§āĻļāĻŋāĻāĻžāĻāĻŋ āĻĒā§āϰāĻāĻžāĻļāĻāĻĻā§āϰ āĻāύā§āϝ āϝāĻžāϰāĻž Firebase āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻž āĻāϰ⧠AdMob-āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻāĻāĻŋ C++ āĻ ā§āϝāĻžāĻĒ āύāĻāĻĻā§āĻāϰāĻŖ āĻāϰāϤ⧠āĻāĻžāύāĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§ Firebase āĻ āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰāĻžāϰ āĻĒāϰāĻŋāĻāϞā§āĻĒāύāĻž āĻāϰā§āύâāĻ āĻĨāĻŦāĻž āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻāĻŋ āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰāĻā§āύâāϤāĻžāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠āĻāĻ āĻāĻžāĻāĻĄā§āϰ Firebase āϏāĻāϏā§āĻāϰāĻŖ āϏāĻš AdMob āĻĻā§āĻā§āύāĨ¤
āĻāĻāĻāĻŋ āĻ ā§āϝāĻžāĻĒā§ Google āĻŽā§āĻŦāĻžāĻāϞ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ C++ SDK āϏāĻāĻšāϤ āĻāϰāĻž āĻšāϞ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ āĻĒā§āϰāĻĻāϰā§āĻļāύ āĻāĻŦāĻ āĻāĻĒāĻžāϰā§āĻāύā§āϰ āĻĻāĻŋāĻā§ āĻĒā§āϰāĻĨāĻŽ āϧāĻžāĻĒāĨ¤ āĻāĻāĻŦāĻžāϰ āĻāĻĒāύāĻŋ SDK āϏāĻāĻšāϤ āĻāϰāĻžāϰ āĻĒāϰā§, āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ āĻĢāϰā§āĻŽā§āϝāĻžāĻ āĻŦā§āĻā§ āύāĻŋāϤ⧠āĻĒāĻžāϰā§āύ, āϝā§āĻŽāύ āĻāύā§āĻāĻžāϰāϏā§āĻāĻŋāĻļāĻŋāϝāĻŧāĻžāϞ āĻŦāĻž āĻĒā§āϰāϏā§āĻā§āϤ, āĻāĻŦāĻ āĻāĻāĻŋ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύā§āϰ āĻāύā§āϝ āĻĒāĻĻāĻā§āώā§āĻĒāĻā§āϞāĻŋ āĻ āύā§āϏāϰāĻŖ āĻāϰā§āύ⧎
Google āĻŽā§āĻŦāĻžāĻāϞ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ C++ SDK Google āĻŽā§āĻŦāĻžāĻāϞ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ iOS āĻāĻŦāĻ Android SDK āĻā§āϞāĻŋāĻā§ āĻŽā§āĻĄāĻŧāĻžāύā§, āĻāĻŦāĻ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϏā§āĻ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽāĻā§āϞāĻŋāϤ⧠āĻāĻĒāϞāĻŦā§āϧāĨ¤ Google āĻŽā§āĻŦāĻžāĻāϞ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ C++ SDK āĻ
ā§āϝāĻžāϏāĻŋāĻā§āĻā§āϰā§āύāĻžāϏ āĻā§āϰāĻŋāϝāĻŧāĻžāĻāϞāĻžāĻĒāĻā§āϞāĻŋāĻā§ āϏāĻŽāϰā§āĻĨāύ āĻāϰāĻžāϰ āĻāύā§āϝ Firebase C++ āĻāĻ āύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§, āϤāĻžāĻ āĻāĻāĻŋ firebase::gma
āύāĻžāĻŽāϏā§āĻĨāĻžāύ⧠āĻĨāĻžāĻā§āĨ¤
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻĒā§āϰāĻĨāĻŽāĻŦāĻžāϰ āĻāĻ āύāĻŋāϰā§āĻĻā§āĻļāĻŋāĻāĻžāĻāĻŋ āĻĻā§āĻā§ āĻĨāĻžāĻā§āύ, āϤāĻžāĻšāϞ⧠āĻāĻŽāϰāĻž āϏā§āĻĒāĻžāϰāĻŋāĻļ āĻāϰāĻāĻŋ āϝ⧠āĻāĻĒāύāĻŋ Google āĻŽā§āĻŦāĻžāĻāϞ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ C++ āĻĒāϰā§āĻā§āώāĻž āĻ ā§āϝāĻžāĻĒ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĄāĻžāĻāύāϞā§āĻĄ āĻāϰā§āύ āĻāĻŦāĻ āĻ āύā§āϏāϰāĻŖ āĻāϰā§āύāĨ¤
āĻĒā§āϰā§āĻŦāĻļāϰā§āϤ
āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ
- āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ āϏā§āĻā§āĻĄāĻŋāĻ 3.2 āĻŦāĻž āĻāĻā§āĻāϤāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ
- āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰā§āύ āϝ⧠āĻāĻĒāύāĻžāϰ āĻ
ā§āϝāĻžāĻĒā§āϰ āĻŦāĻŋāϞā§āĻĄ āĻĢāĻžāĻāϞ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻŽāĻžāύāĻā§āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§:
- 16 āĻŦāĻž āĻāĻā§āĻāϤāϰ āĻāĻāĻāĻŋ
minSdkVersion
- 28 āĻŦāĻž āĻāĻā§āĻāϤāϰ āĻāĻāĻāĻŋ
compileSdkVersion
- 16 āĻŦāĻž āĻāĻā§āĻāϤāϰ āĻāĻāĻāĻŋ
iOS
- Xcode 13 āĻŦāĻž āĻāĻā§āĻāϤāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ
- āϞāĻā§āώā§āϝ iOS 10.0 āĻŦāĻž āĻāĻā§āĻāϤāϰ
āĻāĻĒāύāĻžāϰ AdMob āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻā§ āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒ āϏā§āĻ āĻāĻĒ āĻāϰā§āύ
āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āϧāĻžāĻĒāĻā§āϞāĻŋ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻāϰ⧠āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒāĻāĻŋāĻā§ āĻāĻāĻāĻŋ AdMob āĻ ā§āϝāĻžāĻĒ āĻšāĻŋāϏā§āĻŦā§ āύāĻŋāĻŦāύā§āϧāύ āĻāϰā§āύ:
āĻāĻāĻāĻŋ AdMob āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻā§ āϏāĻžāĻāύ āĻāύ āĻāϰā§āύ āĻŦāĻž āϏāĻžāĻāύ āĻāĻĒ āĻāϰā§āύ ⧎
AdMob-āĻāϰ āϏāĻžāĻĨā§ āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒ āύāĻŋāĻŦāύā§āϧāύ āĻāϰā§āύ āĨ¤ āĻāĻ āĻĒāĻĻāĻā§āώā§āĻĒāĻāĻŋ āĻāĻāĻāĻŋ āĻ āύāύā§āϝ AdMob āĻ ā§āϝāĻžāĻĒ āĻāĻāĻĄāĻŋ āϏāĻš āĻāĻāĻāĻŋ AdMob āĻ ā§āϝāĻžāĻĒ āϤā§āϰāĻŋ āĻāϰ⧠āϝāĻž āĻĒāϰāĻŦāϰā§āϤā§āϤ⧠āĻāĻ āύāĻŋāϰā§āĻĻā§āĻļāĻŋāĻāĻžāϝāĻŧ āĻĒā§āϰāϝāĻŧā§āĻāύāĨ¤
Google āĻŽā§āĻŦāĻžāĻāϞ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ C++ SDK āĻāύāϏā§āĻāϞ āĻāϰā§āύ
āϝā§āĻšā§āϤ⧠Google āĻŽā§āĻŦāĻžāĻāϞ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ C++ SDK firebase::gma
āύāĻžāĻŽāϏā§āĻĨāĻžāύ⧠āĻĨāĻžāĻā§, āϤāĻžāĻ Firebase C++ SDK āĻĄāĻžāĻāύāϞā§āĻĄ āĻāϰā§āύ āĻāĻŦāĻ āϤāĻžāϰāĻĒāϰ āĻāĻĒāύāĻžāϰ āĻĒāĻāύā§āĻĻā§āϰ āĻāĻāĻāĻŋ āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋāϤ⧠āĻāύāĻāĻŋāĻĒ āĻāϰā§āύāĨ¤
Firebase C++ SDK āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āύāϝāĻŧ, āϤāĻŦā§ āĻāĻāĻŋāϰ āĻāύā§āϝ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻĒā§āϰāϝāĻŧā§āĻāύāĨ¤
āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ
āĻāĻŽāϰāĻž CMake āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻĒāϰāĻžāĻŽāϰā§āĻļ āĻĻāĻŋāĻ, āĻāĻŋāύā§āϤ⧠āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āĻ
ā§āϝāĻžāĻĒā§ libfirebase_app.a
āĻāĻŦāĻ libfirebase_gma.a
āϞāĻŋāĻā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻŽāĻžāĻĻā§āϰ āϏāĻžāϧāĻžāϰāĻŖ Firebase C++ SDK āĻļā§āϰ⧠āĻāϰā§āύ āĻāĻžāĻāĻĄā§ ndk-āĻŦāĻŋāϞā§āĻĄā§āϰ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞ⧠āĻĒā§āϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻāĻĒāύāĻžāϰ āĻĒā§āϰāĻāϞā§āĻĒā§āϰ
gradle.properties
āĻĢāĻžāĻāϞā§, āĻāύāĻāĻŋāĻĒ āĻāϰāĻž SDK-āĻāϰ āĻ āĻŦāϏā§āĻĨāĻžāύ āĻāϞā§āϞā§āĻ āĻāϰā§āύ:systemProp.firebase_cpp_sdk.dir=FULL_PATH_TO_SDK
āĻāĻĒāύāĻžāϰ āĻĒā§āϰāĻāϞā§āĻĒā§āϰ
settings.gradle
āĻĢāĻžāĻāϞā§, āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻŦāĻŋāώāϝāĻŧāĻŦāϏā§āϤ⧠āϝā§āĻ āĻāϰā§āύ:def firebase_cpp_sdk_dir = System.getProperty('firebase_cpp_sdk.dir') gradle.ext.firebase_cpp_sdk_dir = "$firebase_cpp_sdk_dir" includeBuild "$firebase_cpp_sdk_dir"
āĻāĻĒāύāĻžāϰ āĻŽāĻĄāĻŋāĻāϞ⧠(āĻ ā§āϝāĻžāĻĒ-āϞā§āĻā§āϞ) āĻā§āϰā§āĻĄāϞ āĻĢāĻžāĻāϞâāϏāĻžāϧāĻžāϰāĻŖāϤ
app/build.gradle
â āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻŦāĻŋāώāϝāĻŧāĻŦāϏā§āϤ⧠āϝā§āĻ āĻāϰā§āύ, āϝāĻžāϰ āĻŽāϧā§āϝ⧠Google āĻŽā§āĻŦāĻžāĻāϞ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ C++ SDK-āĻāϰ āĻāύā§āϝ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āύāĻŋāϰā§āĻāϰāϤāĻž āϰāϝāĻŧā§āĻā§āĨ¤android.defaultConfig.externalNativeBuild.cmake { arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir" } # Add the dependency for the Google Mobile Ads C++ SDK apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" firebaseCpp.dependencies { gma }
āĻāĻĒāύāĻžāϰ āĻĒā§āϰāĻāϞā§āĻĒā§āϰ
CMakeLists.txt
āĻĢāĻžāĻāϞā§, āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻŦāĻŋāώāϝāĻŧāĻŦāϏā§āϤ⧠āϝā§āĻ āĻāϰā§āύāĨ¤# Add Firebase libraries to the target using the function from the SDK. add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL) # Add the Google Mobile Ads C++ SDK. # The Firebase C++ library `firebase_app` is required, # and it must always be listed last. set(firebase_libs firebase_gma firebase_app ) target_link_libraries(${target_name} "${firebase_libs}")
āϏāĻŽāϏā§āϤ āύāĻŋāϰā§āĻāϰāϤāĻžāĻā§āϞāĻŋāϰ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āϏāĻāϏā§āĻāϰāĻŖ āϰāϝāĻŧā§āĻā§ āϤāĻž āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰāϤ⧠āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒ āϏāĻŋāĻā§āĻ āĻāϰā§āύāĨ¤
iOS
āĻāĻ āĻŦāĻŋāĻāĻžāĻā§āϰ āϧāĻžāĻĒāĻā§āϞāĻŋ āĻāĻĒāύāĻžāϰ iOS āĻĒā§āϰāĻāϞā§āĻĒā§ Google āĻŽā§āĻŦāĻžāĻāϞ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ C++ SDK āϝā§āĻ āĻāϰāĻžāϰ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖāĨ¤
āĻāĻžāϞāĻžāύā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ CocoaPods āϏāĻāϏā§āĻāϰāĻŖ 1 āĻŦāĻž āϤāĻžāϰ āĻĒāϰ⧠āĻĒāĻžāύ:
sudo gem install cocoapods --pre
āĻāύāĻāĻŋāĻĒ āĻāϰāĻž SDK āĻĨā§āĻā§ Google āĻŽā§āĻŦāĻžāĻāϞ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ āĻĒāĻĄ āϝā§āĻ āĻāϰā§āύāĨ¤
āĻāĻĒāύāĻžāϰ āϝāĻĻāĻŋ āĻāϤāĻŋāĻŽāϧā§āϝ⧠āĻāĻāĻāĻŋ āύāĻž āĻĨāĻžāĻā§ āϤāĻŦā§ āĻāĻāĻāĻŋ āĻĒāĻĄāĻĢāĻžāĻāϞ āϤā§āϰāĻŋ āĻāϰā§āύ:
cd APP_DIRECTORY
pod init
āĻāĻĒāύāĻžāϰ āĻĒāĻĄāĻĢāĻžāĻāϞā§, Google āĻŽā§āĻŦāĻžāĻāϞ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ C++ SDK, Google āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻŽā§āϏā§āĻāĻŋāĻ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ SDK āĻāĻŦāĻ āύā§āϝā§āύāϤāĻŽ āĻĢāĻžāϝāĻŧāĻžāϰāĻŦā§āϏ āĻā§āϰ SDK (GMA C++ SDK-āĻāϰ āĻāύā§āϝ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ): āĻāϰ āĻāύā§āϝ āĻĒāĻĄāĻā§āϞāĻŋ āϝā§āĻ āĻāϰā§āύ:
pod 'Firebase/CoreOnly' pod 'Google-Mobile-Ads-SDK' pod 'GoogleUserMessagingPlatform'
āĻĒāĻĄ āĻāύāϏā§āĻāϞ āĻāϰā§āύ, āϤāĻžāϰāĻĒāϰ Xcode-āĻ
.xcworkspace
āĻĢāĻžāĻāϞāĻāĻŋ āĻā§āϞā§āύāĨ¤pod install
open APP.xcworkspace
Firebase C++ SDK āĻĨā§āĻā§ āĻĒā§āϰāĻā§āĻā§āĻā§ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻĢā§āϰā§āĻŽāĻāϝāĻŧāĻžāϰā§āĻ āϝā§āĻ āĻāϰā§āύ:
-
xcframeworks/firebase.xcframework
-
xcframeworks/firebase_gma.xcframework
-
āĻāĻĒāύāĻŋ āϏāĻŦ āĻĒā§āϰāϏā§āϤā§āϤ! āĻāĻĒāύāĻžāϰ C++ āĻ ā§āϝāĻžāĻĒāĻāĻŋ āĻ āύā§āϝ āĻā§āύ⧠āĻĢāĻžāϝāĻŧāĻžāϰāĻŦā§āϏ āĻĒāϰāĻŋāώā§āĻŦāĻž āĻāĻžāĻĄāĻŧāĻžāĻ Google āĻŽā§āĻŦāĻžāĻāϞ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ C++ SDK āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤
āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§āϰ AdMob āĻ ā§āϝāĻžāĻĒ āĻāĻāĻĄāĻŋ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰā§āύ
āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ
āĻŽā§āĻŦāĻžāĻāϞ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ SDK āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ āĻāĻžāĻāĻĄ āĻĻā§āĻŦāĻžāϰāĻž āĻŦāϰā§āĻŖāĻŋāϤ āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻžāϰ āϧāĻžāĻĒ 3 āĻ āύā§āϏāϰāĻŖ āĻāϰā§āύ āĻāĻŦāĻ āϤāĻžāϰāĻĒāϰ⧠āĻāĻ āĻĒā§āώā§āĻ āĻžāϝāĻŧ āĻĢāĻŋāϰ⧠āĻāϏā§āύāĨ¤
iOS
āĻŽā§āĻŦāĻžāĻāϞ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ SDK iOS āĻāĻžāĻāĻĄ āĻĻā§āĻŦāĻžāϰāĻž āĻŦāϰā§āĻŖāĻŋāϤ āĻāĻĒāύāĻžāϰ Info.plist āĻāĻĒāĻĄā§āĻ āĻāϰā§āύ āϧāĻžāĻĒ āĻ āύā§āϏāϰāĻŖ āĻāϰā§āύ āĻāĻŦāĻ āϤāĻžāϰāĻĒāϰ⧠āĻāĻ āĻĒā§āώā§āĻ āĻžāϝāĻŧ āĻĢāĻŋāϰ⧠āĻāϏā§āύāĨ¤
Google āĻŽā§āĻŦāĻžāĻāϞ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ SDK āĻļā§āϰ⧠āĻāϰā§āύ⧎
āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ āϞā§āĻĄ āĻāϰāĻžāϰ āĻāĻā§, āĻāĻĒāύāĻžāϰ āĻ
ā§āϝāĻžāĻĒāĻāĻŋāĻā§ firebase::gma::Initialize()
āĻāϞ āĻāϰ⧠Google Mobile Ads C++ SDK āĻāĻžāϞ⧠āĻāϰāϤ⧠āĻŦāϞā§āύ āϝāĻž SDK-āĻā§ āĻāϰāĻŽā§āĻ āĻāϰ⧠āĻāĻŦāĻ āĻāĻāĻāĻŋ firebase::Future
āϏāĻŽā§āĻĒāύā§āύ āĻšāϞ⧠(āĻŦāĻž 30-āϏā§āĻā§āύā§āĻĄā§āϰ āĻāĻžāĻāĻŽāĻāĻāĻā§āϰ āĻĒāϰā§)āĨ¤ āĻāĻāĻŋ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻāĻŦāĻžāϰ āĻāϰāĻž āĻĻāϰāĻāĻžāϰ, āĻāĻĻāϰā§āĻļāĻāĻžāĻŦā§ āĻ
ā§āϝāĻžāĻĒ āϞāĻā§āĻā§āϰ āϏāĻŽāϝāĻŧāĨ¤
Initialize()
āĻ āĻāϞ āĻāϰāĻžāϰ āĻĒāϰ⧠Google āĻŽā§āĻŦāĻžāĻāϞ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ C++ SDK āĻŦāĻž āĻŽāϧā§āϝāϏā§āĻĨāϤāĻž āĻ
āĻāĻļā§āĻĻāĻžāϰ SDK āĻĻā§āĻŦāĻžāϰāĻž āĻŦāĻŋāĻā§āĻāĻžāĻĒāύāĻā§āϞāĻŋ āĻĒā§āϰāĻŋāϞā§āĻĄ āĻāϰāĻž āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻāϰā§āĻĒā§āϝāĻŧ āĻ
āϰā§āĻĨāύā§āϤāĻŋāĻ āĻ
āĻā§āĻāϞā§āϰ (EEA) āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āĻāĻžāĻ āĻĨā§āĻā§ āϏāĻŽā§āĻŽāϤāĻŋ āĻĒā§āϤ⧠āĻāĻžāύ, āϤāĻžāĻšāϞ⧠āϝā§āĻā§āύ⧠āĻ
āύā§āϰā§āϧ-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĒāϤāĻžāĻāĻž āϏā§āĻ āĻāϰā§āύ (āϝā§āĻŽāύ tag_for_child_directed_treatment
āĻŦāĻž tag_for_under_age_of_consent
), āĻ
āĻĨāĻŦāĻž āĻ
āύā§āϝāĻĨāĻžāϝāĻŧ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ āϞā§āĻĄ āĻāϰāĻžāϰ āĻāĻā§ āĻĒāĻĻāĻā§āώā§āĻĒ āύāĻŋāύ, āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰā§āύ āϝ⧠āĻāĻĒāύāĻŋ firebase::gma::SetRequestConfiguration()
āĻāϰ āĻāĻā§ Google-āĻāϰ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύāĻā§āϞāĻŋ āĻāĻžāϞ⧠āĻāϰāĻžāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āϤāĻž āĻāϰāĻā§āύāĨ¤ SDK āĻāϰāĻ āϤāĻĨā§āϝā§āϰ āĻāύā§āϝ āĻāĻŽāĻžāĻĻā§āϰ āϞāĻā§āώā§āϝ āύāĻŋāϰā§āĻĻā§āĻļāĻŋāĻāĻž āĻĻā§āĻā§āύāĨ¤
āĻāĻŋāĻāĻžāĻŦā§ Initialize()
āĻāϞ āĻāϰāϤ⧠āĻšāϝāĻŧ āϤāĻžāϰ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āĻāĻāĻžāύ⧠āĻĻā§āĻāϝāĻŧāĻž āĻšāϞ:
āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ
// Initialize the Google Mobile Ads library
firebase::InitResult result;
Future<AdapterInitializationStatus> future =
firebase::gma::Initialize(jni_env, j_activity, &result);
if (result != kInitResultSuccess) {
// Initialization immediately failed, most likely due to a missing
// dependency. Check the device logs for more information.
return;
}
// Monitor the status of the future.
// See "Use a Future to monitor the completion status of a method call" below.
if (future.status() == firebase::kFutureStatusComplete &&
future.error() == firebase::gma::kAdErrorCodeNone) {
// Initialization completed.
} else {
// Initialization on-going, or an error has occurred.
}
iOS
// Initialize the Google Mobile Ads library.
firebase::InitResult result;
Future<AdapterInitializationStatus> future =
firebase::gma::Initialize(&result);
if (result != kInitResultSuccess) {
// Initialization immediately failed, most likely due to a missing
// dependency. Check the device logs for more information.
return;
}
// Monitor the status of the future.
// See "Use a Future to monitor the completion status of a method call" below.
if (future.status() == firebase::kFutureStatusComplete &&
future.error() == firebase::gma::kAdErrorCodeNone) {
// Initialization completed.
} else {
// Initialization on-going, or an error has occurred.
}
āĻāĻāĻāĻŋ āĻĒāĻĻā§āϧāϤāĻŋ āĻāϞ āϏāĻŽāĻžāĻĒā§āϤāĻŋāϰ āϏā§āĻĨāĻŋāϤāĻŋ āύāĻŋāϰā§āĻā§āώāĻŖ āĻāϰāϤ⧠āĻāĻāĻāĻŋ Future
āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ
āĻāĻāĻāĻŋ Future
āĻāĻĒāύāĻžāĻā§ āĻāĻĒāύāĻžāϰ āĻ
ā§āϝāĻžāϏāĻŋāĻā§āĻā§āϰā§āύāĻžāϏ āĻŽā§āĻĨāĻĄ āĻāϞāĻā§āϞāĻŋāϰ āϏāĻŽāĻžāĻĒā§āϤāĻŋāϰ āϏā§āĻĨāĻŋāϤāĻŋ āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰāĻžāϰ āĻāĻāĻāĻŋ āĻāĻĒāĻžāϝāĻŧ āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§ā§ˇ
āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āϝāĻāύ āĻāĻĒāύāĻžāϰ āĻ
ā§āϝāĻžāĻĒ firebase::gma::Initialize()
āĻāϞ āĻāϰā§, āϤāĻāύ āĻāĻāĻāĻŋ āύāϤā§āύ firebase::Future
āϤā§āϰāĻŋ āĻšāϝāĻŧ āĻāĻŦāĻ āĻĢāĻŋāϰ⧠āĻāϏā§āĨ¤ āĻāĻĒāύāĻžāϰ āĻ
ā§āϝāĻžāĻĒāĻāĻŋ Future
status()
āĻĒā§āϞ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āĻāĻāύ āĻļā§āϰ⧠āĻāϰāĻž āĻļā§āώ āĻšāϝāĻŧā§āĻā§ āϤāĻž āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰāϤā§āĨ¤ āĻāĻāĻŦāĻžāϰ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻšāϝāĻŧā§ āĻā§āϞā§, āĻāĻĒāύāĻžāϰ āĻ
ā§āϝāĻžāĻĒ result()
āĻāϰ āĻĢāϞ⧠AdapterInitializationStatus
āĻĒā§āϤ⧠āĻĒāĻžāϰā§āĨ¤
āϝ⧠āĻĒāĻĻā§āϧāϤāĻŋāĻā§āϞāĻŋ āĻāĻāĻāĻŋ Future
āĻĢā§āϰāϤ āĻĻā§āϝāĻŧ āϏā§āĻā§āϞāĻŋāϰ āĻāĻāĻāĻŋ āĻ
āύā§āϰā§āĻĒ "āĻļā§āώ āĻĢāϞāĻžāĻĢāϞ" āĻĒāĻĻā§āϧāϤāĻŋ āϰāϝāĻŧā§āĻā§ āϝāĻž āĻ
ā§āϝāĻžāĻĒāĻā§āϞāĻŋ āĻāĻāĻāĻŋ āĻĒā§āϰāĻĻāϤā§āϤ āĻāϰā§āĻŽā§āϰ āĻāύā§āϝ āϏāĻžāĻŽā§āĻĒā§āϰāϤāĻŋāĻāϤāĻŽ Future
āĻĒā§āύāϰā§āĻĻā§āϧāĻžāϰ āĻāϰāϤ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§ā§ˇ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, firebase::gma::Initialize()
āĻāĻāĻāĻŋ āϏāĻāĻļā§āϞāĻŋāώā§āĻ āĻĒāĻĻā§āϧāϤāĻŋ āϰāϝāĻŧā§āĻā§ āϝāĻžāϰ āύāĻžāĻŽ firebase::gma::InitializeLastResult()
, āϝāĻž āĻāĻāĻāĻŋ Future
āĻĒā§āϰāĻĻāĻžāύ āĻāϰ⧠āϝāĻž āĻāĻĒāύāĻžāϰ āĻ
ā§āϝāĻžāĻĒ firebase::gma::Initialize()
āĻ āĻļā§āώ āĻāϞā§āϰ āϏā§āĻĨāĻŋāϤāĻŋ āĻĒāϰā§āĻā§āώāĻž āĻāϰāϤ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤
āϝāĻĻāĻŋ Future
āϏā§āĻĨāĻŋāϤāĻŋ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻšāϝāĻŧ āĻāĻŦāĻ āĻāϰ āϤā§āϰā§āĻāĻŋ āĻā§āĻĄ āĻšāϝāĻŧ firebase::gma::kAdErrorCodeNone
, āϤāĻžāĻšāϞ⧠āĻ
āĻĒāĻžāϰā§āĻļāύāĻāĻŋ āϏāĻĢāϞāĻāĻžāĻŦā§ āϏāĻŽā§āĻĒāύā§āύ āĻšāϝāĻŧā§āĻā§āĨ¤
āĻāĻāĻāĻŋ Future
āϏāĻŽā§āĻĒāύā§āύ āĻšāϞ⧠āĻāϞāĻŦā§āϝāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻĒāύāĻŋ āύāĻŋāĻŦāύā§āϧāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻāĻŋāĻā§ āĻā§āώā§āϤā§āϰā§, āĻāϞāĻŦā§āϝāĻžāĻ āĻāĻāĻāĻŋ āĻāĻŋāύā§āύ āĻĨā§āϰā§āĻĄā§ āĻāϞāĻŦā§, āϤāĻžāĻ āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰā§āύ āϝ⧠āĻāĻĒāύāĻžāϰ āĻā§āĻĄāĻāĻŋ āĻĨā§āϰā§āĻĄ-āύāĻŋāϰāĻžāĻĒāĻĻāĨ¤ āĻāĻ āĻā§āĻĄ āϏā§āύāĻŋāĻĒā§āĻ āĻāϞāĻŦā§āϝāĻžāĻā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāύ āĻĒāϝāĻŧā§āύā§āĻāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§:
// Registers the OnCompletion callback. user_data is a pointer that is passed verbatim
// to the callback as a void*. This allows you to pass any custom data to the callback
// handler. In this case, the app has no data, so you must pass nullptr.
firebase::gma::InitializeLastResult().OnCompletion(OnCompletionCallback,
/*user_data=*/nullptr);
// The OnCompletion callback function.
static void OnCompletionCallback(
const firebase::Future<AdapterInitializationStatus>& future, void* user_data) {
// Called when the Future is completed for the last call to firebase::gma::Initialize().
// If the error code is firebase::gma::kAdErrorCodeNone,
// then the SDK has been successfully initialized.
if (future.error() == firebase::gma::kAdErrorCodeNone) {
// success!
} else {
// failure.
}
}
āĻāĻāĻāĻŋ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ āĻŦāĻŋāύā§āϝāĻžāϏ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰā§āύ
Google āĻŽā§āĻŦāĻžāĻāϞ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ C++ SDK āĻāĻāύ āĻāĻŽāĻĻāĻžāύāĻŋ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύā§āϰ āĻāύā§āϝ āĻĒā§āϰāϏā§āϤā§āϤāĨ¤ AdMob āĻŦāĻŋāĻāĻŋāύā§āύ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ āĻĢāϰā§āĻŽā§āϝāĻžāĻ āĻ āĻĢāĻžāϰ āĻāϰā§, āϤāĻžāĻ āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻ āĻāĻŋāĻā§āĻāϤāĻžāϰ āϏāĻžāĻĨā§ āϏāĻŦāĻā§āϝāĻŧā§ āĻāĻĒāϝā§āĻā§āϤ āĻāĻāĻāĻŋ āĻŦā§āĻā§ āύāĻŋāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻŦā§āϝāĻžāύāĻžāϰ
āĻāϝāĻŧāϤāĻā§āώā§āϤā§āϰāĻžāĻāĻžāϰ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ āϝāĻž āĻĄāĻŋāĻāĻžāĻāϏ āϏā§āĻā§āϰāĻŋāύā§āϰ āĻāĻĒāϰ⧠āĻŦāĻž āύā§āĻā§ āĻĒā§āϰāĻĻāϰā§āĻļāĻŋāϤ āĻšāϝāĻŧāĨ¤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰāĻž āĻ ā§āϝāĻžāĻĒā§āϰ āϏāĻžāĻĨā§ āĻāύā§āĻāĻžāϰāĻ ā§āϝāĻžāĻā§āĻ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻŦā§āϝāĻžāύāĻžāϰ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύāĻā§āϞāĻŋ āϏā§āĻā§āϰāĻŋāύ⧠āĻĨāĻžāĻā§ āĻāĻŦāĻ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏāĻŽāϝāĻŧā§āϰ āĻĒāϰ⧠āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āϰāĻŋāĻĢā§āϰā§āĻļ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻŽā§āĻŦāĻžāĻāϞ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ⧠āύāϤā§āύ āĻšāύ, āϤāĻžāĻšāϞ⧠āĻļā§āϰ⧠āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻā§āϞāĻŋ āĻāĻāĻāĻŋ āĻĻā§āϰā§āĻĻāĻžāύā§āϤ āĻāĻžāϝāĻŧāĻāĻžā§ˇ
āĻŦā§āϝāĻžāύāĻžāϰ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ
āĻāύā§āĻāĻžāϰāϏā§āĻāĻŋāĻļāĻŋāϝāĻŧāĻžāϞ
āĻĒā§āϰā§āĻŖ-āϏā§āĻā§āϰā§āύ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ āϝāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻĻā§āĻŦāĻžāϰāĻž āĻŦāύā§āϧ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤ āĻāĻāĻāĻŋ āĻ ā§āϝāĻžāĻĒā§āϰ āĻāύā§āĻāĻžāϰāĻĢā§āϏ āĻāĻāĻžāϰ āĻāϰā§āĨ¤ āĻāĻā§āϞāĻŋ āĻāĻāĻāĻŋ āĻ ā§āϝāĻžāĻĒā§āϰ āĻāĻžāϰā§āϝ āϏāĻŽā§āĻĒāĻžāĻĻāύā§āϰ āĻĒā§āϰāĻŦāĻžāĻšā§ āĻĒā§āϰāĻžāĻā§āϤāĻŋāĻ āĻŦāĻŋāϰāϤāĻŋāϤ⧠āϏāϰā§āĻŦā§āϤā§āϤāĻŽāĻāĻžāĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧ, āϝā§āĻŽāύ āĻāĻāĻāĻŋ āĻā§āĻŽā§āϰ āϏā§āϤāϰā§āϰ āĻŽāϧā§āϝ⧠āĻŦāĻž āĻāĻāĻāĻŋ āĻāĻžāϏā§āĻ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻšāĻāϝāĻŧāĻžāϰ āĻĒāϰā§āĨ¤
āĻĒā§āϰāϏā§āĻā§āϤ
āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ āϝāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āĻā§āĻ āĻāĻŋāĻĄāĻŋāĻ āĻĻā§āĻāĻžāϰ āĻāύā§āϝ āĻāĻŦāĻ āĻĒā§āϞā§āϝā§āĻā§āϝ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ āĻāĻŦāĻ āϏāĻŽā§āĻā§āώāĻžāϰ āϏāĻžāĻĨā§ āĻāύā§āĻāĻžāϰāĻ ā§āϝāĻžāĻā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĒā§āϰāϏā§āĻā§āϤ āĻāϰā§āĨ¤ āĻĢā§āϰāĻŋ-āĻā§-āĻĒā§āϞ⧠āĻ ā§āϝāĻžāĻĒāĻā§āϞāĻŋ āύāĻāĻĻā§āĻāϰāĻŖā§āϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧāĨ¤
āĻĒā§āϰāϏā§āĻā§āϤ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰā§āύ