Guía del usuario de ANJAM
La API de Anunciante a JavaScript nativo para dispositivos móviles, o "ANJAM", proporciona a los creativos móviles acceso a características adicionales que no proporciona MRAID. Esto incluye la capacidad de realizar una vinculación profunda.
Nota:
Las creatividades móviles que se ejecutan en iframes pueden usar MRAID junto con esta API.
Uso
Todas las funciones de ANJAM son asincrónicas. Cualquier función que consulte un resultado tendrá que instalar una función para controlar la respuesta. Se llamará a la función de devolución de llamada con un objeto de resultado cuyas propiedades contienen los resultados de la llamada de función.
Nota:
Todos los objetos de resultado también contendrán una result.caller
propiedad con el valor del nombre de la función que realiza la llamada (por ejemplo: DeepLink
o GetDeviceID
).
Sugerencia
Uso de ANJAM/MRAID desde dentro de un iframe:
Para que un creativo use ANJAM, MRAID desde dentro de un iFrame en el SDK (incluso cuando se activa "Serve in iFrame"), la creatividad debe agregar este fragmento de código HTML al principio:
<script src="https://acdn.adnxs.com/mobile/anjam/anjam.js"></script>
Funciones exportadas
En esta sección se enumeran todas las funciones exportadas por ANJAM. Cada función se describe y se usa en un ejemplo.
anjam. MayDeepLink(url, result_callback)
Los creativos pueden usar esta función para determinar si la aplicación a la que están vinculadas en profundidad está instalada en el dispositivo.
-
url
: cadena que indica una dirección URL de vínculo profundo que controla una aplicación nativa. Por ejemplo,"fb://post?1234"
. Consulte también la documentación de Facebook sobre la vinculación profunda. -
result_callback
-function(result) {}
: se llamará a con un objeto de resultado, con un valor detrue
ofalse
en laresult.mayDeepLink
propiedad que indica si el vínculo profundo se controlará en este dispositivo o no.
Ejemplo:
var url = "example://widget?id=123";
ExampleDeepLink = function (url) {
// Test for success.
anjam.MayDeepLink(url, function (result) {
// This will log "Callback for MayDeepLink: true".
console.log("Callback for " + result.caller + ": " + result.mayDeepLink);
if (result.mayDeepLink) {
anjam.DeepLink(url, function (deeplinkresult) {
console.log(deeplinkresult.caller + " call failed.");
});
}
});
}
ExampleDeepLink(url);
anjam. DeepLink(url, err_callback)
Los creativos usarán esta función para llamar a la dirección URL del vínculo profundo, normalmente como respuesta a un onClick()
evento y después de recibir un true
resultado de mayDeepLink()
.
Si el DeepLink()
lanzamiento se realizó correctamente y el anuncio se expandió, el anuncio se cerrará y no se llamará a la devolución de llamada.
-
url
: cadena que indica una dirección URL de vínculo profundo. -
err_callback
:function(result) {}
solo se llama si laDeeplink()
operación se inició sin éxito. El objeto de resultado solo es útil para laresult.caller
propiedad .
Consulte la documentación para obtener anjam.MayDeepLink()
un ejemplo.
anjam. ExternalBrowser(url)
Permite que el creativo invalide la configuración del SDK y obligue a que la página de aterrizaje se abra en el explorador nativo del dispositivo (en lugar del explorador desde la aplicación predeterminado).
-
url
: dirección URL que se va a abrir en el explorador de plataforma nativa. Similar a laDeepLink()
llamada, pero pensada para iniciar sitios web en el explorador nativo.
Ejemplo:
var url = "http://www.example.com";
ExampleExternalBrowser = function(url) {
anjam.ExternalBrowser(url);
}
ExampleExternalBrowser(url);
anjam. InternalBrowser(url)
Normalmente, las direcciones URL se abren en el explorador desde la aplicación en modo invisible para comprobar si la dirección URL se redirige a una tienda o no. Esta llamada obliga al explorador desde la aplicación a ser visible inmediatamente. Si la dirección URL o una de sus redirecciones va a la tienda de aplicaciones, se abrirá la tienda de aplicaciones y se descartará el explorador en la aplicación como normal. Este método permite invalidar el modo invisible inicial.
-
url
: dirección URL que se va a abrir en el explorador desde la aplicación.
Ejemplo:
var url = "http://www.example.com";
ExampleInternalBrowser = function(url) {
anjam.InternalBrowser(url);
}
ExampleInternalBrowser(url);
anjam. RecordEvent(url)
Se usa para el seguimiento de eventos; el SDK cargará la dirección URL en segundo plano. Normalmente, esto se usa para realizar el seguimiento de píxeles.
-
url
: dirección URL que el SDK cargará en segundo plano. La dirección URL aceptará'data'
direcciones URL o'javascript:'
.
Ejemplo:
ExampleRecordEvent = function() {
anjam.RecordEvent("http://www.example.com/pixel?id=123");
}
anjam. DispatchAppEvent(event, data)
Proporciona a la creatividad la capacidad de enviar un evento personalizado a la aplicación. Para recibir este evento, la aplicación debe implementar código.
En iOS, la aplicación implementaría AppEventDelegate
el didReceiveAppEvent
método .
En Android, la aplicación implementaría en onAppEvent
la AppEventListener
clase .
-
event
: cadena entregada al controlador de la aplicación. -
data
: cadena entregada al controlador de la aplicación.
Ejemplo:
var e = 'SomeEvent';
var d = 'TheEventData';
ExampleDispatchAppEvent = function(evt, data) {
anjam.DispatchAppEvent(evt, data);
}
ExampleDispatchAppEvent(e, d);
anjam. GetVersion(callback)
Se usa para obtener la versión actual de la API de ANJAM.
-
callback
:function(result) {}
se llama con la cadena de versión de API actual ("1.0") en laresult.version
propiedad .
Ejemplo:
ExampleGetVersion = function() {
anjam.GetVersion(function (result) {
// This will log "GetVersion returned: 1.0".
console.log(result.caller + " returned: " + result.version);
});
}
ExampleGetVersion();
anjam.GetDeviceID(callback)
Se usa para recuperar el identificador de dispositivo actual para Advertising.
-
callback
:function(result) {}
: se llama con lasresult.idname
propiedades yresult.id
.idname
es una cadena con el tipo de identificador que se pasa.id
es el valor de cadena del identificador de publicidad. - En el caso de los dispositivos
idname
iOS, el identificador es"idfa"
el id. de Apple para publicidad. - En el caso de los dispositivos Android que usan los servicios de Google Play,
idname
será"aaid"
yid
será el id. de Google Android Advertising. - En el caso de los dispositivos Android que no usen servicios de Google Play,
idname
será"sha1udid"
y será elid
hash SHA1 del identificador de Android del dispositivo.
Ejemplo:
ExampleGetDeviceID = function() {
anjam.GetDeviceID(function (result) {
// This will log "GetDeviceID: idfa = AEBE52E7-03EE-455A-B3C4-E57283966239".
console.log(result.caller + ": " + result.idname + " = " + result.id);
});
}
ExampleGetDeviceID();
anjam. SetMRAIDRefreshFrequency(milisegundos)
Proporciona la capacidad para que el desarrollador creativo especifique un intervalo de tiempo personalizado para actualizar los valores de tamaño, posición y visibilidad. Además, en iOS, esta llamada debe habilitarse NSRunLoopCommonModes
en .NSTimer
-
milliseconds
: valor entero que describe el intervalo de tiempo en milisegundos.
Ejemplo:
<script src="mraid.js"></script>
<script type="text/javascript">
if (mraid.getState() == 'loading') {
mraid.addEventListener('ready', onSDKReady);
} else {
onSDKReady();
}
function onSDKReady() {
if ((typeof window.anjam.SetMRAIDRefreshFrequency) !== "undefined") {
anjam.SetMRAIDRefreshFrequency(10);
}
setInterval(function() {
p = mraid.getCurrentPosition(), s = mraid.getScreenSize(), d = document.getElementById('pc'), y = (1-(s.height-p.y)/s.height)*300;
d && (d.scrollTop = y);
}, 10);
}
</script>
<style type="text/css">
#pc { position: relative; width: 300px; height: 300px; overflow: hidden; }
</style>
<a href="https://www.reddit.com/r/cats/"><img src="media/600" width="300" height="600"><
/img></a>
anjam. GetCustomKeywords(url)
Proporciona la capacidad de obtener palabras clave personalizadas establecidas en BannerAdView. Con esta característica, cualquier palabra clave personalizada establecida en BannerAdView es accesible en la creatividad HTML a través de ANJAM sin usar macros creativas ni ejecutar un JS aleatorio en webview.
-
callback
: function(result): {} responde con las palabras clave personalizadas agregadas.
Ejemplo:
ExampleGetCustomKeywords = function() {
anjam.GetCustomKeywords(function (result) {
// If you have set custom keywords in BannerAdView like below
//banner.addCustomKeyword(withKey: "foo", value: "bar")
//banner.addCustomKeyword(withKey: "randomkey", value: "randomvalue")
// This will log "GetCustomKeywords foo=bar randomkey=randomvalue".
console.log("GetCustomKeywords" + " foo=" + result.foo + " randomkey=" + result.randomkey);
});
}
ExampleGetCustomKeywords();