Güvenli sinyaller, istemci cihazın topladığı ve belirli teklif verenlerle paylaştığı kodlanmış verilerdir. Bu sayfada, Interactive Media Ads (IMA) SDK'sını kullanarak güvenli sinyaller toplama ve Google Ad Manager'a gönderme konusunda size yol gösterilmektedir.
Başlamadan önce
Devam etmeden önce Android için IMA SDK'sının 3.29.0 veya daha yeni bir sürümüne sahip olduğunuzdan emin olun.
Güvenli sinyal bağdaştırıcısı arayüzünü oluşturma
Güvenli sinyal toplamak ve sağlamak için arayüz:
package companydomain.path.to.securesignals;
import android.content.Context;
import androidx.annotation.Keep;
import com.google.ads.interactivemedia.v3.api.signals.SecureSignalsAdapter;
/**
* An example implementation of Secure Signals adapter.
*/
@Keep
public final class MySecureSignalsAdapter implements SecureSignalsAdapter {
/**
* Default constructor with no arguments for IMA SDK to instantiate this class.
*/
public MySecureSignalsAdapter() {
}
}
Adaptörü başlatma
IMA SDK, başlatma yöntemini çağırarak her bağdaştırıcıyı bir kez başlatır arasında yer alır. Şifreleme bağımlılıkları başlatmak, önbellekleri ayarlamak veya tüm sinyal toplama çağrılarında aynı kalan sinyalleri önceden hesaplamak için bu yöntemi uygulayın.
Aşağıdaki örnekte bağdaştırıcının ilk başlatılması gösterilmektedir:
...
/**
* Initialize your SDK and any dependencies.
* IMA SDK calls this function exactly once before signal collection.
*
* @param context The activity context that creates an ads loader.
* @param callback A callback function to pass initialization results to IMA SDK.
*/
@Override
public void initialize(Context context, SecureSignalsInitializeCallback callback) {
// Initialize your SDK and any dependencies.
...
// Notify IMA SDK of initialization success.
callback.onSuccess();
// If signal collection fails, call callback.onFailure();
// callback.onFailure(new Exception("Signal collection failed."));
}
...
Sinyal toplama
IMA SDK'sı, bir reklam isteği başlatılmadan önce sinyal toplama yöntemini asenkron olarak çağırır. Bu sinyal toplayıcı yöntemleri, şifrelenmiş sinyalleri iletmek veya bir hatayı bildirmek için bir geri çağırma işlevi içerir.
Aşağıdaki örneklerde, geri çağırma yoluyla güvenli sinyaller toplanmaktadır işlev:
...
/**
* Invokes your SDK to collect, encrypt and pass the signal collection results to IMA SDK.
* IMA SDK calls this function before each ad request.
*
* @param context The activity context that creates an ads loader.
* @param callback A callback function to pass signal collection results to IMA SDK.
*/
@Override
public void collectSignals(Context context, SecureSignalsCollectSignalsCallback callback) {
try {
// Collect and encrypt the signals.
String signals = ...;
// Pass the encrypted signals to IMA SDK.
callback.onSuccess(signals);
} catch (Exception e) {
// Pass signal collection failures to IMA SDK.
callback.onFailure(e);
}
}
...
Hataları bildirme
Adaptör sınıfınızı kullanan kullanıcılarla iletişim kurmak için sinyal toplama sırasındaki tüm hataları bildirin ve sinyal toplayıcı geri çağırma işlevine iletin. Bu işlem, adaptörünüzün uygulamalarla entegrasyonu sırasında ortaya çıkan sorunları giderir.
Görünebilecek hatalar şunlardır:
- Uygulamada SDK'nız veya bir bağımlılık bulunamadı.
- SDK'nız veya bir bağımlılığınız çalışmak için gerekli izne veya kullanıcı iznine sahip değil.
Adaptör sürümünü belirtin
İş akışınızda bağdaştırıcının sürümünü belirttiğinizden emin olun. IMA SDK her reklam isteğine bağdaştırıcı sürümünüzü ekler ve bunları, sinyallerine geçiş yapacaktır.
Teklif isteğinde, bağdaştırıcı sürümüne bağlı olarak bağdaştırıcının güvenli sinyallerden yararlanırız.
Aşağıdaki örnekte adaptör sürümü belirtilmektedir:
...
/**
* Specifies this adapter's version.
*/
private static final VersionInfo AdapterVersion = new VersionInfo(1, 0, 1);
...
/**
* @return The version of this adapter.
* IMA SDK calls this function before each ad request.
*/
@Override
public VersionInfo getVersion() {
return AdapterVersion;
}
...
SDK çalışma zamanı sürümünü döndürme
Bağdaştırıcınızı, SDK'nızın birden çok sürümüyle çalışacak şekilde tasarlayabilirsiniz. Adaptörün birden fazla sürümle çalışabilmesi için SDK'nın çalışma zamanı sürümünü döndürdüğünüzden emin olun. IMA SDK'sı her reklam isteğinde, uyumlu sürümle birlikte çalışma zamanı sürümünü içerir.
Aşağıdaki örnekler, SDK çalışma zamanı sürümünü ister ve döndürür:
...
/**
* @return The version of your SDK that this adapter is depending on.
* IMA SDK calls this function before each ad request.
*/
@Override
public VersionInfo getSDKVersion() {
// Request the version from your SDK and convert to an IMAVersion.
int[] mySDKVersion = ...;
return new VersionInfo(mySDKVersion[0], mySDKVersion[1], mySDKVersion[2]);
}
...
Adaptörü Google'a kaydedin
Google'ın, adaptörü sinyal toplama için yetkilendirmesi amacıyla Android paket adını Google'a kaydettirmeniz gerekir. IMA SDK'sı yalnızca Google'a kaydettiğiniz bağdaştırıcıları başlatır.
Adaptörü doğrulama
Bağdaştırıcıyı doğrulamak için aşağıdaki bölümleri tamamlayın:
Test uygulamasını yapılandırma
Bağdaştırıcıyı doğrulamadan önce test uygulamasını yapılandırın. şu adımları uygulayın:
IMA SDK bağımlılıklarını modülünü kullanabilirsiniz. Örneğin:
app/build.gradle
:dependencies { implementation 'com.google.ads.interactivemedia.v3:interactivemedia:3.29.0' }
Bağdaştırıcınız ve SDK'nız gibi derleme bağımlılıkları ekleyin.
Sinyalleri doğrulama
Adaptörünüzün sinyal gönderdiğini doğrulamak için uygulamanızın reklam isteği trafiğini izlemek üzere bir ağ proxy'si kullanın. Başarılı olursa her bir reklam isteği.
Örneklerin tamamını inceleyin
Bu bölümde, bir referans noktası olarak kabul edilir.
package companydomain.path.to.securesignals;
import android.content.Context;
import androidx.annotation.Keep;
import com.google.ads.interactivemedia.v3.api.VersionInfo;
import com.google.ads.interactivemedia.v3.api.signals.SecureSignalsAdapter;
import com.google.ads.interactivemedia.v3.api.signals.SecureSignalsCollectSignalsCallback;
import com.google.ads.interactivemedia.v3.api.signals.SecureSignalsInitializeCallback;
/**
* An example implementation of Secure Signals adapter.
*/
@Keep
public final class MySecureSignalsAdapter implements SecureSignalsAdapter {
/**
* Specifies this adapter's version.
*/
private static final VersionInfo AdapterVersion = new VersionInfo(1, 0, 1);
/**
* Default constructor with no arguments for IMA SDK to instantiate this class.
*/
public MySecureSignalsAdapter() {
}
/**
* Initialize your SDK and any dependencies.
* IMA SDK calls this function exactly once before signal collection.
*
* @param context The activity context that creates an ads loader.
* @param callback A callback function to pass initialization results to IMA SDK.
*/
@Override
public void initialize(Context context, SecureSignalsInitializeCallback callback) {
try {
// Initialize your SDK and any dependencies.
...
// Notify IMA SDK of initialization success.
callback.onSuccess();
} catch (Exception e) {
// Pass initialization failures to IMA SDK.
callback.onFailure(e);
}
}
/**
* Invokes your SDK to collect, encrypt and send the signal collection results to IMA SDK.
* IMA SDK calls this function before each ad request.
*
* @param context The activity context that creates an ads loader.
* @param callback A callback function to pass signal collection results to IMA SDK.
*/
@Override
public void collectSignals(Context context, SecureSignalsCollectSignalsCallback callback) {
try {
// Collect and encrypt the signals.
String signals = ...;
// Pass the encrypted signals to IMA SDK.
callback.onSuccess(signals);
} catch (Exception e) {
// Pass signal collection failures to IMA SDK.
callback.onFailure(e);
}
}
/**
* @return The version of this adapter.
* IMA SDK calls this function before each ad request.
*/
@Override
public VersionInfo getVersion() {
return AdapterVersion;
}
/**
* @return The version of your SDK that this adapter is depending on.
* IMA SDK calls this function before each ad request.
*/
@Override
public VersionInfo getSDKVersion() {
// Request the version from your SDK and convert to an IMAVersion.
int[] mySDKVersion = ...;
return new VersionInfo(mySDKVersion[0], mySDKVersion[1], mySDKVersion[2]);
}
}