156 lines
6.6 KiB
C++
156 lines
6.6 KiB
C++
/*
|
|
* Copyright 2016 Google LLC
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
#ifndef FIREBASE_ADMOB_CLIENT_CPP_INCLUDE_FIREBASE_ADMOB_H_
|
|
#define FIREBASE_ADMOB_CLIENT_CPP_INCLUDE_FIREBASE_ADMOB_H_
|
|
|
|
#ifdef __ANDROID__
|
|
#include <jni.h>
|
|
#endif // __ANDROID__
|
|
|
|
#include "firebase/admob/banner_view.h"
|
|
#include "firebase/admob/interstitial_ad.h"
|
|
#include "firebase/admob/rewarded_video.h"
|
|
#include "firebase/admob/types.h"
|
|
#include "firebase/app.h"
|
|
#include "firebase/internal/common.h"
|
|
|
|
#if !defined(DOXYGEN) && !defined(SWIG)
|
|
FIREBASE_APP_REGISTER_CALLBACKS_REFERENCE(admob)
|
|
#endif // !defined(DOXYGEN) && !defined(SWIG)
|
|
|
|
namespace firebase {
|
|
|
|
/// @brief API for AdMob with Firebase.
|
|
///
|
|
/// The AdMob API allows you to load and display mobile ads using the Google
|
|
/// Mobile Ads SDK. Each ad format has its own header file.
|
|
namespace admob {
|
|
|
|
/// Initializes AdMob via Firebase.
|
|
///
|
|
/// @param app The Firebase app for which to initialize mobile ads.
|
|
///
|
|
/// @return kInitResultSuccess if initialization succeeded, or
|
|
/// kInitResultFailedMissingDependency on Android if Google Play services is not
|
|
/// available on the current device and the Google Mobile Ads SDK requires
|
|
/// Google Play services (for example, when using 'play-services-ads-lite').
|
|
InitResult Initialize(const ::firebase::App& app);
|
|
|
|
/// Initializes AdMob via Firebase with the publisher's AdMob app ID.
|
|
/// Initializing the Google Mobile Ads SDK with the AdMob app ID at app launch
|
|
/// allows the SDK to fetch app-level settings and perform configuration tasks
|
|
/// as early as possible. This can help reduce latency for the initial ad
|
|
/// request. AdMob app IDs are unique identifiers given to mobile apps when
|
|
/// they're registered in the AdMob console. To find your app ID in the AdMob
|
|
/// console, click the App management (https://apps.admob.com/#account/appmgmt:)
|
|
/// option under the settings dropdown (located in the upper right-hand corner).
|
|
/// App IDs have the form ca-app-pub-XXXXXXXXXXXXXXXX~NNNNNNNNNN.
|
|
///
|
|
/// @param[in] app The Firebase app for which to initialize mobile ads.
|
|
/// @param[in] admob_app_id The publisher's AdMob app ID.
|
|
///
|
|
/// @return kInitResultSuccess if initialization succeeded, or
|
|
/// kInitResultFailedMissingDependency on Android if Google Play services is not
|
|
/// available on the current device and the Google Mobile Ads SDK requires
|
|
/// Google Play services (for example, when using 'play-services-ads-lite').
|
|
InitResult Initialize(const ::firebase::App& app, const char* admob_app_id);
|
|
|
|
#if defined(__ANDROID__) || defined(DOXYGEN)
|
|
/// Initializes AdMob without Firebase for Android.
|
|
///
|
|
/// The arguments to @ref Initialize are platform-specific so the caller must do
|
|
/// something like this:
|
|
/// @code
|
|
/// #if defined(__ANDROID__)
|
|
/// firebase::admob::Initialize(jni_env, activity);
|
|
/// #else
|
|
/// firebase::admob::Initialize();
|
|
/// #endif
|
|
/// @endcode
|
|
///
|
|
/// @param[in] jni_env JNIEnv pointer.
|
|
/// @param[in] activity Activity used to start the application.
|
|
///
|
|
/// @return kInitResultSuccess if initialization succeeded, or
|
|
/// kInitResultFailedMissingDependency on Android if Google Play services is not
|
|
/// available on the current device and the AdMob SDK requires
|
|
/// Google Play services (for example when using 'play-services-ads-lite').
|
|
InitResult Initialize(JNIEnv* jni_env, jobject activity);
|
|
|
|
/// Initializes AdMob via Firebase with the publisher's AdMob app ID.
|
|
/// Initializing the Google Mobile Ads SDK with the AdMob app ID at app launch
|
|
/// allows the SDK to fetch app-level settings and perform configuration tasks
|
|
/// as early as possible. This can help reduce latency for the initial ad
|
|
/// request. AdMob app IDs are unique identifiers given to mobile apps when
|
|
/// they're registered in the AdMob console. To find your app ID in the AdMob
|
|
/// console, click the App management (https://apps.admob.com/#account/appmgmt:)
|
|
/// option under the settings dropdown (located in the upper right-hand corner).
|
|
/// App IDs have the form ca-app-pub-XXXXXXXXXXXXXXXX~NNNNNNNNNN.
|
|
///
|
|
/// The arguments to @ref Initialize are platform-specific so the caller must do
|
|
/// something like this:
|
|
/// @code
|
|
/// #if defined(__ANDROID__)
|
|
/// firebase::admob::Initialize(jni_env, activity, admob_app_id);
|
|
/// #else
|
|
/// firebase::admob::Initialize(admob_app_id);
|
|
/// #endif
|
|
/// @endcode
|
|
///
|
|
/// @param[in] jni_env JNIEnv pointer.
|
|
/// @param[in] activity Activity used to start the application.
|
|
/// @param[in] admob_app_id The publisher's AdMob app ID.
|
|
///
|
|
/// @return kInitResultSuccess if initialization succeeded, or
|
|
/// kInitResultFailedMissingDependency on Android if Google Play services is not
|
|
/// available on the current device and the AdMob SDK requires
|
|
/// Google Play services (for example when using 'play-services-ads-lite').
|
|
InitResult Initialize(JNIEnv* jni_env, jobject activity,
|
|
const char* admob_app_id);
|
|
#endif // defined(__ANDROID__) || defined(DOXYGEN)
|
|
#if !defined(__ANDROID__) || defined(DOXYGEN)
|
|
/// Initializes AdMob without Firebase for iOS.
|
|
InitResult Initialize();
|
|
|
|
/// Initializes AdMob with the publisher's AdMob app ID and without Firebase for
|
|
/// iOS.
|
|
/// Initializing the Google Mobile Ads SDK with the AdMob app ID at app launch
|
|
/// allows the SDK to fetch app-level settings and perform configuration tasks
|
|
/// as early as possible. This can help reduce latency for the initial ad
|
|
/// request. AdMob app IDs are unique identifiers given to mobile apps when
|
|
/// they're registered in the AdMob console. To find your app ID in the AdMob
|
|
/// console, click the App management (https://apps.admob.com/#account/appmgmt:)
|
|
/// option under the settings dropdown (located in the upper right-hand corner).
|
|
/// App IDs have the form ca-app-pub-XXXXXXXXXXXXXXXX~NNNNNNNNNN.
|
|
///
|
|
/// @param[in] admob_app_id The publisher's AdMob app ID.
|
|
///
|
|
/// @return kInitResultSuccess if initialization succeeded
|
|
InitResult Initialize(const char* admob_app_id);
|
|
#endif // !defined(__ANDROID__) || defined(DOXYGEN)
|
|
|
|
/// @brief Terminate AdMob.
|
|
///
|
|
/// Frees resources associated with AdMob that were allocated during
|
|
/// @ref firebase::admob::Initialize().
|
|
void Terminate();
|
|
|
|
} // namespace admob
|
|
} // namespace firebase
|
|
|
|
#endif // FIREBASE_ADMOB_CLIENT_CPP_INCLUDE_FIREBASE_ADMOB_H_
|