İlk adım, Android PAL SDK'sını uygulamanıza eklemektir.
Android PAL SDK'sını kitaplık olarak ekleme
18.0.0 sürümünden itibaren PAL SDK'sı, Google'ın Maven deposunda barındırılır ve uygulamanıza aşağıdaki şekilde ekleyebilirsiniz:
app/build.gradle
...
dependencies {
implementation 'com.google.android.gms:play-services-pal:20.2.0'
...
}
Alternatif olarak PAL SDK'sı Google'ın Maven deposundan indirilip uygulamanıza manuel olarak eklenebilir.
Tek seferlik sayı oluşturma
Bir "tek seferlik rastgele sayı" PAL tarafından NonceLoader
kullanılarak oluşturulan tek bir şifrelenmiş dizedir.
PAL SDK'sı, her yeni akış isteğine yeni bir akış isteğinin eşlik etmesini gerektirir.
tek seferlik rastgele sayı. Ancak nonce'lar içindeki birden fazla reklam isteği için yeniden kullanılabilir
görebilirsiniz. PAL SDK'yı kullanarak tek seferlik bir tek seferlik rastgele sayı oluşturmak için
MyActivity.java
Tek seferlik rastgele sayı oluşturmak üzere PAL kullanan örnek bir uygulama görmek için
Android örneğini şuradan indirin:
GitHub'a gidin.
Öncelikle PAL SDK'sını içe aktarmanız ve saklamak için bazı özel mülkler oluşturmanız gerekir
NonceLoader
ve NonceManager
ayarlarını yapın, ardından NonceLoader'ınızı başlatın.
NonceLoader
sınıfının yalnızca bir örneğini oluşturmanızı öneririz.
Uygulamanızda birden fazla sayfa veya eşdeğeri olmadığı sürece uygulamanızdaki her kullanıcı oturumu
birlikte çalışır. Bu işlem, sayfa ilişkilendiricisini (&correlator
)
bir sayfa ya da kullanıcının uygulamadaki
oturumunun süresi baz alınır. Kontrol sizde olmaya devam eder.
her yeni akış için bir kez sıfırlanması gereken akış ilişkilendiricisi (&scor
).
Aynı akışın tüm reklam istekleri, aynı NonceLoader
ve
sıklık sınırı ve rakip hariç tutma için akış ilişkilendirici değeri
özellikleri düzgün şekilde çalışmasını sağlar.
import android.app.Activity;
import android.os.Bundle;
import com.google.ads.interactivemedia.pal.NonceLoader;
import com.google.ads.interactivemedia.pal.NonceManager;
import com.google.ads.interactivemedia.pal.NonceRequest;
import com.google.ads.interactivemedia.pal.ConsentSettings;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import java.util.HashSet;
import java.util.Set;
public class MainActivity extends Activity {
...
private NonceLoader nonceLoader;
private NonceManager nonceManager = null;
private ConsentSettings consentSettings;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// The default value for allowStorage() is false, but can be
// changed once the appropriate consent has been gathered. The
// getConsentToStorage() method is a placeholder for the publisher's own
// method of obtaining user consent, either by integrating with a CMP or
// based on other methods the publisher chooses to handle storage consent.
boolean isConsentToStorage = getConsentToStorage();
videoView = findViewById(R.id.video_view);
videoView.setOnTouchListener(this::onVideoViewTouch);
consentSettings = ConsentSettings.builder()
.allowStorage(isConsentToStorage)
.build();
// It is important to instantiate the NonceLoader as early as possible to
// allow it to initialize and preload data for a faster experience when
// loading the NonceManager. A new NonceLoader will need to be instantiated
//if the ConsentSettings change for the user.
nonceLoader = new NonceLoader(this, consentSettings);
...
}
Ardından, tek seferlik rastgele sayı oluşturma işlemini tetiklemek için bir işlev oluşturun. Yalnızca bir tek seferlik rastgele sayı gerekiyor
tek bir akış oynatmadaki tüm reklam istekleri için geçerlidir. Test amacıyla,
test uygulamanızdaki bir düğmeyi tıklayarak bu işlevi çağırabilir. İlgili içeriği oluşturmak için kullanılan
Burada ayarlanan NonceRequest
parametresi örnek parametrelerdir. Parametrelerinizi kendi uygulama özelliklerinize göre ayarlamanız gerekir.
Bu işlev, tek seferlik rastgele oluşturmayı eşzamansız olarak tetikler. Bu nedenle,
tek seferlik rastgele sayı isteğinin başarılı veya başarısız olmasıyla ilgili işlem yapmak için bir AsyncTask
uygulayın:
public void generateNonceForAdRequest() {
Set supportedApiFrameWorksSet = new HashSet();
// The values 2, 7, and 9 correspond to player support for VPAID 2.0,
// OMID 1.0, and SIMID 1.1.
supportedApiFrameWorksSet.add(2);
supportedApiFrameWorksSet.add(7);
supportedApiFrameWorksSet.add(9);
NonceRequest nonceRequest = NonceRequest.builder()
.descriptionURL("https://example.com/content1")
.iconsSupported(true)
.omidPartnerVersion("6.2.1")
.omidPartnerName("Example Publisher")
.playerType("ExamplePlayerType")
.playerVersion("1.0.0")
.ppid("testPpid")
.sessionId("Sample SID")
.supportedApiFrameworks(supportedApiFrameWorksSet)
.videoPlayerHeight(480)
.videoPlayerWidth(640)
.willAdAutoPlay(true)
.willAdPlayMuted(false)
.build();
NonceCallbackImpl callback = new NonceCallbackImpl();
nonceLoader
.loadNonceManager(nonceRequest)
.addOnSuccessListener(callback)
.addOnFailureListener(callback);
}
private class NonceCallbackImpl implements OnSuccessListener<NonceManager>, OnFailureListener {
@Override
public void onSuccess(NonceManager manager) {
nonceManager = manager;
String nonceString = manager.getNonce();
Log.i("PALSample", "Generated nonce: " + nonceString);
// from here you would trigger your ad request and move on to initialize content
}
@Override
public void onFailure(Exception error) {
Log.e("PALSample", "Nonce generation failed: " + error.getMessage());
}
}
Bir tek seferlik rastgele sayı yöneticisi oluşturulduktan sonra, tek seferlik rastgele sayı
nonceManager.getNonce()
Reklam isteğine tek seferlik rastgele sayı ekle
Oluşturulan tek seferlik rastgele sayıyı kullanmak için reklam etiketinizi bir givn
parametresi ve
tek seferlik rastgele sayısı değerini girin.
/**
* The ad tag for your ad request, for example:
* https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external\
* /single_ad_samples&ciu_szs=300x250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1\
* &cust_params=deployment%3Ddevsite%26sample_ct%3Dlinear&correlator=
*
* For more sample ad tags, see
* developers.google.com/interactive-media-ads/docs/sdks/html5/client-side/tags
*/
private static final String DEFAULT_AD_TAG = "Your ad tag";
...
@Override
public void onSuccess(NonceManager manager) {
nonceManager = manager;
String nonceString = manager.getNonce();
Log.i("PALSample", "Generated nonce: " + nonceString);
// Append the nonce to the ad tag URL.
makeAdRequest(DEFAULT_AD_TAG + "&givn=" + nonceString);
}
Oynatma etkinliklerini izleme
Son olarak, oynatıcınız için çeşitli etkinlik işleyiciler uygulamanız gerekir. Örneğin, Bunu test amacıyla düğme tıklama etkinliklerine ekleyebilirsiniz, ancak uygulandığında bunlar uygun oynatıcı etkinlikleri tarafından tetiklenir:
public void sendAdClick() {
if (nonceManager != null) {
nonceManager.sendAdClick();
}
}
public void sendPlaybackStart() {
if (nonceManager != null) {
nonceManager.sendPlaybackStart();
}
}
public void sendPlaybackEnd() {
if (nonceManager != null) {
nonceManager.sendPlaybackEnd();
}
}
public void onVideoViewTouch(MotionEvent e) {
if (nonceManager != null) {
nonceManager.sendTouch(e);
}
}
Uygulamanızda her bir işlevin ne zaman çağrılacağı aşağıda açıklanmıştır:
sendPlaybackStart()
: Video oynatma oturumunuz başladığındasendPlaybackEnd()
: Video oynatma oturumunuz sona erdiğindesendAdClick()
: İzleyici bir reklamı her tıkladığındasendTouch()
: Oyuncuyla her dokunma etkileşiminde
(İsteğe bağlı) Üçüncü taraf reklam sunucuları üzerinden Google Ad Manager sinyalleri gönderme
Üçüncü taraf reklam sunucunuzu Google Ad Manager ile çalışacak şekilde ayarladığınızda, her bir reklamdaki tek seferlik rastgele değerini yakalamak ve iletmek için sunucunuzun belgelerine isteği gönderin. Sağlanan örnek, nonce parametresini içeren bir reklam isteği URL'sidir dahil. Tek seferlik rastgele sayı parametresi, Ad Manager'a devrederek daha iyi para kazanma olanağı sağlar.
Üçüncü taraf reklam sunucunuzu, tek seferlik rastgele değeri sunucunun isteği gönderir. Burada, üçüncü taraf reklam sunucusu:
'https://pubads.serverside.net/gampad/ads?givn=%%custom_key_for_google_nonce%%&...'
Daha fazla bilgi için Google Ad Manager Sunucu tarafı uygulaması rehberini inceleyin.
Ad Manager, tek seferlik rastgele sayı değerini tanımlamak için givn=
değerini arar. Üçüncü taraf reklamı
sunucunun kendine ait bir makroyu desteklemesi gerekir (örneğin,
%%custom_key_for_google_nonce%%
ve bunu tek seferlik sorgu parametresiyle değiştirin
adımları gerçekleştirebilirsiniz. Bunun nasıl yapılacağı hakkında daha fazla bilgi
üçüncü taraf reklam sunucusunun dokümanlarında bulunmalıdır.