چشمک پلاس(شبکه تبلیغاتی چشمک)

با استفاده از چشمک پلاس(شبکه تبلیغاتی چشمک) می‌توانید درآمد خود را در اپلیکیشن های اندروید خود افزایش دهید. چشمک با استفاده از الگوریتم های خود از بهترین ارائه دهنده تبلیغ را دریافت و در دستگاه اندروید نمایش می دهد. با این روش درآمد شما افزایش پیدا می کند.

 

نصب چشمک پلاس

«چشمک پلاس» یک کتابخانه بوده که به کتابخانه چشمک وابسته می باشد. از این رو ابتدا نیاز بوده تا چشمک را نصب کرده و سپس چشمک پلاس را نصب کنید.

به منظور پیاده سازی چشمک پلاس مراحل زیر را انجام دهید.

۱.افزودن چشمک به پروژه

مراحل نصب چشمک را از مستندات مربوطه طی کنید و از نسخه +.4 چشمک استفاده کنید. 

۲.تنظیم Gradle

وابستگی های مورد نیاز را به پروژه‌تان اضافه کنید:


implementation 'me.cheshmak:cheshmakplus:2.+'
implementation 'com.google.android.gms:play-services-ads:19.5.0'
implementation 'com.google.android.ads.consent:consent-library:1.0.8'

۳.راه اندازی چشمک پلاس

کد زیر را در متد onCreate کلاس Application قرار دهید.

دقت کنید که فقط در کلاس Application این تابع را فراخوانی کنید و ورودی آن از نوع Application است.

CheshmakPlus.with(ApplicationClass.this);

۴.پیاده سازی تبلیغات

تبلیغات بنری

تبلیغات بنری تبلیغاتی هستند که یک فضای مستطیلی شکل را اشغال کرده و معمولا از نوع عکس یا متن می‌باشند. این نوع از تبلیغات در صفحه نمایش مانده تا زمانی که کاربر از آن صفحه برود. به منظور فعال سازی این نوع تبلیغ کافی است تا در هر layout ای که قصد نمایش تبلیغ بنری را دارید کد زیر را قرار دهید:


<me.cheshmak.cheshmakplussdk.advertise.CheshmakBannerAd
android:id="@+id/cheshmak_banner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:banner_size="BANNER_SMART"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" /> 

نیاز به تنظیمات بیشتری نبوده و تمامی رویداد های نمایش و کلیک به صورت اتوماتیک ثبت خواهند شد. شما می توانید بنر را در هر کجای layout که مایل هستید به نمایش بگذارید.

برای تنظیم سایز بنر میتوانید مقدار banner_size را تغییر دهید. مقادیر زیر در سایز بنر قابل استفاده میباشد.

BANNER_320x50
BANNER_320x100
BANNER_300x250
BANNER_468x60
BANNER_728x90
BANNER_SMART

توجه داشته باشید که سایز BANNER_728x90 برای حالت تست مود از طرف ادموب پشتیبانی نمی شود.

برای دریافت رویداد های بنر مطابق کد زیر عمل کنید:

CheshmakBannerAd cheshmakBannerAd = findViewById(R.id.cheshmak_banner);
        cheshmakBannerAd.setCallback(new BannerCallback() {
            @Override
            public void onAdLoaded() {
            }

            @Override
            public void onAdOpened() {
            }

            @Override
            public void onAdFailedToLoad() {
            }

            @Override
            public void onAdClosed() {
            }
        });

نمونه ای از این تبلیغ را در شکل زیر مشاهده می‌کنید:

تبلیغات بینابینی (interstitial)

تبلیغات بینابینی نوعی از تبلیغات بوده که در حین کار کردن کاربران با اپلیکیشن به صورت تمام صفحه نمایش داده می شود.  و کاربر حق انتخاب این که روی تبلیغ کلیک کند یا به صفحه برنامه برگردد را دارد. این نوع تبلیغ را می توان در مکان هایی مانند کلیک روی یک دکمه مهم یا هنگامی که کاربر از یک اکتیویتی به اکتیویتی دیگر می رود نشان داد.به منظور نمایش این آگهی ابتدا در متد onCreate اکتیویتی مورد نظر آبجکتی از کلاس CheshmakInterstitialAd بسازید:

final CheshmakInterstitialAd cheshmakInterstitialAd = new CheshmakInterstitialAd(this);

با new کردن این آبجکت، تبلیغ مورد نظر دریافت شده و برای نمایش به کاربر آماده به نمایش می‌شود. برای دریافت رویداد های تبلیغات بینابینی باید در زمان new کردن تبلیغ، کالبک را هم مقداردهی کنید. کد زیر برای دریافت کالبک می باشد:

final CheshmakInterstitialAd cheshmakInterstitialAd = new CheshmakInterstitialAd(this,new InterstitialCallback() { @Override public void onAdLoaded() { } @Override public void onAdOpened() { } @Override public void onAdFailedToLoad() { } @Override public void onAdClosed() { } });

سپس در محلی که قرار است تبلیغ نمایش داده شود(مثلا وقتی کاربر بر روی دکمه خاصی کلیک کرد) کد زیر را وارد کنید:

if (cheshmakInterstitialAd.isLoaded()) {
  cheshmakInterstitialAd.show();
}

با این کار در صورتی که تبلیغ با موفقیت لود شده باشد به کاربر نشان داده می‌شود.
تبلیغات بینابینی دارای میزان درآمد بیشتری نسبت به بنری می‌باشد. در عین حال سعی کنید در صورتی که تبلیغ بینابینی به کاربر نشان دادید بلافاصله دوباره نشان ندهید و تعداد دفعات نمایش آن را کم کنید.همچنین مطمئن شوید ایجاد آبجکت CheshmakInterstitialAd و صدا زدن تابع show در آن با کمی فاصله صورت می‌گیرد. در صورتی که بلافاصله تابع show را فراخوانی کنید تبلیغی نمایش داده نخواهد شد.

نکته: هنگامی که یک شی از CheshmakInterstitialAd ایجاد می کنید این کلاس اقدام به لود کردن تبلیغ می کند. همچنین در برخی اوقات ممکن است اقدام به دریافت تبلیغ جدید کرده و تابع onAdLoaded دوباره فراخوانی شود. از این رو در کدهای خود از اقداماتی که باعث می شود onAdLoaded در لوپ بافتد جلوگیری کنید.

نمونه‌ای از تبلیغ بینابینی که تبلیغ یک اپلیکیشن در گوگل پلی می‌باشد در شکل زیر آمده است:

تبلیغات بنر همسان

برای ایجاد بنر همسان ابتدا یک view ایجاد کنید که بنر در آن نمایش داده شود. 

<FrameLayout
    android:id="@+id/nativeAdContainer"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintTop_toTopOf="parent">
</FrameLayout>

حالا یک layout دلخواه مطابق شکلی که قصد دارید تبلیغ نمایش داده شود بسازید که rootView از نوع com.google.android.gms.ads.formats.UnifiedNativeAdView باشد و id و نوع بخش‌های مختلف مطابق با جدول زیر باشد:

type id view
ImageView cheshmak_ad_app_icon icon
TextView cheshmak_ad_headline headline
TextView cheshmak_ad_advertiser advertiser
RatingBar cheshmak_ad_stars stars
TextView cheshmak_ad_body body

com.google.android.gms.ads.formats.MediaView

cheshmak_ad_media MediaView
TextView cheshmak_ad_price price
TextView cheshmak_ad_store store
Button cheshmak_ad_call_to_action action

نوع ویوها میتواند از نوع‌های گفته شده ارث بری کرده باشند.

نمونه layout برای استفاده از اینجا دریافت نمایید.

برای ایجاد تبلیغ بنر همسان از کد زیر استفاده کنید:

ViewGroup adContainer = findViewById(R.id.nativeAdContainer);
CheshmakNativeBannerAd cheshmakNativeBannerAd = new CheshmakNativeBannerAd(MainActivity.this,
        adContainer, R.layout.ad_unified, new NativeBannerCallback() {
    @Override
    public void onAdLoaded() {
        Log.d("native banner", "onAdLoaded");
    }

    @Override
    public void onAdOpened() {
        Log.d("native banner", "onAdOpened");
    }

    @Override
    public void onAdFailedToLoad() {
        Log.d("native banner", "onAdFailedToLoad");
    }

    @Override
    public void onAdClosed() {
        Log.d("native banner", "onAdClosed");
    }
});

نمونه ای از این تبلیغ را در شکل زیر مشاهده می‌کنید:

تبلیغات بنر همسان به صورت چند توکنه

در صورتی که می خواهید از چند تبلیغ همسان در اپلیکیشن خود استفاده کنید و برای هر کدام از تبلیغ ها توکن های مختص خود را داشته باشید می توانید در هنگام new کردن کلاس CheshmakNativeBannerAd شناسه توکن مربوطه را پاس دهید. به مثال زیر توجه کنید:

CheshmakNativeBannerAd cheshmakNativeBannerAd = new CheshmakNativeBannerAd(MainActivity.this,
         CheshmakNativeBannerAd.Token.A,
         adContainer,
         R.layout.ad_unified,
         new NativeBannerCallback() { ....})

در این مثال از توکن A برای این تبلیغ استفاده شده است. شما می توانید از توکن های A و B و Cو D و E را به دلخواه استفاده کنید.

مهم: پس از انتشار اپلیکیشن خود با پشتیبانی ارتباط برقرار کرده و توکن هایی که استفاده کرده اید را اطلاع دهید تا توکن های نیتیو استفاده شده توسط شما فعال گردند و شاهد کسب درآمد باشید.

 

تبلیغات بنر مربعی (MREC)

تبلیغاتی هستند که یک فضای مربعی شکل را اشغال کرده و معمولا از نوع عکس یا متن می‌باشند. این نوع از تبلیغات در صفحه نمایش مانده تا زمانی که کاربر از آن صفحه برود.

* طبق آمار این نوع تبلیغ درآمد شما را به صورت چشم گیری افزایش می دهد و پیشنهاد چشمک استفاده شما از این نوع تبلیغ می باشد.

 به منظور فعال سازی این نوع تبلیغ کافی است تا در هر layout ای که قصد نمایش تبلیغ را دارید کد زیر را قرار دهید:


