Cara Membuat Aplikasi Android dan Ios Menggunakan AdMob Di Projects Firebase
Free DOWNLOAD ADMOB V3 software Generator Admob ID - tools revenue Admob berdasarkan Kode Pub Anda - Monetasi Now
Awdev| Projects |Aplikasi|Android|Ios - Dalam pengembangan aplikasi mobile khususnya di Android, tentu kita akan memikirkan tentang hosting, server, mengolah database dan masih banyak lagi. Dewasa ini, salah satu platform yang digunakan oleh developer baik yang profesional maupun pemula untuk mempersingkat pengembangan aplikasi berbasis mobile adalah Firebase. Sejak ditemukan oleh Andrew Lee dan James Tamplin pada tahun 2011, Firebase memberikan produk Realtime Database yang berguna untuk menyimpan lebih banyak data dan sinkronisasi ke banyak pengguna. Kemudian berkembang menjadi layanan penyedia pengembangan aplikasi. Hingga pada Oktober 2014, pihak Google mengakuisisi layanan pengembang aplikasi ini dan mengembangkan berbagai fitur sampai pada akhirnya diperkenalkan pada tahun 2016. Jadi, apa itu Firebase?
Pengertian Firebase
Firebase adalah Cloud Service Provider dan Backend as a Service (BaaS) yang dimiliki oleh Google. Google Firebase adalah solusi yang ditawarkan Google untuk mempermudah pekerjaan Mobile Apps Developer agar bisa fokus mengembangkan aplikasi tanpa perlu memberikan effort yang besar untuk masalah backend. Firebase menyediakan serangkaian alat dan software yang berfungsi untuk pengembangan aplikasi seperti manajemen data, API, integrasi social media dan push notifications. Firebase sangat bagus untuk digunakan Apps Developer karena kecepatannya yang real time dan responsif. Selain itu, kelebihan Firebase lainnya yaitu Firebase memiliki banyak SDK yang memungkinkan untuk mengintegrasikan layanan ini dengan Android, iOS, JavaScript, Java, Objective-C, swift dan Node.js. Data yang disimpan di Firebase menggunakan JSON, sehingga mempermudah pengguna dalam membaca datanya. Firebase cenderung mudah untuk digunakan karena tampilan website Firebase yang user-friendly dan dokumentasi yang cukup mudah untuk dipahami. Contoh aplikasi dengan Firebase antara lain Alibaba.com, Trivago, Duolingo dan Wattpad.
Ada 3 pilihan layanan yang tersedia di Firebase, yaitu:
Spark: layanan ini dapat digunakan secara gratis
Flame : pengguna dikenakan biaya $25/bulan untuk menggunakan layanan ini
Blaze: pengguna dikenakan biaya sesuai dengan pemakaian untuk menggunakan layanan ini
Fungsi Firebase
Technology memiliki beberapa fungsi berdasarkan fitur yang dimiliki. Lima di antaranya yaitu:
1. Analytics
Fitur ini berfungsi untuk keperluan mengoleksi data yang bervariasi dan reporting perangkat Android/iOS. Fitur Firebase Analytics bisa memberikan kemudahan bagi Apps Developer untuk membuat segmentasi pengguna berdasarkan fitur apa saja yang sering mereka pakai. Salah satu contohnya adalah kita dapat melihat bagian mana dari aplikasi kita yang paling sering digunakan user. Menariknya lagi, fitur ini dapat membuat segmentasi user berdasarkan user attribute. User attribute adalah parameter yang bisa digunakan sebagai filter untuk reporting dan notifikasi.
2. Real-time Database
Realtime Database adalah database yang di-host melalui cloud sehingga mempermudah developer dalam mengelola database dengan skala yang lebih besar. Data disimpan dan dieksekusi dalam bentuk JSON dan disinkronkan secara realtime ke setiap user yang terkoneksi. Saat membuat aplikasi lintas-platform/multiplatform menggunakan SDK Android, iOS, dan juga JavaScript, semua pengguna akan berbagi sebuah instance Realtime Database dan menerima pembaruan data secara serentak dan otomatis. Bahkan, hebatnya lagi aplikasi bisa menyimpan data secara lokal dan tetap responsif ketika tidak ada akses internet, kemudian melakukan sync data secara instan setelah mendapatkan akses internet.
3. Authentication
Firebase
Authentication adalah untuk mengautentikasi pengguna ke aplikasi lewat tampilan interfaces (UI). Nantinya Authentication dapat memudahkan pengguna untuk masuk ke aplikasi yang terintegrasi dengan penyedia identitas gabungan populer lain. Fitur Firebase Authentication merupakan salah satu layanan back-end dengan SDK yang mudah dan siap digunakan untuk mengautentikasi pengguna ke aplikasi serta mengelola pengguna dengan cara yang mudah dan aman. Firebase Authentication mendukung beberapa metode autentikasi seperti menggunakan nomor telepon, email/sandi (password), penyedia identitas gabungan populer (pihak ketiga) seperti Google, Facebook, dan sebagainya. Jadi dengan menggunakan fitur ini kita bisa membuat login menggunakan gmail, facebook, twitter dan lainnya.
4. Cloud Firestore
Cloud Firestore merupakan database yang bersifat fleksibel dan terukur untuk pengembangan perangkat seperti seluler, web, dan server di Firebase dan Google Cloud Platform. Cloud Firestore membuat data tetap terkoneksi di aplikasi user melalui listener realtime dan menawarkan layanan secara offline untuk aplikasi seluler dan web. Dengan begitu, developer dapat membuat aplikasi yang powerfull, responsif, dan mampu bekerja tanpa bergantung pada latensi koneksi internet.
5. Hosting
Firebase juga menyediakan layanan hosting yang mudah digunakan untuk semua dokumen statis. Hanya dengan satu instruksi, developer dapat mengimplementasikan aplikasi web serta menyajikan konten statis maupun dinamis ke CDN (jaringan penayangan konten) global dengan cepat. Firebase juga menggunakan Superstatic (web server statis) yang dapat dijalankan secara lokal untuk testing keseluruhan. Kegunaan Firebase hosting itu sendiri yaitu untuk menayangkan konten menggunakan koneksi aman, cepat dan mendukung Developer mengimplementasikan aplikasi web dan menyajikan konten statis atau dinamis ke jaringan penayangan konten.
Cara Menggunakan Firebase
Business Untuk kamu pemula yang ingin belajar Firebase, pastikan kamu mempersiapkan beberapa tools sebagai berikut.
Pastikan Android Studio kamu sudah dalam versi yang paling terbaru
API target level 16 (jelly bean) atau yang paling baru
Menggunakan Gradle 4.1
Gunakan Jetpack (AndroidX) yang telah mencakup: com.android.tools.build:gradle v3.2.1 atau yang terbaru
CompileSdkVersion 28 atau yang terbaru
Siapkan perangkat fisik atau jalankan emulator untuk menjalankan emulator
Masuk kedalam akun Firebase kamu
Setelah semua lengkap, kamu bisa mulai untuk mengikuti Tutorial Firebase “Memulai Firebase Authentication di Android” berikut ini.
- Menghubungkan aplikasi ke Firebase
Tambahkan Firebase ke project Android jika kamu belum melakukannya.
- Menambahkan Firebase Authentication ke aplikasimu
Dengan Firebase Android BoM, deklarasikan dependensi untuk library Android Firebase Authentication dalam file Gradle modul (level aplikasi) (biasanya app/build.gradle).
Sekarang, mari kita lanjutkan dengan cara mengautentikasi pengguna. - Memeriksa status autentikasi saat ini.dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:26.6.0') // Declare the dependency for the Firebase Authentication library // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-auth' }
1. Deklarasikan instance FirebaseAuth.
private FirebaseAuth mAuth;
2. Dalam metode onCreate(), lakukan inisialisasi instance FirebaseAuth.
3. Saat melakukan inisialisasi Aktivitas kamu, periksa apakah pengguna saat ini sudah login atau belum.
// Initialize Firebase Auth mAuth = FirebaseAuth.getInstance();
- Mendaftarkan pengguna baru Buat metode createAccount baru yang menggunakan alamat email dan sandi, jalankan validasi, lalu buat pengguna baru dengan metode createUserWithEmailAndPassword.@Override public void onStart() { super.onStart(); // Check if user is signed in (non-null) and update UI accordingly. FirebaseUser currentUser = mAuth.getCurrentUser(); if(currentUser != null){ reload(); } }
Tambahkan formulir untuk mendaftarkan pengguna baru dengan email dan sandi mereka, dan panggil metode baru ini saat dikirim. - Membuat pengguna yang ada agar login Buat metode signIn baru yang menggunakan alamat email dan sandi, validasikan metode tersebut, lalu buat agar pengguna login dengan metode signInWithEmailAndPassword.mAuth.createUserWithEmailAndPassword(email, password) .addOnCompleteListener(this, new OnCompleteListener () { @Override public void onComplete(@NonNull Task task) { if (task.isSuccessful()) { // Sign in success, update UI with the signed-in user's information Log.d(TAG, "createUserWithEmail:success"); FirebaseUser user = mAuth.getCurrentUser(); updateUI(user); } else { // If sign in fails, display a message to the user. Log.w(TAG, "createUserWithEmail:failure", task.getException()); Toast.makeText(EmailPasswordActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show(); updateUI(null); } // ... } });
Tambahkan formulir untuk membuat pengguna login dengan email dan sandi mereka, dan panggil metode baru ini saat dikirim. - Mengakses informasi pengguna Jika pengguna berhasil login, kamu dapat memperoleh data akunnya kapan pun dibutuhkan dengan metode getCurrentUser.mAuth.signInWithEmailAndPassword(email, password) .addOnCompleteListener(this, new OnCompleteListener () { @Override public void onComplete(@NonNull Task task) { if (task.isSuccessful()) { // Sign in success, update UI with the signed-in user's information Log.d(TAG, "signInWithEmail:success"); FirebaseUser user = mAuth.getCurrentUser(); updateUI(user); } else { // If sign in fails, display a message to the user. Log.w(TAG, "signInWithEmail:failure", task.getException()); Toast.makeText(EmailPasswordActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show(); updateUI(null); // ... } // ... } });
Dengan demikian itu lah penjelasan mengenai Firebase, platform yang memiliki fitur utama untuk meng-outsource pengembangan di sisi back-end sehingga developer bisa berfokus pada pengalaman pengguna melalui front-end development. Firebase dapat menjadi pilihan kamu untuk pengembangan aplikasi berbasis web atau mobile. Apakah kamu tertarik menggunakan Firebase dalam pengembangan aplikasimu? Langkah Selanjutnya Adalah Mulai menggunakan AdMob di project Android Firebase.FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); if (user != null) { // Name, email address, and profile photo Url String name = user.getDisplayName(); String email = user.getEmail(); Uri photoUrl = user.getPhotoUrl(); // Check if user's email is verified boolean emailVerified = user.isEmailVerified(); // The user's ID, unique to the Firebase project. Do NOT use this value to // authenticate with your backend server, if you have one. Use // FirebaseUser.getIdToken() instead. String uid = user.getUid(); }
Mulai menggunakan AdMob di project Android
Panduan memulai ini ditujukan untuk penayang dan developer yang ingin menggunakan AdMob untuk memonetisasi aplikasi yang di-build dengan Firebase. Jika Anda tidak berencana untuk menyertakan Firebase dalam aplikasi, buka panduan AdMob mandiri.
Pelajari semua manfaat penggunaan AdMob, Firebase, dan Google Analytics secara bersamaan, jika belum melakukannya.
Sebelum memulai
Jika belum memiliki project Firebase dan aplikasi Firebase, ikuti panduan memulai Firebase: Menambahkan Firebase ke project Android.
Pastikan bahwa Google Analytics diaktifkan di project Firebase Anda:
Jika Anda membuat project Firebase baru, aktifkan Google Analytics selama alur kerja pembuatan project.
Jika sudah memiliki project Firebase yang belum mengaktifkan Google Analytics, Anda dapat mengaktifkan Google Analytics dari tab Integrations di bagian settings > Project settings.
Catatan: Menambahkan Firebase SDK untuk Google Analytics ke aplikasi Anda bersifat opsional tetapi sangat direkomendasikan. Pelajari lebih lanjut manfaat menambahkan Firebase SDK untuk Google Analytics.
Langkah 1: Siapkan aplikasi di akun AdMob
Daftarkan aplikasi sebagai aplikasi AdMob.
Login atau daftar untuk membuka akun AdMob.
Daftarkan aplikasi ke AdMob. Langkah ini akan membuat aplikasi AdMob dengan ID Aplikasi AdMob unik yang nantinya akan Anda butuhkan dalam panduan ini.
Anda akan diminta untuk menambahkan Mobile Ads SDK ke aplikasi Anda. Temukan petunjuk detail terkait tugas ini nanti dalam panduan ini.
Tautkan aplikasi AdMob ke aplikasi Firebase Anda.
Langkah ini bersifat opsional, tetapi sangat direkomendasikan. Pelajari lebih lanjut manfaat mengaktifkan metrik pengguna dan menautkan aplikasi AdMob ke Firebase.
Selesaikan dua langkah berikut di dasbor Apps pada akun AdMob Anda:
Aktifkan User Metrics agar AdMob dapat memproses dan menampilkan data analisis pilihan di akun AdMob Anda. Ini juga merupakan setelan wajib agar dapat menautkan aplikasi AdMob ke Firebase.
Tautkan aplikasi AdMob Anda ke project Firebase dan aplikasi Firebase yang ada.
Pastikan nama paket yang dimasukkan sama dengan yang dimasukkan untuk aplikasi Firebase. Temukan nama paket aplikasi Firebase Anda di kartu Your apps pada settings > Project settings.
Langkah 2: Tambahkan ID Aplikasi AdMob ke file AndroidManifest.xml
Tambahkan ID Aplikasi AdMob ke file AndroidManifest.xml aplikasi Anda dengan menambahkan tag seperti yang ditampilkan di bawah.
Penting: Langkah ini diperlukan mulai Google Mobile Ads SDK v17.0.0.
Langkah 3: Tambahkan dan inisialisasi Mobile Ads SDK<manifest> <application> <!-- Sample AdMob App ID: ca-app-pub-4824064869597209~7529457226 --> <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ADMOB_APP_ID"/> </application> </manifest>
Langkah 4: Lihat metrik pengguna dan data analisis@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ... MobileAds.initialize(this); }
Menambahkan File Package
Implementasi Packagecom.awdev com.awdev.app com.awdev.webview eu.org.awdev eu.org.awdev.app eu.org.awdev.webview pwa.awdev pwa.awdev.app pwa.awdev.web.view com.mikrodinet eu.org.mikrodinet eu.org.mikrodinet.app eu.org.mikrodinet.webview
Penerapan Admob Dengan Plugin Cordova Tambahkan Source Instalasi Code Banner and Interstitial di Aplikasi Android dan Iospackage eu.org.mikrodinet; import android.Manifest; import android.annotation.SuppressLint; import android.app.Activity; import android.app.AlertDialog; import android.app.DownloadManager; import android.content.Context; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.Environment; import android.webkit.CookieManager; import android.webkit.URLUtil; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Toast; import androidx.annotation.RequiresApi; import androidx.core.app.ActivityCompat; public class MainActivity extends Activity { private final int STORAGE_PERMISSION_CODE = 1; private WebView mWebView; private void requestStoragePermission() { if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_EXTERNAL_STORAGE)) { new AlertDialog.Builder(this) .setTitle("Permission needed") .setMessage("This permission is needed to download files") .setPositiveButton("ok", (dialog, which) -> ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, STORAGE_PERMISSION_CODE)) .setNegativeButton("cancel", (dialog, which) -> dialog.dismiss()) .create().show(); } else { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, STORAGE_PERMISSION_CODE); } } @RequiresApi(api = Build.VERSION_CODES.Q) @Override @SuppressLint("SetJavaScriptEnabled") protected void onCreate(Bundle savedInstanceState) { requestStoragePermission(); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mWebView = findViewById(R.id.activity_main_webview); WebSettings webSettings = mWebView.getSettings(); webSettings.setJavaScriptEnabled(true); mWebView.setWebViewClient(new HelloWebViewClient()); mWebView.setDownloadListener((url, userAgent, contentDisposition, mimeType, contentLength) -> { Uri source = Uri.parse(url); DownloadManager.Request request = new DownloadManager.Request(source); String cookies = CookieManager.getInstance().getCookie(url); request.addRequestHeader("cookie", cookies); request.addRequestHeader("User-Agent", userAgent); request.setDescription("Downloading File..."); request.setTitle(URLUtil.guessFileName(url, contentDisposition, mimeType)); request.allowScanningByMediaScanner(); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, URLUtil.guessFileName(url, contentDisposition, mimeType)); DownloadManager dm = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); dm.enqueue(request); Toast.makeText(getApplicationContext(), "Downloading File", Toast.LENGTH_LONG).show(); }); mWebView.loadUrl("https://www.mikrodinet.eu.or"); //Replace The Link Here } private static class HelloWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(final WebView view, final String url) { view.loadUrl(url); return true; } } @Override public void onBackPressed() { if (mWebView.canGoBack()) { mWebView.goBack(); } else { super.onBackPressed(); } } }
Tambahkan Google service Json GoogleService.json//initialize the goodies function initAd(){ if ( window.plugins && window.plugins.AdMob ) { var ad_units = { ios : { banner: 'ca-app-pub-6827901881006590/7982089965', //PUT ADMOB ADCODE HERE interstitial: 'ca-app-pub-6827901881006590/6698817209' //PUT ADMOB ADCODE HERE }, android : { banner: 'ca-app-pub-6827901881006590/7982089965', //PUT ADMOB ADCODE HERE interstitial: 'ca-app-pub-6827901881006590/6698817209' //PUT ADMOB ADCODE HERE } }; var admobid = ( /(android)/i.test(navigator.userAgent) ) ? ad_units.android : ad_units.ios; window.plugins.AdMob.setOptions( { publisherId: admobid.banner, interstitialAdId: admobid.interstitial, bannerAtTop: false, // set to true, to put banner at top overlap: true, // set to true, to allow banner overlap webview offsetTopBar: false, // set to true to avoid ios7 status bar overlap isTesting: false, // receiving test ad autoShow: false // auto show interstitial ad when loaded }); registerAdEvents(); window.plugins.AdMob.createInterstitialView(); //get the interstitials ready to be shown window.plugins.AdMob.requestInterstitialAd(); } else { //alert( 'admob plugin not ready' ); } } //functions to allow you to know when ads are shown, etc. function registerAdEvents() { document.addEventListener('onReceiveAd', function(){}); document.addEventListener('onFailedToReceiveAd', function(data){}); document.addEventListener('onPresentAd', function(){}); document.addEventListener('onDismissAd', function(){ }); document.addEventListener('onLeaveToAd', function(){ }); document.addEventListener('onReceiveInterstitialAd', function(){ }); document.addEventListener('onPresentInterstitialAd', function(){ }); document.addEventListener('onDismissInterstitialAd', function(){ window.plugins.AdMob.createInterstitialView(); //REMOVE THESE 2 LINES IF USING AUTOSHOW window.plugins.AdMob.requestInterstitialAd(); //get the next one ready only after the current one is closed }); } //display the banner function showBannerFunc(){ window.plugins.AdMob.createBannerView(); } //display the interstitial function showInterstitialFunc(){ window.plugins.AdMob.createInterstitialView(); //get the interstitials ready to be shown and show when it's loaded. window.plugins.AdMob.requestInterstitialAd(); } window.plugins.AdMob.destroyBannerView();
{
"project_info": {
"project_number": "506021927297",
"project_id": "just-resolver-373013",
"storage_bucket": "just-resolver-373013.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:506021927297:android:eaef3fb89531f5f5d47080",
"android_client_info": {
"package_name": "com.mikrodinet.app"
}
},
"oauth_client": [
{
"client_id": "506021927297-cbtqp4m737pnuno6inl561s4hk0o6fh3.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyCsJdQSdfMvUhoPtkRK5DV9fGS52P1KZMc"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "506021927297-cbtqp4m737pnuno6inl561s4hk0o6fh3.apps.googleusercontent.com",
"client_type": 3
}
]
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:506021927297:android:e5d0fc5241683a57d47080",
"android_client_info": {
"package_name": "eu.org.mikrodinet.app"
}
},
"oauth_client": [
{
"client_id": "506021927297-cbtqp4m737pnuno6inl561s4hk0o6fh3.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyCsJdQSdfMvUhoPtkRK5DV9fGS52P1KZMc"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "506021927297-cbtqp4m737pnuno6inl561s4hk0o6fh3.apps.googleusercontent.com",
"client_type": 3
}
]
}
},
"admob_app_id": "ca-app-pub-6827901881006590~1120387899"
},
{
"client_info": {
"mobilesdk_app_id": "1:506021927297:android:66f8aa16f94d7a07d47080",
"android_client_info": {
"package_name": "eu.org.mikrodinet.webview"
}
},
"oauth_client": [
{
"client_id": "506021927297-cbtqp4m737pnuno6inl561s4hk0o6fh3.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyCsJdQSdfMvUhoPtkRK5DV9fGS52P1KZMc"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "506021927297-cbtqp4m737pnuno6inl561s4hk0o6fh3.apps.googleusercontent.com",
"client_type": 3
}
]
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:506021927297:android:7f0748f0b0d72eacd47080",
"android_client_info": {
"package_name": "io.gonative.ios.wrjomm"
}
},
"oauth_client": [
{
"client_id": "506021927297-cbtqp4m737pnuno6inl561s4hk0o6fh3.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyCsJdQSdfMvUhoPtkRK5DV9fGS52P1KZMc"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "506021927297-cbtqp4m737pnuno6inl561s4hk0o6fh3.apps.googleusercontent.com",
"client_type": 3
}
]
}
}
}
],
"configuration_version": "1"
}
Post a Comment