۱. مقدمه
آخرین بهروزرسانی: 2021-01-25
آنچه خواهید ساخت
در این آزمایشگاه کد، شما یاد خواهید گرفت که چگونه رویدادهای سفارشی را با GA4F پیادهسازی کنید و از طریق Google Ads برای برنامه Flutter، کمپینهای اکشن راهاندازی کنید.
ما از برنامه پیشفرض فلاتر با یک ویجت شمارنده ساده استفاده خواهیم کرد. ما برنامه خود را برای کاربران بالقوه تبلیغ خواهیم کرد که احتمالاً روی ویجت شمارنده کلیک خواهند کرد.

آنچه یاد خواهید گرفت
- نحوه مقداردهی اولیه GA4F (گوگل آنالیتیکس برای فایربیس) در فلاتر
- نحوه ایجاد رویدادها و پارامترهای سفارشی
- نحوه وارد کردن رویدادها از Firebase به Google Ads
- نحوه راه اندازی کمپین های اکشن با رویدادهای سفارشی
آنچه نیاز دارید
- اندروید استودیو ۳.۶ یا بالاتر
- Xcode (برای پشتیبانی از iOS)
- حساب فایربیس
- حساب کاربری گوگل ادز
۲. یک پروژه جدید فلاتر شروع کنید
یک برنامه ساده با قالب Flutter ایجاد کنید. شما این برنامه اولیه را برای این آزمایشگاه کد تغییر خواهید داد.
اندروید استودیو را اجرا کنید.
- اگر پروژههای باز ندارید، از صفحه خوشامدگویی گزینه Start a new Flutter app p را انتخاب کنید. در غیر این صورت، File > New > New Flutter Project را انتخاب کنید.
- نوع پروژه را Flutter Application انتخاب کنید و روی Next کلیک کنید.
- تأیید کنید که مسیر Flutter SDK، محل SDK را مشخص میکند. (اگر فیلد متن خالی است، Install SDK را انتخاب کنید.)
- نام پروژه را وارد کنید و روی Next کلیک کنید.
- از نام بسته پیشفرض پیشنهاد شده توسط اندروید استودیو استفاده کنید و روی «بعدی» کلیک کنید.
- روی پایان کلیک کنید.
- منتظر بمانید تا اندروید استودیو SDK را نصب کند و پروژه را ایجاد کند.
۳. ایجاد و راهاندازی یک پروژه Firebase
برای شروع کار با Firebase، باید یک پروژه Firebase ایجاد و راهاندازی کنید.
ایجاد یک پروژه فایربیس
- وارد فایربیس شوید.
در کنسول Firebase، روی «افزودن پروژه» (یا «ایجاد پروژه») کلیک کنید و نام پروژه Firebase خود را Firebase-Flutter-Ads یا هر نام دیگری که دوست دارید، بگذارید.

- روی گزینههای ایجاد پروژه کلیک کنید. در صورت درخواست، شرایط Firebase را بپذیرید. شما باید Google Analytics را برای این پروژه فعال کنید، زیرا برای ردیابی رویدادهای عملی و تجزیه و تحلیل تبدیلها به رویدادهای Google Analytics نیاز دارید.

برای کسب اطلاعات بیشتر در مورد پروژههای فایربیس، به بخش «درک پروژههای فایربیس» مراجعه کنید.
۴. پیکربندی فایربیس مخصوص پلتفرم (اندروید)
پیکربندی اندروید
- در کنسول فایربیس، در منوی سمت چپ، گزینهی «نمای کلی پروژه» را انتخاب کنید، سپس روی دکمهی اندروید در زیر بخش «شروع با افزودن فایربیس به برنامهی خود» کلیک کنید.
کادر محاورهای نشان داده شده در صفحه زیر را مشاهده خواهید کرد.

- مقدار مهمی که باید ارائه دهید، نام بسته اندروید است که با استفاده از مرحله زیر به دست خواهید آورد.
- در دایرکتوری برنامه Flutter خود، فایل
android/app/src/main/AndroidManifest.xmlرا باز کنید. - در عنصر
manifest، مقدار رشتهایِ ویژگیِpackageرا پیدا کنید. این مقدار، نام پکیج اندروید است (چیزی شبیهcom.yourcompany.yourproject). این مقدار را کپی کنید. - در پنجرهی فایربیس، نام بستهی کپیشده را در فیلد
Android package nameجایگذاری کنید. - ما در اینجا به کلید SHA-1 نیازی نداریم، مگر اینکه قصد داشته باشید از Google Sign In یا Firebase Dynamic Links استفاده کنید (توجه داشته باشید که این موارد بخشی از این codelab نیستند). اگر قصد دارید دادههای
in_app_purchaseرا از Google Play وارد کنید، باید کلید را بعداً تنظیم کنید. - روی ثبت برنامه کلیک کنید.
- در ادامه در Firebase، دستورالعملها را برای دانلود فایل پیکربندی
google-services.jsonدنبال کنید.

