nymea-app/3rdParty/android/firebase_cpp_sdk/include/firebase/admob.h

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_