توجه: این مخزن به TapsellPlusSDK-UnityPlugin منتقل شده است.
برای استفاده از این کتابخانه باید از build system گردل استفاده کنید. همچنین سعی کنید از آخرین نسخه unity استفاده کنید.
نسخه 2.1
ابتدا unity package تپسل پلاس را دانلود و مطابق توضیحات زیر به پروژه اضافه کنید. سپس هر adNetwork که تپسل پشتیبانی میکند و مایل هستید را مطابق توضیحات به پروژه اضافه کنید. در انتها با روشهای تست مطمعن شوید که adNetwork مورد نظر به درستی کار میکند.
از player settings قسمت publishing settings تیک custom gradle template رو بزارید.
خطوط زیر را در بخش android فایل mainTemplate.gradle در صورتی که وجود ندارد اضافه کنید.
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}خطوط زیر را در بخش dependencies فایل mainTemplate.gradle در مسیر Assets/Plugins/Android اضافه کنید. توجه داشته باشید که ۲ قسمت dependencies وجود دارد، این تغییرات باید در قسمت دوم انجام شود.
...
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'ir.tapsell.plus:tapsell-plus-sdk-unity:1.0.12'
**DEPS**}
...در نسخههای قدیمی یونیتی ممکن هست implementation شناخته نشود در این صورت از compile استفاده کنید.
هر یک از خطوط زیر که در بخش allprojects -> repositories فایل mainTemplate.gradle وجود ندارد اضافه کنید.
...
allprojects {
repositories {
google()
jcenter()
flatDir {
dirs 'libs'
}
maven {
url 'https://dl.bintray.com/tapsellorg/maven'
}
}
}
...
هنگام import یونیتیپکیج تپسل پلاس تیک قسمت playServicesResolver و TapsellPlusDependencies.xml را بردارید.
هنگام import کردن unityPackage تپسل پلاس تیک تمامی قسمتها را بزارید. تنها تیک mainTemplate.gradle زا بردارید.
در صورتی که تنظیمات ریزالور بر روی حالت auto-resolution میباشد، لایبراری های تپسل پلاس به صورت خودکار اضافه میشود. در غیر اینصورت به صورت دستی Resolve را انجام دهید.
فعال یا غیر فعال کردن auto-resolution از مسیر زیر انجام میشود.
Assets > Play Services Resolver > Android Resolver > Settings
برای Resolve دستی نیز از این مسیر اقدام نمایید.
Assets > Play Services Resolver > Android Resolver > Resolve
Assets > Play Services Resolver > Android Resolver > Force Resolve
در قسمت dependencies فایل mainTemplate.gradle این موارد را اضافه کنید. برای کسب اطلاعات بیشتر در مورد هر ad network میتوانید با همکاران ما در تیم رسانه صحبت کنید.
...
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
...
//for adMob
implementation 'com.google.android.gms:play-services-ads:17.2.1'
//for unityAds
implementation 'com.unity3d.ads:unity-ads:3.0.0'
//for chartboost
implementation 'ir.tapsell.sdk:chartboost-sdk-android:7.3.1'
//for facebook
implementation 'com.facebook.android:audience-network-sdk:5.3.0'
implementation 'com.facebook.android:facebook-android-sdk:5.2.0'
//for adcolony
implementation 'com.adcolony:sdk:3.3.11'
//for applovin
implementation 'com.applovin:applovin-sdk:9.7.2'
//for vungle
implementation 'com.vungle:publisher-sdk-android:6.4.11'
**DEPS**}
...برای adcolony لازم هست ریپازیتوری زیر به mainTemplate.gradle پروژه اضافه شود.
maven {
url "https://adcolony.bintray.com/AdColony"
}خطوط مربوط به هر adNetwork که مایل هستید را به فایل TapsellPlusDependencies.xml اضافه کنید.
<dependencies>
<androidPackages>
<androidPackage spec="ir.tapsell.plus:tapsell-plus-sdk-unity:1.0.10">
<repositories>
<repository>https://dl.bintray.com/tapsellorg/maven</repository>
<repository>https://adcolony.bintray.com/AdColony</repository>
</repositories>
</androidPackage>
<androidPackage spec="ir.tapsell.sdk:chartboost-sdk-android:7.3.1">
</androidPackage>
<androidPackage spec="com.unity3d.ads:unity-ads:3.0.0">
</androidPackage>
<androidPackage spec="com.google.android.gms:play-services-ads:17.2.1">
</androidPackage>
<androidPackage spec="com.facebook.android:audience-network-sdk:5.3.0">
</androidPackage>
<androidPackage spec="com.facebook.android:facebook-android-sdk:5.2.0">
</androidPackage>
<androidPackage spec="com.applovin:applovin-sdk:9.7.2">
</androidPackage>
<androidPackage spec="com.vungle:publisher-sdk-android:6.4.11">
</androidPackage>
<androidPackage spec="com.adcolony:sdk:3.3.11">
</androidPackage>
</androidPackages>
</dependencies>تنظیمات پروگوارد را از این فایل دریافت کنید.
تپسل پلاس برای استفاده هرچه ساده تر بروی Cocoapods متشر شده است. در صورتی که تا به حال Cocoapods را روی سیستم تان نصب نکرده اید، میتوانید با دستور زیر این کار را انجام دهید:
$ sudo gem install cocoapodsبرای کسب اطلاعات بیشتر میتوانید به وبسایت Cocoapods مراجعه کنید
خطوط زیر را به Podfile خود اضافه کنید:
pod ‘TapsellPlusSDK’, ‘1.4.0-r’
pod ‘TapsellPlusSDK/UnityPlugin’, ‘1.4.0-r’با این خط، تپسل پلاس و تمامی کتابخانه های مورد نیاز آن دانلود شده، تنظیمات لازم برای هر کدام اعمال شده و به پروژه شما اضافه میگردند.
با انتشار iOS 9 , اپل سیستم ATS را معرفی نمود که طبق آن لازم است اپلیکیشنها از SSL با مشخصات خاصی برای ارتباطات شبکه استفاده کنند. در حال حاضر، لازم است که برای استفاده از تبلیغات تپسل ATS در اپلیکیشن غیرفعال شود.
جهت جلوگیری از مداخله ATS در پخش تبلیغات، قسمت زیر را به plist پروژه خود اضافه کنید.
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>با انتشار نسخه iOS 9، شرکت اپل ارتباطات بین اپلیکیشنها (canOpenUrl) را محدود کرده است و هر اپلیکیشن باید مشخص کند چه اپلیکیشنهای دیگری را باز خواهد نمود. تپسل از تابع canOpenUrl برای تصمیمگیری در مورد انجام عمل نهایی در بنرهای تبلیغات استفاده میکند. برای فعالسازی deep-linking بین SDK تپسل و سرویسهای مختلف، بخش زیر را به plist پروژه خود اضافه کنید..
<key>LSApplicationQueriesSchemes</key>
<array>
<string>mailto</string>
<string>itms-apps</string>
<string>sms</string>
<string>tel</string>
</array>فلگ –ObjC را به Other Linker Flags در Build Setting اضافه کنید.
فلگ Always Embed Swift Standard Libraries را در پروژه خود فعال کنید.
کلید تپسل را از پنل دریافت کنید.
تابع زیر را در یکی از اسکریپتهای ابتدایی برنامه بزارید.
void Start () {
TapsellPlus.initialize (TAPSELL_KEY);
}ابتدا از پنل یک تبلیغگاه (zone) ویدیو جایزهای بسازید و zoneId رو زمان درخواست و نمایش تبلیغ استفاده کنید.
سپس مطابق کد زیر درخواست تبلیغ دهید.
public void Request () {
TapsellPlus.requestRewardedVideo (ZONE_ID,
(string zoneId) => {
Debug.Log ("on response " + zoneId);
},
(TapsellError error) => {
Debug.Log ("Error " + error.message);
}
);
}بعد از اجرای متد response تبلیغ آماده نمایش است و میتوانید مطابق روش زیر نمایش دهید.
public void Show () {
TapsellPlus.showAd (ZONE_ID,
(string zoneId) => {
Debug.Log ("onOpenAd " + zoneId);
},
(string zoneId) => {
Debug.Log ("onCloseAd " + zoneId);
},
(string zoneId) => {
Debug.Log ("onReward " + zoneId);
},
(TapsellError error) => {
Debug.Log ("onError " + error.message);
}
);
}مطابق تبلیغات جایزهای پیش برید فقط زمان درخواست تبلیغ از متد TapsellPlus.requestInterstitial استفاده کنید.
مطابق کد زیر میتونید بنر استاندارد نمایش دهید.
TapsellPlus.showBannerAd (ZONE_ID, BANNER_TYPE, VERTICAL_GRAVITY, HORIZONTAL_GRAVITY,
(string zoneId) => {
Debug.Log ("on response " + zoneId);
},
(TapsellError error) => {
Debug.Log ("Error " + error.message);
});BANNER_TYPE سایز نمایش بنر هست و میتواند مقادیر زیر باشد.
| keyword | size |
|---|---|
| BANNER_320x50 | 320x50 |
| BANNER_320x100 | 320x100 |
| BANNER_250x250 | 250x250 |
| BANNER_300x250 | 300x250 |
| BANNER_468x60 | 468x60 |
| BANNER_728x90 | 728x90 |
VERTICAL_GRAVITY و HORIZONTAL_GRAVITY موقعیت قرار گیری بنر در صفحه هست و میتواند مقادیر زیر باشد.
Gravity.TOP - Gravity.BOTTOM - Gravity.LEFT - Gravity.RIGHT - Gravity.CENTER
به عنوان مثال میتوانید به این شکل درخواست تبلیغ دهید.
TapsellPlus.showBannerAd (ZONE_ID, BannerType.BANNER_300x250, Gravity.BOTTOM, Gravity.CENTER,
(string zoneId) => {
Debug.Log ("on response " + zoneId);
},
(TapsellError error) => {
Debug.Log ("Error " + error.message);
});با این کد میتوانید تبلیغ بنر استاندارد را مخفی کنید.
TapsellPlus.hideBanner ();مطابق کد زیر درخواست تبلیغ دهید.
public void Request () {
TapsellPlus.requestNativeBanner (this, ZONE_ID,
(TapsellPlusNativeBannerAd result) => {
Debug.Log ("on response");
//showing ad
},
(TapsellError error) => {
Debug.Log ("Error " + error.message);
}
);
}متغیر برگردانده شده در on response محتویات تبلیغ هست و برای نمایش تبلیغ باید مطابق جدول زیر ازش استفاده کنید.
| function | usage |
|---|---|
| getTitle () | عنوان |
| getDescription () | توضیحات |
| getIcon () | آیکن |
| getLandscapeBannerImage () | تصویر افقی |
| getPortraitBannerImage () | تصویر عمودی |
| getCallToAction (), | متن دکمه کلیک |
برای باز کردن تبلیغ زمان کلیک کاربر میتوانید از این متد استفاده کنید.
nativeAd.clicked ();برای دیدن یک نمونه پیاده سازی شده میتوانید همین پروژه در گیتهاب را بررسی کنید.
برای اطمینان از صحت عملکرد adNetwrok هایی که اضافه کردید از zoneId مربوط به هرکدام استفاده کنید. هر zoneId مربوط به یک adNetwork و یک نوع تبلیغ هست و تبلیغ حالت تست نمایش داده میشود.
* توجه داشته باشید در حالت تست باید از appId تست استفاده کنید.
* هنگام تست باید از ip خارج ایران (فیلتر شکن) استفاده کنید.
* برای عملکرد صحیح حالت تست باید یکبار برنامه باز و بسته شود. همچنین در دومین درخواست، تبلیغ adNetwork مورد نظر نمایش داده میشود.
* برای تست facebook باید hash دستگاهی که بر روی آن تست انجام میشود طبق روش گفته شده به sdk داده شود.
* تست را در حالت build release هم انجام دهید.
از این appId برای تست استفاده کنید.
TapsellPlus.initialize("alsoatsrtrotpqacegkehkaiieckldhrgsbspqtgqnbrrfccrtbdomgjtahflchkqtqosa");برای هر ادنتورک و هر تبلیغ از zoneId های زیر برای درخواست و نمایش تبلیغ استفاده کنید. در حال حاضر فقط adType/adNetwork های زیر قابل استفاده هستند.
| Ad Network | Ad Type | ZoneId |
|---|---|---|
| Tapsell | Rewarded Video | 5cfaa802e8d17f0001ffb28e |
| Tapsell | Interstitial | 5cfaa942e8d17f0001ffb292 |
| Tapsell | Native | 5cfaa9deaede570001d5553a |
| Tapsell | Standard | 5cfaaa30e8d17f0001ffb294 |
| Admob | Rewarded Video | 5cfaa8aee8d17f0001ffb28f |
| Admob | Interstitial | 5cfaa9b0e8d17f0001ffb293 |
| Admob | Standard | 5cfaaa4ae8d17f0001ffb295 |
| Admob | Native | 5d123c9968287d00019e1a94 |
| Admob | Native Video | 5d123d6f68287d00019e1a95 |
| Unity Ads | Rewarded Video | 5cfaa8eae8d17f0001ffb291 |
| Chartboost | Rewarded Video | 5cfaa8cee8d17f0001ffb290 |
| Rewarded Video | 5cfaa838aede570001d55538 |
|
| Interstitial | 5cfaa975aede570001d55539 |
|
| AdColony | Rewarded Video | 5d3362766de9f600013662d5 |
| AdColony | Interstitial | 5d336289e985d50001427acf |
| AppLovin | Rewarded Video | 5d3eb48c3aef7a0001406f84 |
| AppLovin | Interstitial | 5d3eb4fa3aef7a0001406f85 |
| AppLovin | Standard | 5d3eb5337a9b060001892441 |
| Vungle | Rewarded Video | 5d3eb55a7a9b060001892442 |
| Vungle | Interstitial | 5d3eb56d3aef7a0001406f86 |
زمانی که از facebook استفاده میکنید متنی مشابه زیر در logcat پرینت میشود.
When testing your app with Facebook's ad units you must specify the device hashed ID to ensure the delivery of test ads, add the following code before loading an ad: AdSettings.addTestDevice("YOUR_DEVICE_HASH");
برای دیدن تبلیغات تستی فیسبوک مقدار hash دستگاه خود را از طریق متد زیر به کتابخانه تپسل بدهید.
TapsellPlus.addFacebookTestDevice("YOUR_DEVICE_HASH");


