Điều kiện tiên quyết
Hoàn tất quy trình thiết lập sự kiện tuỳ chỉnh.
Yêu cầu quảng cáo xen kẽ
Khi đạt đến mục hàng sự kiện tuỳ chỉnh trong chuỗi dàn xếp kiểu thác nước,
the loadInterstitialAd()
method sẽ được gọi dựa trên tên lớp mà bạn đã cung cấp khi
tạo sự kiện
tuỳ chỉnh. Trong trường hợp này, phương thức đó nằm trong SampleCustomEvent
, sau đó sẽ gọithe loadInterstitialAd()
method trong SampleInterstitialCustomEventLoader
.
Để yêu cầu một quảng cáo xen kẽ, hãy tạo hoặc sửa đổi một lớp mở rộng Adapter
để triển khai loadInterstitialAd()
. Ngoài ra, hãy tạo một lớp mới để
triển khai MediationInterstitialAd
.
Trong ví dụ về sự kiện tuỳ chỉnh của chúng tôi, SampleCustomEvent
sẽ triển khaithe Adapter
interface , sau đó uỷ quyền choSampleInterstitialCustomEventLoader
.
Java
package com.google.ads.mediation.sample.customevent; import com.google.android.gms.ads.mediation.Adapter; import com.google.android.gms.ads.mediation.MediationAdConfiguration; import com.google.android.gms.ads.mediation.MediationAdLoadCallback; import com.google.android.gms.ads.mediation.MediationInterstitialAd; import com.google.android.gms.ads.mediation.MediationInterstitialAdCallback; ... public class SampleCustomEvent extends Adapter { private SampleInterstitialCustomEventLoader interstitialLoader; @Override public void loadInterstitialAd( @NonNull MediationInterstitialAdConfiguration adConfiguration, @NonNull MediationAdLoadCallback<MediationInterstitialAd, MediationInterstitialAdCallback> callback) { interstitialLoader = new SampleInterstitialCustomEventLoader(adConfiguration, callback); interstitialLoader.loadAd(); } }
SampleInterstitialCustomEventLoader
phụ trách những việc sau:
Tải quảng cáo xen kẽ và gọi
MediationAdLoadCallback
method sau khi tải xongTriển khai
MediationInterstitialAd
interfaceNhận và báo cáo lệnh gọi lại sự kiện quảng cáo cho SDK quảng cáo trên thiết bị di động của Google
Thông số không bắt buộc được xác định trong giao diện người dùng AdMob
được đưa vào cấu hình quảng cáo. Bạn có thể truy cập tham số này thông qua adConfiguration.getServerParameters().getString(MediationConfiguration.CUSTOM_EVENT_SERVER_PARAMETER_FIELD)
.
Thông số này thường là giá trị nhận dạng đơn vị quảng cáo mà SDK mạng quảng cáo
cần có khi tạo thực thể cho đối tượng quảng cáo.
Java
package com.google.ads.mediation.sample.customevent; import com.google.android.gms.ads.mediation.Adapter; import com.google.android.gms.ads.mediation.MediationInterstitialAdConfiguration; import com.google.android.gms.ads.mediation.MediationAdLoadCallback; import com.google.android.gms.ads.mediation.MediationInterstitialAd; import com.google.android.gms.ads.mediation.MediationInterstitialAdCallback; ... public class SampleInterstitialCustomEventLoader extends SampleAdListener implements MediationInterstitialAd { /** A sample third-party SDK interstitial ad. */ private SampleInterstitial sampleInterstitialAd; /** Configuration for requesting the interstitial ad from the third-party network. */ private final MediationInterstitialAdConfiguration mediationInterstitialAdConfiguration; /** Callback for interstitial ad events. */ private MediationInterstitialAdCallback interstitialAdCallback; /** Callback that fires on loading success or failure. */ private final MediationAdLoadCallback<MediationInterstitialAd, MediationInterstitialAdCallback> mediationAdLoadCallback; /** Constructor. */ public SampleInterstitialCustomEventLoader( @NonNull MediationInterstitialAdConfiguration mediationInterstitialAdConfiguration, @NonNull MediationAdLoadCallback<MediationInterstitialAd, MediationInterstitialAdCallback> mediationAdLoadCallback) { this.mediationInterstitialAdConfiguration = mediationInterstitialAdConfiguration; this.mediationAdLoadCallback = mediationAdLoadCallback; } /** Loads the interstitial ad from the third-party ad network. */ public void loadAd() { // All custom events have a server parameter named "parameter" that returns // back the parameter entered into the UI when defining the custom event. Log.i("InterstitialCustomEvent", "Begin loading interstitial ad."); String serverParameter = mediationInterstitialAdConfiguration.getServerParameters().getString( MediationConfiguration.CUSTOM_EVENT_SERVER_PARAMETER_FIELD); Log.d("InterstitialCustomEvent", "Received server parameter."); sampleInterstitialAd = new SampleInterstitial(mediationInterstitialAdConfiguration.getContext()); sampleInterstitialAd.setAdUnit(serverParameter); // Implement a SampleAdListener and forward callbacks to mediation. sampleInterstitialAd.setAdListener(this); // Make an ad request. Log.i("InterstitialCustomEvent", "start fetching interstitial ad."); sampleInterstitialAd.fetchAd( SampleCustomEvent.createSampleRequest(mediationInterstitialAdConfiguration)); } public SampleAdRequest createSampleRequest( MediationAdConfiguration mediationAdConfiguration) { SampleAdRequest request = new SampleAdRequest(); request.setTestMode(mediationAdConfiguration.isTestRequest()); request.setKeywords(mediationAdConfiguration.getMediationExtras().keySet()); return request; } }
Tuỳ thuộc vào việc quảng cáo được tìm nạp thành công hay gặp lỗi, bạn
sẽ gọi
onSuccess()
hoặc
onFailure()
.
onSuccess()
được gọi bằng cách truyền vào một thực thể của lớp triển khai MediationInterstitialAd
.
Thông thường, các phương thức này được triển khai bên trong lệnh gọi lại từ SDK bên thứ ba mà bộ chuyển đổi của bạn triển khai. Trong ví dụ này, SDK mẫu có một SampleAdListener
với các lệnh gọi lại có liên quan:
Java
@Override public void onAdFetchSucceeded() { interstitialAdCallback = mediationAdLoadCallback.onSuccess(this); } @Override public void onAdFetchFailed(SampleErrorCode errorCode) { mediationAdLoadCallback.onFailure(SampleCustomEventError.createSampleSdkError(errorCode)); }
MediationInterstitialAd
yêu cầu triển khai một phương thức showAd()
để hiển thị
quảng cáo:
Java
@Override public void showAd(@NonNull Context context) { sampleInterstitialAd.show(); }
Chuyển tiếp các sự kiện dàn xếp đến SDK quảng cáo trên thiết bị di động của Google
Sau khi onSuccess()
được gọi, bộ chuyển đổi có thể sử dụng đối tượng MediationInterstitialAdCallback
được trả về để chuyển tiếp các sự kiện trình bày từ
SDK bên thứ ba đến SDK quảng cáo trên thiết bị di động của Google. Lớp
SampleInterstitialCustomEventLoader
mở rộng giao diện SampleAdListener
để chuyển tiếp lệnh gọi lại từ mạng quảng cáo mẫu đến SDK quảng cáo
trên thiết bị di động của Google.
Điều quan trọng là sự kiện tuỳ chỉnh của bạn phải chuyển tiếp nhiều lệnh gọi lại này nhất có thể để ứng dụng của bạn nhận được các sự kiện tương đương này từ SDK quảng cáo trên thiết bị di động của Google. Dưới đây là ví dụ về cách sử dụng lệnh gọi lại:
Java
@Override public void onAdFullScreen() { interstitialAdCallback.reportAdImpression(); interstitialAdCallback.onAdOpened(); } @Override public void onAdClosed() { interstitialAdCallback.onAdClosed(); }
Đến đây, bạn đã hoàn thành việc triển khai sự kiện tuỳ chỉnh cho quảng cáo xen kẽ. Bạn có thể xem toàn bộ ví dụ trên GitHub. Bạn có thể sử dụng ví dụ đó với một mạng quảng cáo đã được hỗ trợ hoặc sửa đổi ví dụ để hiển thị quảng cáo xen kẽ sự kiện tuỳ chỉnh.