<me.cheshmak.cheshmakplussdk.advertise.CheshmakMrecAd
android:id="@+id/cheshmak_mrec"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />

نیاز به تنظیمات بیشتری نبوده و تمامی رویداد های نمایش و کلیک به صورت اتوماتیک ثبت خواهند شد. شما می توانید تبلیغ را در هر کجای layout که مایل هستید به نمایش بگذارید.

برای دریافت رویداد های تبلیغ بنر مربعی مطابق کد زیر عمل کنید:

CheshmakMrecAd cheshmakMrecAd = findViewById(R.id.cheshmak_mrec);
        cheshmakMrecAd.setCallback(new MrecCallback() {
            @Override
            public void onAdLoaded() {
            }

            @Override
            public void onAdOpened() {
            }

            @Override
            public void onAdFailedToLoad() {
            }

            @Override
            public void onAdClosed() {
            }
        });
 

نمونه ای از این تبلیغ را در شکل زیر مشاهده می‌کنید:

تبلیغات جایزه‌ای (rewarded)

تبلیغات جایزه‌ای نوعی از تبلیغات بوده که در ازای دیدن یک ویدیو توسط کاربر، امتیازی درون برنامه به کاربر داده می‌شود. این نوع تبلیغ را می توان در مکان هایی مانند گرفتن امتیاز اضافی یا رد کردن یک مرحله بدون بازی کردن آن نشان داد.

نکته‌ای که در این نوع تبلیغات بسیار مهم می‌باشد این است که دیدن این ویدیو الزاما باید با رضایت کاربر باشد و هیچ اجباری به دیدن آن نباید وجود داشته باشد.

* این نوع تبلیغ معمولا درآمد بیشتری نسبت به تبلیغات بینابینی ایجاد می کند و مهم بوده تا در جای مناسب و به منظور پاداش دادن به کاربر استفاده شود.

به منظور نمایش این آگهی ابتدا در متد onCreate اکتیویتی مورد نظر آبجکتی از کلاس CheshmakRewardedAd بسازید:

final CheshmakRewardedAd cheshmakRewardedAd = new CheshmakRewardedAd(this);

سپس نیاز بوده تا در محلی که قرار است تبلیغ نمایش داده شود متد show را فراخوانی کنید. مثلا در صورتی که از یک دکمه استفاده می‌کنید می‌توانید از مثال زیر استفاده کنید:


final CheshmakRewardedAd cheshmakRewardedAd=new CheshmakRewardedAd(this);
Button rewardedButton=findViewById(R.id.cheshmak_rewarded_ad_button);
rewardedButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if(cheshmakRewardedAd.isLoaded()){
            cheshmakRewardedAd.show();
        }
    }
});

با این کار در صورتی که تبلیغ با موفقیت لود شده باشد به کاربر نشان داده می‌شود.
مطمئن شوید ایجاد آبجکت CheshmakRewardedAd و صدا زدن تابع show در آن با کمی فاصله صورت می‌گیرد. در صورتی که بلافاصله تابع show را فراخوانی کنید تبلیغی نمایش داده نخواهد شد.

برای دریافت رویدادهای تبلیغ و دادن امتیاز در صورت مشاهده کامل ویدئو ، باید زمان ساختن  CheshmakRewardedAd  کلبک را هم وارد نمایید:

final CheshmakRewardedAd cheshmakRewardedAd = new CheshmakRewardedAd(this , new RewardedCallback() {
@Override
public void onRewardedVideoAdLoaded() {
}

@Override
public void onRewardedVideoAdOpened() {
}

@Override
public void onRewardedVideoAdFailedToLoad() {
}

@Override
public void onRewarded() {
}

@Override
public void onRewardedVideoAdClosed() {
}
}); 

نمونه‌ای از تبلیغ پاداش که تبلیغ یک اپلیکیشن در گوگل پلی می‌باشد در شکل زیر آمده است:

 

نمایش تبلیغ تستی

به منظور این که مطمئن شوید تمامی تنظیمات را به درستی انجام داده اید کد زیر را در کلاس اپلیکیشن پس از فراخوانی چشمک پلاس قرار دهید:

CheshmakPlus.setTestMode(true);

این کد باعث شده تا تبلیغات تستی به شما نمایش داده شود.مطمئن شوید که قبل از انتشار نهایی اپلیکیشن خود این کد را حذف کنید.

نکته: ممکن است در حالت Test موارد اعمال محدودیت سنی رعایت نشده باشد اما ما در زمان انتشار برنامه شما تمام دکمه های اعمال محدودیت سنی را فعال می کنیم.

انتشار اپلیکیشن خود

حال که تبلیغات درون برنامه ای را در اپلیکیشن خود فعال کرده اید کافی است تا اپلیکیشن خود را بیلد گرفته و منتشر کنید.

کد نمونه

کد نمونه به زبان جاوا را از اینجا دریافت کنید.

کد نمونه به زبان کاتلین را از اینجا دریافت کنید.