دمج Flurry مع التوسّط
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
هذا الدليل مخصّص للناشرين المهتمين باستخدام التوسّط في "إعلانات Google على الأجهزة الجوّالة" مع Flurry. توضّح هذه المقالة كيفية إعداد محوّل توسّط ليعمل مع تطبيق iOS الحالي وكيفية ضبط إعدادات إضافية.
المتطلبات الأساسية
مقدمات مفيدة
تقدّم مقالات "مركز المساعدة" التالية معلومات أساسية عن التوسّط:
إضافة Flurry إلى مشروعك
ادمِج الإعلانات في تطبيقك كما كان الحال في السابق. لدمج الإعلانات غير البينية (إعلانات البانر وإعلانات لوحة الصدارة وما إلى ذلك)، راجِع إعلانات البانر. لدمج الإعلانات البينية (إعلانات بملء الشاشة تحجب كل المحتوى الآخر)، راجِع الإعلانات البينية.
تؤدي الخطوات التالية إلى تغيير موضع إعلانك إلى موضع إعلان للتوسّط يمكنه عرض إعلانات من شبكات متعدّدة.
نزِّل المحوّل وحزمة SDK الخاصة بمنصة Flurry من
المراجع أعلاه.
أضِف محوّل الشبكة/حزمة SDK التي تم تنزيلها في Xcode: انقر بزر الماوس الأيمن على مشروعك، ثم انقر على إضافة ملفات إلى project.
أدرِج أي أُطر أو علامات مترجم أو علامات رابط تتطلّبها Flurry. لست بحاجة إلى كتابة رمز إضافي. تستدعي خدمة التوسّط محوّل Flurry وحزمة تطوير البرامج (SDK) حسب الحاجة لإنشاء الإعلانات.
إعداد إشعارات الأحداث
لتلقّي إشعارات بشأن أحداث دورة حياة الإعلان، مثل مرّات الظهور، يمكنك تنفيذ GADBannerViewDelegate
. عند استخدام التوسّط، يتم إشعار هذا العنصر النائب تلقائيًا بالأحداث من Flurry. على سبيل المثال، يتم تسجيل مرات الظهور من أي شبكة إعلانية من خلال الطريقة adViewDidReceiveAd:
في GADBannerViewDelegate
.
التحقّق من قيمة adNetworkClassName
يمكنك اختياريًا التحقّق من السمة adNetworkClassName
في GADBannerView
، ما يؤدي إلى عرض اسم فئة شبكة الإعلانات التي استرجعت البانر الحالي بعد استدعاء معاودة الاتصال adViewDidReceiveAd
:
Swift
func adViewDidReceiveAd(_ bannerView: GADBannerView) {
print("Banner adapter class name: \(bannerView.adNetworkClassName)")
}
Objective-C
- (void)adViewDidReceiveAd:(GADBannerView *)bannerView {
NSLog(@"Banner adapter class name: %@", bannerView.adNetworkClassName);
}
وبالمثل، بالنسبة إلى الإعلانات البينية، تحقَّق من السمة adNetworkClassName
في GADInterstitialAd
داخل interstitialDidReceiveAd
:
Swift
func interstitialDidReceiveAd(_ ad: GADInterstitialAd) {
print("Interstitial adapter class name: \(ad.adNetworkClassName)")
}
Objective-C
- (void)interstitialDidReceiveAd:(GADInterstitialAd *)interstitial {
NSLog(@"Interstitial adapter class name: %@", interstitial.adNetworkClassName);
}
بالنسبة إلى الإعلانات التي يعرضها AdMob، تعرض السمة
adNetworkClassName
القيمة
GADMAdapterGoogleAdMobAds
.
بالنسبة إلى الإعلانات التي يتم جلبها من خلال
الأحداث المخصّصة، تعرض هذه السمة القيمة
GADMAdapterCustomEvents
.
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2025-09-02 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-09-02 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\u003cp\u003eThis guide explains how to integrate Flurry ads into your iOS app using Google Mobile Ads Mediation.\u003c/p\u003e\n"],["\u003cp\u003eYou need an existing iOS app with the Google Mobile Ads SDK and an AdMob account with configured mediation line items as prerequisites.\u003c/p\u003e\n"],["\u003cp\u003eThe guide provides instructions on adding the Flurry adapter and SDK to your Xcode project.\u003c/p\u003e\n"],["\u003cp\u003eYou can track ad lifecycle events, such as impressions, using the \u003ccode\u003eGADBannerViewDelegate\u003c/code\u003e or \u003ccode\u003eGADInterstitialDelegate\u003c/code\u003e, which report events from all ad networks, including Flurry.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eadNetworkClassName\u003c/code\u003e property can be used to identify the network that served the ad, such as Flurry or AdMob.\u003c/p\u003e\n"]]],["This guide outlines integrating Flurry into an iOS app using Google Mobile Ads mediation. Key actions include downloading the Flurry adapter and SDK, adding them to the Xcode project, and including required frameworks. The process involves setting up the app with mediation to display ads from multiple networks. Developers can then implement `GADBannerViewDelegate` to receive ad lifecycle notifications and check the `adNetworkClassName` property to identify the source network of fetched ads.\n"],null,["This guide is intended for publishers who are interested in using Google\nMobile Ads mediation with **Flurry**. It walks\nthrough the setup of a mediation adapter to work with your current iOS app\nand the configuration of additional settings.\n\n| Flurry Resources |\n|--------------------------------------------------------------------|\n| [Documentation](http://www.flurry.com/) |\n| [SDK](http://dev.flurry.com/uploadVersionSelectProject.do) |\n| [Adapter](http://github.com/flurry/FlurryAdapterForDFPAndAdMobiOS) |\n| [Customer support](mailto:support@flurry.com) |\n\nPrerequisites\n\n- An iOS app with the Google Mobile Ads SDK integrated (If you don't\n have one, see [Get Started](/admob/ios/quick-start).)\n\n- An AdMob account and [an ad unit configured with mediation line\n items](//support.google.com/admob/answer/3124703).\n\nHelpful primers\n\nThe following Help Center articles provide background information on mediation:\n\n- [About AdMob Mediation](//support.google.com/admob/answer/3063564)\n- [Set up AdMob Mediation](//support.google.com/admob/answer/3124703)\n- [Optimize AdMob Network](//support.google.com/admob/answer/3534471)\n\nAdd Flurry to your project\n\nIntegrate ads into your app the same as before. To integrate\nnon-interstitial ads (banner size, leaderboard size, and so on),\nsee [Banner Ads](/admob/ios/banner). To integrate\ninterstitial ads (full-screen ads that mask all other content),\nsee [Interstitial Ads](/admob/ios/interstitial).\n\nThe following steps change your ad placement into a mediation\nplacement that can show ads from multiple networks.\n\n1. Download the adapter and SDK for Flurry from the\n [resources above](#resources).\n\n2. Add the downloaded network adapter/SDK in Xcode: right-click\n on your project and click **Add Files to \u003cvar class=\"readonly\" translate=\"no\"\u003eproject\u003c/var\u003e**.\n\n3. Include any frameworks, compiler flags, or linker flags that Flurry\n require. There's no need to write additional code. Mediation invokes the\n Flurry adapter and SDK as necessary to create ads.\n\nSet up event notification\n\nTo be notified of ad lifecycle events like impressions, you can implement\na `GADBannerViewDelegate`. When using mediation, this delegate is\nautomatically notified of events from Flurry. For example, impressions\nfrom any ad network are reported through the `adViewDidReceiveAd:` method of\n`GADBannerViewDelegate`.\n\nCheck the value of adNetworkClassName\n\nYou can optionally check the `adNetworkClassName` property on\n`GADBannerView`, which returns the ad network class\nname of the ad network that fetched the current banner once the\n`adViewDidReceiveAd` callback is called: \n\nSwift \n\n func adViewDidReceiveAd(_ bannerView: GADBannerView) {\n print(\"Banner adapter class name: \\(bannerView.adNetworkClassName)\")\n }\n\nObjective-C \n\n - (void)adViewDidReceiveAd:(GADBannerView *)bannerView {\n NSLog(@\"Banner adapter class name: %@\", bannerView.adNetworkClassName);\n }\n\nSimilarly, for interstitials, check the `adNetworkClassName` property\non `GADInterstitialAd` inside `interstitialDidReceiveAd`: \n\nSwift \n\n func interstitialDidReceiveAd(_ ad: GADInterstitialAd) {\n print(\"Interstitial adapter class name: \\(ad.adNetworkClassName)\")\n }\n\nObjective-C \n\n - (void)interstitialDidReceiveAd:(GADInterstitialAd *)interstitial {\n NSLog(@\"Interstitial adapter class name: %@\", interstitial.adNetworkClassName);\n }\n\nFor ads returned from AdMob, `adNetworkClassName` returns `GADMAdapterGoogleAdMobAds`. For ads fetched through [custom events](/admob/ios/custom-events), it returns `GADMAdapterCustomEvents`.\n\n\u003cbr /\u003e"]]