Adobe Native Extension - AdMob
El uso de las Native Extensions de Adobe permite ejecutar código nativo del sistema operativo donde se ejecute nuestra aplicación.
Para sacar el máximo partido de AdMob con Juegos Flash empaquetados para iPhone/iPad/iPod Touch, es necesario mostrar la publicidad de AdMob de forma nativa, de esta manera se consigue un 100% de efectividad, ya que AdMob muestra la publicidad como de forma nativa, así es capaz de mostrar todas las creatividades disponibles e incluso mostrar AdSense si no tiene anuncios relevantes.
Aquí os dejo un .zip con la extensión y una pequeña ayuda: admob-native-extension.zip
El uso es realmente sencillo:
package {
import com.devilishgames.air.extensions.admob.ios.AdMob;
import flash.display.Sprite;
import flash.geom.Point;public class adMobExample extends Sprite {
private var adMob:AdMob;public function adMobExample():void {
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}private function init(e:Event = null):void {
removeEventListener(Event.ADDED_TO_STAGE, init);try {
adMob = new AdMob(); // Instanciamos la clase AdMob
adMob.id = "ID DE ADMOB"; // Indicar el ID de la APP de AdMob
adMob.size = AdMob.GAD_SIZE_320x50; // Indicamos el tamaño del Banner
adMob.position = new Point(0, stage.stageHeight - adMob.size.y); // Indicamos la posición del banner
adMob.testMode = false; // Decimos que no use el modo test
adMob.showAdMob(); // Mostramos el banner
} catch (e:Error) {
trace(e.getStackTrace());
}
}
}
}
Descripción de la clase:
adMob.id: (String) Cadena con el ID de AdMob
adMob.size: (Point) Punto donde indicar el ancho y alto del banner (.x = ancho, .y = alto)
adMob.position: (Point) Punto donde indicar la posición del banner
adMob.testMode: (Boolean) Mostrar el banner en modo Test o no (por defecto True)
adMob.showAdMob(): (Function) Muestra el banner
adMob.hideAdMob(): (Function) Oculta el banner
Espero que os sea de utilidad.
* a modo de ayuda, menos del 10% de los banners que se muestran serán con un ID mio *
¿Fué interesante? Por qué no dejas un comentario abajo y continúas la conversación.
Comentarios
Cuando debugeo con el flash develop me sale esto:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at com.devilishgames.air.extensions.admob.ios::AdMob/showAdMob()[E:\My Dropbox\AdMob\extensiones\admob\src\com\devilishgames\air\extensions\admob\ios\AdMob.as:55]
Lo unico que se me ocurrio es que no tenga acceso a stage pero si lo tiene.
Lo probe en un ipad pero no se que version de IOS tiene, lo puedo averiguar pero no creo que tenga nada que ver con eso
No aparece ninguna banner en el ipad.
Si realmente necesitas te averiguo la version que tiene de IOS
El codigo que uso es el sigueinte:
private function setupAdMob(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, setupAdMob);
try {
adMob = new AdMob();
adMob.id = “a14ef8f8abc6a7f”;
adMob.size = AdMob.GAD_SIZE_320×50;
adMob.position = new Point(0, stage.stageHeight - adMob.size.y);
adMob.testMode = false;
adMob.showAdMob();
Tal vez hay algo mal en como configure la aplicacion en la pagina de admob, le puse que sea aplicacion de iphone, o tal vez lo que puse como ID no es lo que va. Estaraia bueno que nos guies un poco en como se trabaja con adMob por que para los que trabajamos con flash admob es algo nuevo, todos necesitamos ayuda con esto.
Gracias
Flash develop, baje el zip y copie el swc a mi proyecto, despues le puse “add to library” y ya me reconocio la clase perfectamente, es lo que hago siempre con los swc y funcionan, tengo que agragar algun otro de los archivos uqe venian en el zip o algo por el estilo?
ok ya veo que esto es una native extension y se instala distinto que un simple swc, lo unico que pude encontrar es esto:
http://www.flashdevelop.org/community/viewtopic.php?f=9&t=9049&p=42404&hilit=native+extension#p42404
y me da el mismo error que le da a el
alguna ayuda de como instalar la extension con flash develop?
Hago eso y cuando quiero exportar para IOS me sale el siguiente error:
Packaging: dist\Pejeman-ad-hoc.ipa
using certificate: cert\iphone_adh.p12…
password:
Exception in thread “main” java.lang.Error: Unable to find named traits: com.dev
ilishgames.air.extensions.admob.ios::AdMob
at adobe.abc.Domain.resolveTypeName(Domain.java:231)
at adobe.abc.Domain.resolveTypeName(Domain.java:148)
at adobe.abc.GlobalOptimizer$InputAbc.resolveTypeName(GlobalOptimizer.ja
va:272)
at adobe.abc.GlobalOptimizer$InputAbc.resolveSlotType(GlobalOptimizer.ja
va:946)
at adobe.abc.GlobalOptimizer$InputAbc.resolveType(GlobalOptimizer.java:5
35)
at adobe.abc.GlobalOptimizer$InputAbc.resolveTypes(GlobalOptimizer.java:
448)
at adobe.abc.LLVMEmitter.generateBitcode(LLVMEmitter.java:327)
at com.adobe.air.ipa.AOTCompiler.convertAbcToLlvmBitcodeImpl(AOTCompiler
.java:472)
at com.adobe.air.ipa.BitcodeGenerator.main(BitcodeGenerator.java:82)
Compilation failed while executing : ADT
APK setup creation FAILED.
Lo hice funcionar siguiendo estos pasos:
-Copiar el archivo admob.ane en la carpeta lib del proyecto
-Ir a flash develop y hacer click derecho sobre el archivo admob.ane y despues en “add to library”
-editar el archivo bat/Packager.bat y agregar -extdir lib al final de la linea que empieza con call adt
tiene que quedar algo asi:
call adt -package -target %TYPE%%TARGET% %OPTIONS% %SIGNING_OPTIONS% “%OUTPUT%” “%APP_XML%” %FILE_OR_DIR% -extdir lib
-editar application.xml y agregar lo siguiente:
com.devilishgames.AdMob
-editar application.xml y agregar lo siguiente:
extensions>
extensionID>com.devilishgames.AdMob /extensionID>
/extensions>
le saque el simbolo < para que se muestre
Ahora el problema que tengo es que cada 5 veces que abro la aplicacion en el ipad me aparece el banner, no aparece siempre, eso es por que anda mal el plugin o por que admob es asi?
No esta andando en el IPhone, lo probaste en un Iphone alguna vez? tal vez soy yo que tengo algun problema?
I am having trouble, I got it to Package and make the ipa using AdobeAIRSDK but when I create a new admob () it just gives me an error that makes my iPhone white. Any thoughts?
Mi problema de que no se veia el banner en el Iphone era por que yo usaba:
stage.scaleMode = StageScaleMode.SHOW_ALL;
(cosa que no hay que hacer por varios motivos)
para que se adapte el tamaño de la aplicacion a la pantalla del iphone, que originalmente es de tamaño ipad.
Pero como el banner no es un child del stage si no que es independiente, quedaba fuera de la pantalla en el ipad.
Hay algo muy importante que deberia estar documentado, para cambiar la posicion del banner hay que cambiar el parametro position y para que el cambio de posicion surta efecto agregar estas lineas:
adMob.hideAdMob();
adMob.showAdMob();
Saber esto es indispensable para aplicaciones que cambian la orientacion o se adaptan a diferentes tamaños de pantalla como el caso de las que son compatibles tanto con iphone como con ipad, ya que si cambia el tamaño del stage tenemos que mover el banner a una nueva posicion.
que quiere decir esto:
* a modo de ayuda, menos del 10% de los banners que se muestran serán con un ID mio *
Deberia estar mas claramente informado que cerca del 10% de las ganancias son para el creador del plugin. Muy injusto a mi parecer. En cuanto tenga tiempo voy a hacer mi propio native plugin gratuito para evitar este problema a la comunidad de programadores
Cuando el paquete de archivos como ipa-app-store no funciona. ¿Cómo lo paquete de tienda de aplicaciones? ipa-intérprete de prueba funciona, pero que no es aceptado en la App Store lo que pensaba.
Yes I am using adt to package it for Iphone. I got it to work in ipa-test-interpreter mode but I cannot upload it to app store doing this. It requires -ipa-app-store package. I looked inside the ipa itself and it seems that the only thing wrong is that the library.swf doesnt get copied correctly. The file isnt the correct size at all. I can a new version after it was made into the ipa but then again it prevents me from uploading the ipa to the app store because it has been changed after created.
Also, when I package as app-store the app on the iphone doesnt get past the loading splash screen. This is the main issue. It works fine when on the test-interpreter mode as I mentioned.
Thanks for the fast reply. Ok so I did ipa-app-store without any extensions and it works fine. I did debug mode with extensions and it quits the app on splash screen so I can’t even have time to connect to debug it.
I am using cs5.5 flash pro to make the app and been compiling using adt from adobe air sdk
Also the sdk is 3 so it supports native extensions. I believe it has to do with packing the admob file. I point the extdir to the folder containing the ane and swf admob file and added the extension in the XML file too.
Well I moved the admob into the second page so it doesn’t appear at main screen and the compile works but when I get to the next screen it freezes. I’ll try to give you some debug info soon.
AdobeAIRSDK\bin\adt -package -target ipa-debug -storetype pkcs12 -keystore iphone_distro.p12 -provisioning-profile mymobile.mobileprovision bottle.ipa bottle-app.xml bottle.swf default.png icon114.png icon57.png icon29.png -extdir extensionsDir
Where extensionsDir has the ane file
Thank you for your help! I got it working on a new test app in app store package type. I am going to Figure out what is changed in my main program to see why it is not working but the new file is.
Apparently the sdk in flash wasn’t updated exactly right.
When updating to use native extensions in flash, follow these instructions.
http://www.youtube.com/watch?v=pwVkK27Nors
Copy the new Airsdk into flash, copy some files, and edit a few others. This allows the swf compiled to work when using adt app-store packaging







(2 votos, media: 5 de 5)
no anda