1. Go to this page and download the library: Download blessedzulu/nativephp-admob library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
blessedzulu / nativephp-admob example snippets
Admob::rewarded('extra_lives')->show();
// config/admob.php
'slots' => [
'banner' => [
'home_footer' => env('ADMOB_BANNER_HOME_FOOTER'), // env name is yours; not rded / rewarded_interstitial / app_open follow the same shape
],
Admob::adUnit('banner', 'home_footer'); // ?string - the unit that would be used now, or null
Admob::hasSlot('rewarded', 'extra_life'); // bool
use BlessedZulu\NativePhpAdmob\Facades\Admob;
// In a Livewire/Volt component's mount() or wherever you want a banner:
Admob::banner('home_footer')
->load()
->show('bottom'); // or ->show('top')
// Later, when navigating away or hiding:
Admob::banner('home_footer')->hide();
use BlessedZulu\NativePhpAdmob\Facades\Admob;
use BlessedZulu\NativePhpAdmob\Events\AdLoaded;
use BlessedZulu\NativePhpAdmob\Events\AdDismissed;
use Native\Mobile\Attributes\OnNative;
// Pre-load when the screen mounts:
public function mount(): void
{
Admob::interstitial('between_calculations')->load();
}
// Show when the user finishes a meaningful action:
public function onCalculationFinished(): void
{
if (Admob::interstitial('between_calculations')->isReady()) {
Admob::interstitial('between_calculations')->show();
}
}
// Re-load after dismissal so the next show is ready:
#[OnNative(AdDismissed::class)]
public function onDismissed(string $slot, string $format): void
{
if ($format === 'interstitial') {
Admob::interstitial($slot)->load();
}
}
use BlessedZulu\NativePhpAdmob\Facades\Admob;
use BlessedZulu\NativePhpAdmob\Events\AdDismissed;
use BlessedZulu\NativePhpAdmob\Events\UserEarnedReward;
use Native\Mobile\Attributes\OnNative;
// Pre-load when the screen mounts:
public function mount(): void
{
Admob::rewarded('export_pdf')->load();
}
// Show in response to a user action ("Watch a video to unlock PDF export"):
public function onUnlockTapped(): void
{
if (Admob::rewarded('export_pdf')->isReady()) {
Admob::rewarded('export_pdf')->show();
}
}
// Grant the reward when the user finishes watching:
#[OnNative(UserEarnedReward::class)]
public function onEarned(string $slot, string $format, string $type, int $amount): void
{
if ($slot === 'export_pdf') {
$this->unlockPdfExport();
}
}
// Re-load after dismissal:
#[OnNative(AdDismissed::class)]
public function onDismissed(string $slot, string $format): void
{
if ($format === 'rewarded') {
Admob::rewarded($slot)->load();
}
}
Admob::rewardedInterstitial('between_levels')->load();
// later…
if (Admob::rewardedInterstitial('between_levels')->isReady()) {
Admob::rewardedInterstitial('between_levels')->show();
}
use BlessedZulu\NativePhpAdmob\Facades\Admob;
use BlessedZulu\NativePhpAdmob\Events\AdDismissed;
use Native\Mobile\Attributes\OnNative;
// Once, on app boot or in a long-lived component:
public function mount(): void
{
Admob::appOpen('warm_resume')->load();
}
// Re-load after dismissal so the next foreground has a fresh ad:
#[OnNative(AdDismissed::class)]
public function onDismissed(string $slot, string $format): void
{
if ($format === 'app_open') {
Admob::appOpen($slot)->load();
}
}
Admob::setAppOpenSuppressed(true); // false to restore
Admob::appOpen('paywall_dismissed')->load();
// Later:
if (Admob::appOpen('paywall_dismissed')->isReady()) {
Admob::appOpen('paywall_dismissed')->show();
}
use BlessedZulu\NativePhpAdmob\Facades\Admob;
// The Mobile Ads SDK boots automatically at app start (the plugin's
// init_function) - there is no start() call to make. Request UMP consent
// (EEA/UK) and, on iOS, the ATT prompt once early in your app's lifecycle:
Admob::ump()->requestConsentInfo(); // then ->showFormIfRequired()
Admob::att()->requestAuthorization(); // iOS only; no-ops elsewhere
// Banner
Admob::banner('calculator_bottom')->load()->show('bottom');
Admob::banner('calculator_bottom')->hide();
// Interstitial - pre-load, then show when ready
Admob::interstitial('between_calculations')->load();
if (Admob::interstitial('between_calculations')->isReady()) {
Admob::interstitial('between_calculations')->show();
}
// Rewarded - dispatches UserEarnedReward event on success
Admob::rewarded('export_pdf')->load()->show();
use Native\Mobile\Attributes\OnNative;
use BlessedZulu\NativePhpAdmob\Events\UserEarnedReward;
class ExportPdf extends Component
{
#[OnNative(UserEarnedReward::class)]
public function onReward(string $slot, string $type, int $amount)
{
if ($slot === 'export_pdf') {
$this->generatePdf();
}
}
}
// config/admob.php
'banner' => [
// Listens on BOTH window and document for each event, cleaned up on teardown.
'hide_on_events' => ['livewire:navigating', 'inertia:before', 'pagehide'],
],