- به دایرکتوری برنامه Flutter خود بروید، سپس فایل
google-services.json(که به تازگی دانلود کردهاید) را به دایرکتوریandroid/appمنتقل کنید. - به کنسول Firebase برگردید، مراحل باقی مانده را رد کنید و به صفحه اصلی کنسول Firebase برگردید.
- در نهایت، برای خواندن فایل
google-services.jsonکه توسط Firebase تولید شده است، به افزونه Google Services Gradle نیاز دارید. - در IDE یا ویرایشگر خود،
android/app/build.gradleرا باز کنید، سپس خط زیر را به عنوان آخرین خط در فایل اضافه کنید:
apply plugin: 'com.google.gms.google-services'
-
android/build.gradleرا باز کنید، سپس درون تگbuildscript، یک وابستگی جدید اضافه کنید:
buildscript {
repositories {
// ...
}
dependencies {
// ...
Classpath 'com.google.gms:google-services:4.3.3'
}
}
- اگر برنامه شما هنوز در حال اجرا است، آن را ببندید و دوباره بسازید تا gradle بتواند وابستگیها را نصب کند.
پیکربندی برنامه Flutter برای اندروید شما تمام شد! برای iOS، میتوانید به این آزمایشگاه کد ( آشنایی با Firebase برای Flutter ) مراجعه کنید.
۵. پیکربندی Firebase Analytics در فلاتر
در این مرحله، شما شروع به استفاده از بسته Firebase Analytics با نام firebase_analytics خواهید کرد که شامل ویژگیهای Firebase Analytics است.
فایل pubspec داراییهای یک برنامه Flutter را مدیریت میکند. در pubspec.yaml ، firebase_analytics: ^6.2.0 ( firebase_analytics 6.2.0 یا بالاتر) را به لیست وابستگیها اضافه کنید:
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.2
firebase_analytics: ^6.2.0 # add this line
هنگام مشاهدهی pubspec در نمای ویرایشگر اندروید استودیو، روی Packages get کلیک کنید. این کار پکیج را به پروژهی شما وارد میکند. باید موارد زیر را در کنسول مشاهده کنید:
flutter packages get
Running "flutter packages get" in startup_namer...
Process finished with exit code 0
اجرای Pub get همچنین به طور خودکار فایل pubspec.lock را با لیستی از تمام بستههای وارد شده به پروژه و شماره نسخههای آنها تولید میکند.
در lib/main.dart ، بسته جدید را وارد کنید:
import 'package:firebase_analytics/firebase_analytics.dart';
در کلاس MyApp ، شیء FirebaseAnalytics را با فراخوانی سازنده (constructor) آغاز کنید.
class MyApp extends StatelessWidget {
static FirebaseAnalytics analytics = FirebaseAnalytics();
...
}
حالا آمادهاید تا چند گزارش رویداد سفارشی ایجاد کنید!
۶. ثبت رویدادهای سفارشی با Firebase Analytics
اگر قرار باشد یک الگوی جدید در برنامه Flutter ایجاد کنید، یک متغیر _counter و متد _incrementCounter() را درون کلاس پیشفرض State مشاهده خواهید کرد. اکنون، میخواهید رویدادهای سفارشی را هنگامی که دکمه افزایش بیش از پنج بار از سوی کاربران مشتاق کلیک میشود، ثبت کنید. بعداً، یک کمپین برنامه برای جذب کاربران مشتاق بالقوه راهاندازی خواهیم کرد.
ابتدا، میخواهیم اشیاء تحلیلی را که مقداردهی اولیه کردهایم به ویجت Stateful منتقل کنیم. ما با اضافه کردن یک پارامتر analytics به سازنده MyHomePage شروع میکنیم.
MyHomePage({Key key, this.title, this.analytics}) : super(key: key);
همچنین هنگام فراخوانی سازنده، یک پارامتر تحلیلی اضافه خواهید کرد.
home: MyHomePage(
title: 'Flutter Demo Home Page',
analytics: analytics,
),
حالا، میتوانید به راحتی رویدادها را با متد logEvent() ثبت کنید. این متد را اضافه کنید و متغیر _counter را افزایش دهید.
void _incrementCounter() {
setState(() {
_counter++;
//add this
if(_counter > 5) {
widget.analytics.logEvent(name: "clicked_counter");
}
});
}
حالا برنامه شما آماده است تا گزارش رویداد سفارشی را اجرا کند!
همچنین میتوانید از متدهای از پیش ساخته شده برای اجرای رویدادها استفاده کنید.

