Opciones avanzadas
Recopilación de la referencia de instalación en dispositivos antiguos
Nota: Google está dejando obsoleta la difusión de intent install_referrer. Véase: ¿Sigue utilizando InstallBroadcast? Cambie a Play Referrer API antes del 1 de marzo de 2020
El referrer de instalación es la herramienta más precisa de Singular para determinar la atribución, además de ayudar a Singular a detectar y analizar intentos de fraude. Es un identificador proporcionado por Google Play Store que apunta al anuncio en el que el usuario hizo clic antes de instalar la aplicación.
En los dispositivos que tienen la última versión de Google Play Store, el SDK de Singular recopila el valor de referencia de instalación automáticamente (ya que Singular está integrado con la última API de referencia de Google Play).
Para recopilar el referente de instalación en dispositivos más antiguos:
Si tienes un receptor de referencia de instalación existente:
Lo más probable es que tu aplicación ya tenga un BroadcastReceiver que reciba el INSTALL_REFERRER de Android.
Si es así, sólo tiene que ir al método onReceive del BroadcastReceiver y añadir la siguiente línea:
new SingularInstallReceiver().onReceive(context, intent);
Por ejemplo, si su receptor existente se llama MyCustomInstallReceiver, debería tener el siguiente aspecto:
public class MyCustomInstallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Pass install referrer information on to Singular
new SingularInstallReceiver().onReceive(context, intent);
// ...
}
}
Si no hay ningún otro receptor de referencia de instalación:
Si no tiene ningún receptor de referencia de instalación en su aplicación, puede dejar que Singular SDK registre el único receptor simplemente añadiendo lo siguiente a la etiqueta <application> de su archivo de manifiesto:
<receiver android:exported="true" android:name="com.singular.sdk.SingularInstallReceiver">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
Gestión manual de sesiones
A partir de Android API 14 (Ice Cream Sandwich), Singular SDK puede gestionar las sesiones automáticamente. Si la minSdkVersion de su aplicación es 14 o superior, no se requiere ninguna configuración adicional para la gestión de sesiones.
Modificación del tiempo de espera de la sesión
Por defecto, si la aplicación se ejecuta en segundo plano durante 60 segundos o más antes de volver al primer plano, el SDK registra una nueva sesión.
Para cambiar el valor del tiempo de espera, utilice withSessionTimeoutInSec(<tiempo de espera en segundos>) en SingularConfig antes de inicializar el SDK.
Por ejemplo
// Set the session timeout to 120 seconds
SingularConfig config = new SingularConfig("SDK KEY", "SDK SECRET")
.withSessionTimeoutInSec(120);
Gestión manual de sesiones
Si el minSdkVersion de su aplicación es inferior a 14, deberá gestionar las sesiones manualmente llamando a los dos métodos de gestión de sesiones del SDK de Singular, onActivityPaused y onActivityResumed, desde cada una de sus actividades.
Nota: Si tiene una clase de actividad base común personalizada de la que derivan todas las demás actividades, puede colocar estas llamadas a onActivityResumed y onActivityPaused en los "métodos onResume y onPause" de la actividad común.
Método Singular.onActivityResumed | |
---|---|
Descripción | Llame a este método dentro del método onResume de la actividad para gestionar la sesión de Singular. |
Firma | public static void onActivityResumed() |
Ejemplo de uso |
|
Método Singular.onActivityPaused | |
Descripción | Llame a este método dentro del método onPause de la actividad para gestionar la sesión de Singular. |
Firma | public static void onActivityPaused() |
Ejemplo de uso |
|
Uso de la interfaz JavaScript
Singular proporciona una interfaz JavaScript que puede utilizar para llamar a Singular desde el código javaScript de su aplicación.
Por ejemplo, si configura la interfaz JavaScript, puede enviar eventos a Singular desde el código JavaScript de la siguiente manera:
Ejemplo de evento
SingularInterface.event('event');
SingularInterface.event('test',
JSON.stringify({"a1":"bar", "a2":"boo", "a3":"baz"}));
La interfaz admite los siguientes métodos SDK:
- setCustomUserID
- unsetCustomUserID
- evento
- ingresos
Para habilitar la interfaz JavaScript, añada las siguientes líneas de código a su actividad principal, donde "myWebView" es el nombre de su webview.
SingularJSInterface singularJSInterfaceInstance = new SingularJSInterface(this);
singularJSInterfaceInstance.setWebViewId(R.id.webview);
myWebView.addjavascriptInterface(singularJSInterfaceInstance, "SingularInterface");
Notas:
- Si tiene más de un webview, haga esto para cada uno.
- Recomendamos colocar el código en el método onCreate de su aplicación.
Tu método onCreate puede tener este aspecto:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
WebView myWebView = (WebView) this.findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setjavaScriptEnabled(true);
myWebView.loadUrl("file:///android_asset/index.html");
SingularConfig config = new SingularConfig("SDK KEY", "SDK SECRET");
Singular.init(this, config);
SingularJSInterface singularJSInterfaceInstance =
new SingularJSInterface(this);
singularJSInterfaceInstance.setWebViewId(R.id.webview);
myWebView.addjavascriptInterface(singularJSInterfaceInstance,
"SingularInterface");
}
Recopilación del OAID (Open Advertising ID)
En los países que no utilizan Google Play, los dispositivos Android no tienen un ID de publicidad de Google (GAID, también llamado AIFA en Singular). En su lugar, los dispositivos pueden ofrecer un identificador llamado OAID (Open Advertising Identifier) que puede utilizarse para rastrear sesiones y eventos procedentes del dispositivo.
OAID se ofrece actualmente en dispositivos de Huawei y de marcas que pertenecen a la Mobile Security Alliance (MSA).
Para que su aplicación recopile el OAID, primero tiene que integrar el SDK de la MSA y el SDK de OAID de Huawei. Necesitas integrar ambos SDKs para poder recoger el OAID en todas las plataformas que lo ofrecen.
A continuación, para indicar al SDK Singular que utilice OAID para el seguimiento, añada una llamada a withOAIDCollection en el objeto config antes de inicializar Singular.
SingularConfig config = new SingularConfig("SDK KEY","SDK SECRET")
.withOAIDCollection();
Singular.init(context, config);
El SDK de Singular detectará automáticamente si el dispositivo tiene un OAID, así como qué SDK de OAID debe utilizarse para recopilar el identificador.
Recopilación del número IMEI
Si su aplicación se ofrece en países que no utilizan Google Play, los dispositivos no tienen un identificador de publicidad de Google. En este caso, es posible que desee recopilar el IMEI (International Mobile Equipment Identity) del dispositivo en su lugar.
Nota: si utilizas los servicios de Google Play, no debes recopilar el número IMEI porque supone una infracción del acuerdo de servicio de Google Play.
Para recopilar el número IMEI
Añade el permiso android.permission.READ_PHONE_STATE al archivo AndroidManifest.xml de la aplicación:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
Añade código como el siguiente para obtener el número IMEI del dispositivo:
TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String imei = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
imei = telephonyManager.getImei();
} else {
imei = telephonyManager.getDeviceId();
}
Para enviar el número IMEI a Singular, utiliza uno de los siguientes métodos:
Recomendado: Establezca el número IMEI en SingularConfig utilizando withIMEI antes de inicializar Singular SDK, como en el siguiente ejemplo. De este modo, Singular dispondrá del número IMEI desde la primera sesión.
SingularConfig config = new SingularConfig("SDK KEY","SDK SECRET")
.withIMEI("537769845792516");
Singular.init(context, config);
Para establecer el número IMEI en cualquier punto del código después de la inicialización del SDK, llame a setIMEI.
Singular.setIMEI Método | |
---|---|
Descripción | Envía el número IMEI del dispositivo a Singular. |
Firma | public void setIMEI(string IMEIString) |
Ejemplo de uso |
|