حالا همه چیز آماده است. در اندروید استودیو خود، فایل "main.dart" را اجرا کنید.
(اختیاری) ارسال اطلاعات اضافی به Firebase Analytics با استفاده از پارامترها
شما میتوانید اطلاعات اضافی را از طریق پارامترها ارسال کنید. پارامترهای سفارشی را میتوان برای گزارشگیری در گزارشهای Analytics خود ثبت کرد . همچنین میتوان از آنها به عنوان فیلتر در تعریف مخاطبان استفاده کرد که میتوانند برای هر گزارش اعمال شوند. اگر برنامه شما به یک پروژه BigQuery مرتبط باشد، پارامترهای سفارشی نیز در BigQuery یافت میشوند (به بخش BigQuery Export برای Firebase مراجعه کنید).
ما در اینجا مقدار _counter را به عنوان پارامتر تنظیم میکنیم.
void _incrementCounter() {
setState(() {
_counter++;
if(_counter > 5) {
widget.analytics.logEvent(name: "clicked_counter", parameters: {'count' : _counter});
}
});
}
بررسی و اشکالزدایی رویدادها
چند ساعت دیگر، میتوانید رویدادهای ثبتشده خود را در کنسول Firebase مشاهده کنید. کافیست روی تب Events از بخش Analytics موجود در کنسول Firebase کلیک کنید. همچنین میتوانید با کلیک روی رویداد، مقادیر داخل رویداد clicked_counter بررسی کنید.

با کشیدن دکمهی «علامتگذاری به عنوان تبدیل» به سمت راست، clicked_counter به عنوان یک تبدیل علامتگذاری کنید.

اگر رویداد در تب Conversion باشد، شما با موفقیت آن را به عنوان یک تبدیل علامتگذاری کردهاید. اکنون گوگل ادز میتواند این رویداد را از Firebase وارد کند.
برای اشکالزدایی، از Firebase DebugView استفاده کنید. برای جزئیات بیشتر، به رویداد اشکالزدایی مراجعه کنید.
۷. وارد کردن رویدادهای تحلیلی در گوگل ادز
پس از اتمام راهاندازی Firebase-Flutter، آماده راهاندازی کمپینهای اپلیکیشن با رویدادهای اکشن هستید. با پیوند دادن Firebase به Google Ads شروع کنید. با پیوند دادن Firebase به Google Ads، کمپینهای اپلیکیشن میتوانند رویدادهای Firebase را وارد کنند. این فرآیند همچنین به Google Ads کمک میکند تا با فراهم کردن امکان کسب اطلاعات بیشتر در مورد مخاطبان، کمپینهای اپلیکیشن را تقویت کند.
- با کلیک روی دکمه کنار نمای کلی پروژه ، به تنظیمات فایربیس بروید.
- در تب Integrations ، گوگل ادز و دکمهی لینک را خواهید دید. روی لینک کلیک کنید و سپس روی ادامه کلیک کنید.

- حساب کاربری گوگل ادز را انتخاب کنید.
حالا بخش Firebase تمام شده است.
به بخش تبلیغات گوگل بروید.
- وارد شوید و برای وارد کردن رویدادهای سفارشی به عنوان تبدیل، به ابزارها و تنظیمات > اندازهگیری > تبدیلها بروید.
- برای افزودن اقدامات تبدیل جدید، روی دکمه + کلیک کنید.

- ویژگیهای Google Analytics 4 (Firebase) را انتخاب کنید و روی ادامه کلیک کنید.

- میتوانید تمام رویدادهای تحلیلی که به عنوان تبدیل علامتگذاری شدهاند را مشاهده کنید. رویداد
clicked_counterرا که قبلاً پیادهسازی کردیم، پیدا کنید.

- عملکرد را بررسی کنید، روی وارد کردن کلیک کنید و سپس روی ادامه کلیک کنید.

پس از تنظیم clicked_counter به عنوان یک اقدام تبدیل، میتوانید کمپینهای عملی راهاندازی کنید که میتوانند کاربرانی را هدف قرار دهند که احتمالاً بیش از ۵ بار رویدادهای clicked_counter فعال میکنند.
۸. راهاندازی کمپینهای اکشن اپلیکیشن با رویدادهای وارد شده
- به برگه کمپین حساب فعلی خود بروید و با کلیک بر روی دکمه + ، یک کمپین جدید شروع کنید. روی [کمپین جدید] کلیک کنید و سپس روی ادامه کلیک کنید.
- با گزینه نصب اپلیکیشن، یک کمپین تبلیغاتی اپلیکیشن راهاندازی کنید.

- با تایپ نام برنامه، نام بسته یا ناشر، برنامه خود را پیدا کنید.
- در بخش پیشنهاد قیمت ، از منوی کشویی، گزینه «اقدامات درون برنامهای» را انتخاب کنید.
- رویداد سفارشی خود را در لیست ارائه شده پیدا کنید. هزینه هدف برای هر اقدام را تعیین کنید و گزینههای اضافی را تکمیل کنید.

- تنظیمات کمپین خود را تکمیل کنید.
۹. تبریک
تبریک میگویم، شما با موفقیت Firebase و Google Ads خود را ادغام کردید! این به شما کمک میکند تا عملکرد کمپین خود را با رویدادهای وارد شده در Firebase افزایش دهید.
یاد گرفتی.
- نحوه پیکربندی Firebase Analytics برای Flutter
- نحوه ثبت رویدادهای سفارشی با Firebase Analytics در برنامه Flutter.
- نحوه وارد کردن رویدادها و استفاده از آنها برای کمپینهای اکشن.
