HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
0101
デベロパcallAdMobでインタースティシャル広告を呼び出したい38解決


デベロパ

リンク

2016/1/1(Fri) 21:33:39|NO.73930

javaの知識は全く無いのですが、HspActivity.javaに手をくわえてインタースティシャル広告を表示できるようにしてみたいと思ってます。
http://aillicepray.blogspot.jp/2014/10/admob.html
ここを参考に// for AdMobのところからインタースティシャル広告を表示するスクリプトを追加してみて、なんとかビルドに成功したのですが(警告はたくさん出ますが)バナー広告が表示されてしまいます。
おそらくcallAdMobのところでバナー広告を呼び出すスクリプトが書かれているからだと思うのですが、どう修正すればいいか参考になるサイトも見つかりません。
何かわかる方がいたらアドバイスいただけませんか?
ちなみに手をくわえた// for AdMobからのスクリプトの載せておきます。


// for AdMob
private static AdView adView;
private static AdRequest.Builder _request;
private static PopupWindow popUp;
private static HspActivity _activity;
private static LinearLayout layout;
private static LinearLayout mainLayout;
private static boolean adsinited = false;
private static int disp_width = 0;
private static int disp_height = 0;
private InterstitialAd interstitial;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Make your custom init here
//getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
_activity = this;

// インタースティシャルを作成する。
interstitial = new InterstitialAd(_activity);
interstitial.setAdUnitId("ca-app-pub-???????????????????????????");

// 広告リクエストを作成する。
AdRequest adRequest = new AdRequest.Builder().build();

// インタースティシャルの読み込みを開始する。
interstitial.loadAd(adRequest);

WindowManager windowmanager = (WindowManager)getSystemService(WINDOW_SERVICE);
Display disp = windowmanager.getDefaultDisplay();
disp_width = disp.getWidth();
disp_height = disp.getHeight();
Log.i("HspActivity","size"+disp_width+"x"+disp_height);
// Create our ad view here

adView = new AdView(_activity);
adView.setAdUnitId("ca-app-pub-???????????????????????????");
adView.setAdSize(AdSize.BANNER);
//adView = new AdView(_activity, AdSize.BANNER, "publisherID");
if(adView!=null) {
Log.i("HspActivity","done adView initalizing.");

_request = new AdRequest.Builder();
_request.addTestDevice(AdRequest.DEVICE_ID_EMULATOR);
adView.loadAd( _request.build() );
}
Log.i("HspActivity","adView initalized.");
}
// インタースティシャルを表示する準備ができたら、displayInterstitial() を呼び出す。
public void displayInterstitial() {
if (interstitial.isLoaded()) {
interstitial.show();
}
}



この記事に返信する


kanamaru

リンク

2016/1/1(Fri) 23:27:52|NO.73935

adView = new AdView(_activity);
adView.setAdUnitId("ca-app-pub-???????????????????????????");
adView.setAdSize(AdSize.BANNER);
//adView = new AdView(_activity, AdSize.BANNER, "publisherID");
if(adView!=null) {
Log.i("HspActivity","done adView initalizing.");

_request = new AdRequest.Builder();
_request.addTestDevice(AdRequest.DEVICE_ID_EMULATOR);
adView.loadAd( _request.build() );
}
の部分を消して、
displayInterstitial()
の中身を少し変えて呼び出してあげればいいと思います。
なんでも、インタースティシャル広告は準備に時間がかかるらしいので、
それを踏まえて、
while文を使って準備が終わるまで待てばいいと思います。



kanamaru

リンク

2016/1/1(Fri) 23:29:42|NO.73936

なお、上の投稿は僕がデベロペパさんが教えてくれた参考URLを見て
何となくで投稿したので、ビルドに失敗する可能性があります。
無責任な投稿ですいません。



デベロパ

リンク

2016/1/2(Sat) 09:14:37|NO.73942

// for AdMob
private static AdView adView;
private static AdRequest.Builder _request;
private static PopupWindow popUp;
private static HspActivity _activity;
private static LinearLayout layout;
private static LinearLayout mainLayout;
private static boolean adsinited = false;
private static int disp_width = 0;
private static int disp_height = 0;
private InterstitialAd interstitial;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Make your custom init here
//getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
_activity = this;

// インタースティシャルを作成する。
interstitial = new InterstitialAd(_activity);
interstitial.setAdUnitId("ca-app-pub-???????????????????????????");

// 広告リクエストを作成する。
AdRequest adRequest = new AdRequest.Builder().build();

// インタースティシャルの読み込みを開始する。
interstitial.loadAd(adRequest);

WindowManager windowmanager = (WindowManager)getSystemService(WINDOW_SERVICE);
Display disp = windowmanager.getDefaultDisplay();
disp_width = disp.getWidth();
disp_height = disp.getHeight();
Log.i("HspActivity","size"+disp_width+"x"+disp_height);
// Create our ad view here

//adView = new AdView(_activity);
//adView.setAdUnitId("ca-app-pub-???????????????????????????");
//adView.setAdSize(AdSize.BANNER);
//adView = new AdView(_activity, AdSize.BANNER, "publisherID");
if(adView!=null) {
Log.i("HspActivity","done adView initalizing.");

//_request = new AdRequest.Builder();
//_request.addTestDevice(AdRequest.DEVICE_ID_EMULATOR);
//adView.loadAd( _request.build() );
}
Log.i("HspActivity","adView initalized.");
}
// インタースティシャルを表示する準備ができたら、displayInterstitial() を呼び出す。
public void displayInterstitial() {
if (interstitial.isLoaded()) {
interstitial.show();
}
}

ビルドは成功したんですけど、やはりインタースティシャルの呼び出しがよくわからないですね。



デベロパ

リンク

2016/1/2(Sat) 09:20:50|NO.73943

バナー広告は//adView.loadAd( _request.build() );で読み込んで下のcallAdMob内で呼び出してると思っているんですが違いますかね?
そのバナー広告を呼び出しているところをインタースティシャルを呼び出すスクリプトに変えたらいけるんじゃないかって勝手に考えてたんですけど、やっぱりjavaわかんないと難しいですね。


// Our popup window, you will call it from your C/C++ code later
public int callAdMob( int val ) {
if(adsinited) {
return -1;
}
if(adView!=null) {
Log.i("HspActivity","callAdMob.");
_activity.runOnUiThread(new Runnable() {
@Override
public void run() {
adsinited = true;
// Out popup window
popUp = new PopupWindow(_activity);
// This is the minimum size for AdMob, we need to set this in case our target device run at 320x480 resolution (Otherwise no ad will be shown, see the padding kill below)
//popUp.setWidth(484);
popUp.setWidth(disp_width+4);
popUp.setHeight(77);
popUp.setWindowLayoutMode(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
popUp.setClippingEnabled(false);
layout = new LinearLayout(_activity);
mainLayout = new LinearLayout(_activity);
// The layout system for the PopupWindow will kill some pixels due to margins/paddings etc(No way to remove it), so padd it to adjust
layout.setPadding(-5, -5, -5, -5);
MarginLayoutParams params = new MarginLayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.setMargins(0, 0, 0, 0);
layout.setOrientation(LinearLayout.VERTICAL);
layout.addView(adView, params);
popUp.setContentView(layout);
_activity.setContentView(mainLayout, params);

//AdRequest adRequest = new AdRequest();
// Enable this if your are testing AdMob, otherwise you'll risk to be banned!
//adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
//adRequest.addTestDevice("********************************");
//_activity.adView.loadAd(_request);
Log.i("HspActivity","loadAd.");
// Show our popup window
popUp.showAtLocation(mainLayout, Gravity.BOTTOM, 0, 0);
popUp.update();
}});

} else {
Log.i("HspActivity","callAdMob failed.");
}
return 0;
}



kanamaru

リンク

2016/1/2(Sat) 14:36:44|NO.73958

見た感じ、hspでは、通常と異なり、専用のポップアップに広告を表示してますね。
なので、そのポップアップにインタースティシャル広告を追加すればいいのかなと。
calladmobのadViewをinterstitialに変えればいけるのかな?
なんか想像していたよりも大変…。
あと変えるとしたら、popupのサイズかな?
setWidthとsetHeightで指定している値を適切に変えれば…。



デベロパ

リンク

2016/1/3(Sun) 20:32:45|NO.73969

javaがわかる方の協力も得て、インタースティシャルをcallAdMob、バナーをcallAdMob2にして見てみました。
ビルドは成功するんですが、アプリを起動すると広告が表示するタイミングで問題が発生しましたと出てアプリが強制終了になってしまいます。
そもそもHSPのスクリプトにdevcontrol "AdMob"と書くとこのjavaファイルからこの部分を呼び出すという動作はどこで書かれているんですかね。
いっそのことcallAdMob2の方を全部消してみた方がいいんですかね?


// インタースティシャルを表示する準備ができたら、displayInterstitial() を呼び出す。
public int callAdMob( int val ) {
if (interstitial.isLoaded()) {
interstitial.show();
}else{
return -1;
}
return 0;
}

// Our popup window, you will call it from your C/C++ code later
public int callAdMob2( int val ) {
if(adsinited) {
return -1;
}
if(adView!=null) {
Log.i("HspActivity","callAdMob.");
_activity.runOnUiThread(new Runnable() {
@Override
public void run() {
adsinited = true;
// Out popup window
popUp = new PopupWindow(_activity);
// This is the minimum size for AdMob, we need to set this in case our target device run at 320x480 resolution (Otherwise no ad will be shown, see the padding kill below)
//popUp.setWidth(484);
popUp.setWidth(disp_width+4);
popUp.setHeight(77);
popUp.setWindowLayoutMode(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
popUp.setClippingEnabled(false);
layout = new LinearLayout(_activity);
mainLayout = new LinearLayout(_activity);
// The layout system for the PopupWindow will kill some pixels due to margins/paddings etc(No way to remove it), so padd it to adjust
layout.setPadding(-5, -5, -5, -5);
MarginLayoutParams params = new MarginLayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.setMargins(0, 0, 0, 0);
layout.setOrientation(LinearLayout.VERTICAL);
layout.addView(adView, params);
popUp.setContentView(layout);
_activity.setContentView(mainLayout, params);

//AdRequest adRequest = new AdRequest();
// Enable this if your are testing AdMob, otherwise you'll risk to be banned!
//adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
//adRequest.addTestDevice("********************************");
//_activity.adView.loadAd(_request);
Log.i("HspActivity","loadAd.");
// Show our popup window
popUp.showAtLocation(mainLayout, Gravity.BOTTOM, 0, 0);
popUp.update();
}});

} else {
Log.i("HspActivity","callAdMob failed.");
}
return 0;
}

// Do some cleanup
@Override
public void onDestroy() {
if (adView != null) {
adView.destroy();
}
super.onDestroy();
}



}



デベロパ

リンク

2016/1/3(Sun) 20:41:51|NO.73970

ちなみに現在のHspActivityファイルです。
http://fast-uploader.com/file/7007376808377/
パスワード1230



デベロパ

リンク

2016/1/3(Sun) 21:13:06|NO.73972

popUp = new PopupWindow(_activity);
あたりのスクリプトをdisplayInterstitial()内に書かなくちゃいけないんですかね?
というかなぜ専用ポップアップ使っているんだろう…



デベロパ

リンク

2016/1/4(Mon) 09:37:10|NO.73976

adViewをすべてinterstitialに変えて試したところビルドが成功し、強制終了も無くなったんですが、広告の表示が異常です。
どなたかこのHspActivity.javaファイルを上書きしてどう表示されるか試していただけませんか?
popUp.setWidth()やpopUp.setHeight()の数字をいじっても僕のAndroidではサイズが変わらないようです。

http://fast-uploader.com/file/7007423317293/
パスワード1230



kanamaru

リンク

2016/1/4(Mon) 11:06:46|NO.73977

googleが提供するAndroidのアプリのサンプルプロジェクトを見てみました。
どうやらsetwidth等は全く読んでないようです。
なので、ひょっとしたら、
setwidth,setheightの行を消したらいいのかもしれません。



デベロパ

リンク

2016/1/5(Tue) 10:46:54|NO.73999

ポップアップのサイズ設定ですが、
http://qiita.com/nein37/items/cc4fe1dc4f9527f8dd59
を参考にした結果

popUp.setWidth(disp_width+4);
popUp.setHeight(77);
の数字を変えるだけじゃなく
popUp.setWindowLayoutMode(disp_width+4, 77);
こうすればサイズが変わりました。

これでポップアップのサイズを全画面にすればインタースティシャル広告も表示できそうですね。



デベロパ

リンク

2016/1/5(Tue) 10:50:24|NO.74000

しかし、今謎のエラーが出て戦っています。
これまで通常通りビルドができていたHspActivityファイルだったのですが急にエラーが出始めました。


#HSP script preprocessor ver3.5beta3 / onion software 1997-2015(c)
#Use file [hspdef.as]
#HSP code generator ver3.5beta3 / onion software 1997-2015(c)
#未初期化の変数があります(x)
#未初期化の変数があります(y)
#Code size (388) String data size (7) param size (0)
#Vars (7) Labels (2) Modules (0) Libs (0) Plugins (1)
#No error detected. (total 549 bytes)
use HSP3Dish mode.

Android NDK: WARNING:jni/Android.mk:test08: non-system libraries in linker flags: -lobaqlib
Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES
Android NDK: or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the
Android NDK: current module
[armeabi-v7a] Compile++ thumb: test08 <= hspsource.cpp
jni/hsp3embed/hspsource.cpp: In function 'void L0002()':
jni/hsp3embed/hspsource.cpp:108:17: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
PushStr("AdMob");
^
[armeabi-v7a] SharedLibrary : libtest08.so
[armeabi-v7a] Install : libtest08.so => libs/armeabi-v7a/libtest08.so

Buildfile: C:\android\test08\build.xml

-set-mode-check:

-set-debug-files:

-check-env:
[checkenv] Android SDK Tools Revision 24.0.2
[checkenv] Installed at C:\android\android-sdk-windows

-setup:
[echo] Project Name: test08
[gettype] Project Type: Application

-set-debug-mode:

-debug-obfuscation-check:

-pre-build:

-build-setup:
[getbuildtools] Using latest Build Tools: 22.0.1
[echo] Resolving Build Target for test08...
[gettarget] Project Target: Android 4.4.2
[gettarget] API level: 19
[echo] ----------
[echo] Creating output directories if needed...
[mkdir] Created dir: C:\android\test08\bin\res
[mkdir] Created dir: C:\android\test08\bin\rsObj
[mkdir] Created dir: C:\android\test08\bin\rsLibs
[mkdir] Created dir: C:\android\test08\bin\classes
[mkdir] Created dir: C:\android\test08\bin\dexedLibs
[echo] ----------
[echo] Resolving Dependencies for test08...
[dependency] Library dependencies:
[dependency]
[dependency] ------------------
[dependency] Ordered libraries:
[dependency]
[dependency] ------------------
[echo] ----------
[echo] Building Libraries with 'debug'...

nodeps:

-set-mode-check:

-set-debug-files:

-check-env:
[checkenv] Android SDK Tools Revision 24.0.2
[checkenv] Installed at C:\android\android-sdk-windows

-setup:
[echo] Project Name: google-play-services_lib
[gettype] Project Type: Android Library

-set-debug-mode:

-debug-obfuscation-check:

-pre-build:

-build-setup:
[getbuildtools] Using latest Build Tools: 22.0.1
[echo] Resolving Build Target for google-play-services_lib...
[gettarget] Project Target: Android 4.2.2
[gettarget] API level: 17
[echo] ----------
[echo] Creating output directories if needed...
[mkdir] Created dir: C:\android\google-play-services_lib\bin\rsObj
[mkdir] Created dir: C:\android\google-play-services_lib\bin\rsLibs
[echo] ----------
[echo] Resolving Dependencies for google-play-services_lib...
[dependency] Library dependencies:
[dependency] No Libraries
[dependency]
[dependency] ------------------

-code-gen:
[mergemanifest] Found Deleted Target File
[mergemanifest] Merging AndroidManifest files into one.
[mergemanifest] Manifest merger disabled. Using project manifest only.
[echo] Handling aidl files...
[aidl] No AIDL files to compile.
[echo] ----------
[echo] Handling RenderScript files...
[echo] ----------
[echo] Handling Resources...
[aapt] Found Deleted Target File
[aapt] Generating resource IDs...
[echo] ----------
[echo] Handling BuildConfig class...
[buildconfig] No need to generate new BuildConfig.

-pre-compile:

-compile:
[javac] Compiling 1 source file to C:\android\google-play-services_lib\bin\classes
[echo] Creating library output jar file...

-post-compile:

-obfuscate:

-dex:
[echo] Library project: do not convert bytecode...

-crunch:
[crunch] Crunching PNG Files in source dir: C:\android\google-play-services_lib\res
[crunch] To destination dir: C:\android\google-play-services_lib\bin\res
[crunch] Crunched 0 PNG files to update cache

-package-resources:
[echo] Library project: do not package resources...

-package:
[echo] Library project: do not package apk...

-post-package:

-do-debug:
[echo] Library project: do not create apk...
[propertyfile] Updating property file: C:\android\google-play-services_lib\bin\build.prop
[propertyfile] Updating property file: C:\android\google-play-services_lib\bin\build.prop
[propertyfile] Updating property file: C:\android\google-play-services_lib\bin\build.prop
[propertyfile] Updating property file: C:\android\google-play-services_lib\bin\build.prop

-post-build:

debug:

-code-gen:
[mergemanifest] Merging AndroidManifest files into one.
[mergemanifest] Manifest merger disabled. Using project manifest only.
[echo] Handling aidl files...
[aidl] No AIDL files to compile.
[echo] ----------
[echo] Handling RenderScript files...
[echo] ----------
[echo] Handling Resources...
[aapt] Found Deleted Target File
[aapt] Generating resource IDs...
[echo] ----------
[echo] Handling BuildConfig class...
[buildconfig] Generating BuildConfig class.

-pre-compile:

-compile:
[javac] Compiling 5 source files to C:\android\test08\bin\classes
[javac] 警告:com\google\android\gms\ads\AdView.class(com\google\android\gms\ads:AdView.class): メジャーバージョン 51 は、このコンパイラでサポートされている最新のメジャーバージョン 50 より新しいです。
[javac] コンパイラのアップグレードをお勧めします。
[javac] 警告:com\google\android\gms\ads\AdRequest.class(com\google\android\gms\ads:AdRequest.class): メジャーバージョン 51 は、このコンパイラでサポートされている最新のメジャーバージョン 50 より新しいです。
[javac] コンパイラのアップグレードをお勧めします。
[javac] 警告:com\google\android\gms\ads\AdRequest$Builder.class(com\google\android\gms\ads:AdRequest$Builder.class): メジャーバージョン 51 は、このコンパイラでサポートされている最新のメジャーバージョン 50 より新しいです。
[javac] コンパイラのアップグレードをお勧めします。
[javac] 警告:com\google\android\gms\ads\InterstitialAd.class(com\google\android\gms\ads:InterstitialAd.class): メジャーバージョン 51 は、このコンパイラでサポートされている最新のメジャーバージョン 50 より新しいです。
[javac] コンパイラのアップグレードをお勧めします。
[javac] 警告:com\google\android\gms\ads\AdSize.class(com\google\android\gms\ads:AdSize.class): メジャーバージョン 51 は、このコンパイラでサポートされている最新のメジャーバージョン 50 より新しいです。
[javac] コンパイラのアップグレードをお勧めします。
[javac] 注:C:\android\test08\src\tv\hsp\HspActivity.java は推奨されない API を使用またはオーバーライドしています。
[javac] 注:詳細については、-Xlint:deprecation オプションを指定して再コンパイルしてください。
[javac] 警告 5 個

-post-compile:

-obfuscate:

-dex:
[dex] input: C:\android\test08\bin\classes
[dex] input: C:\android\google-play-services_lib\bin\classes.jar
[dex] input: C:\android\test08\libs\android-support-v4.jar
[dex] input: C:\android\google-play-services_lib\libs\google-play-services.jar
[dex] Pre-Dexing C:\android\google-play-services_lib\bin\classes.jar -> classes-5390411ecb651e75b4ab5d71f10197b6.jar
[dex] Pre-Dexing C:\android\test08\libs\android-support-v4.jar -> android-support-v4-8fa26e3514e1e1d7ad77ccd9496ee60f.jar
[dex] Pre-Dexing C:\android\google-play-services_lib\libs\google-play-services.jar -> google-play-services-12cb48cc859b84543b87604ca2704571.jar
[dex] Converting compiled files and external libraries into C:\android\test08\bin\classes.dex...
[dx] Merged dex A (34 defs/32.5KiB) with dex B (1 defs/0.4KiB). Result is 35 defs/37.2KiB. Took 0.1s
[dx] Merged dex A (35 defs/37.2KiB) with dex B (1113 defs/1089.5KiB). Result is 1148 defs/1384.8KiB. Took 0.3s
[dx] Result compacted from 6009.8KiB to 4657.2KiB to save 1352.7KiB
[dx] Merged dex A (1148 defs/1384.8KiB) with dex B (4118 defs/3553.3KiB). Result is 5266 defs/4657.2KiB. Took 1.5s

-crunch:
[crunch] Crunching PNG Files in source dir: C:\android\test08\res
[crunch] To destination dir: C:\android\test08\bin\res
[crunch] Processing image to cache: C:\android\test08\res\drawable-hdpi\ic_launcher.png => C:\android\test08\bin\res\drawable-hdpi\ic_launcher.png
[crunch] (processed image to cache entry C:\android\test08\bin\res\drawable-hdpi\ic_launcher.png: 76% size of source)
[crunch] Processing image to cache: C:\android\test08\res\drawable-ldpi\ic_launcher.png => C:\android\test08\bin\res\drawable-ldpi\ic_launcher.png
[crunch] (processed image to cache entry C:\android\test08\bin\res\drawable-ldpi\ic_launcher.png: 0% size of source)
[crunch] Processing image to cache: C:\android\test08\res\drawable-mdpi\ic_launcher.png => C:\android\test08\bin\res\drawable-mdpi\ic_launcher.png
[crunch] (processed image to cache entry C:\android\test08\bin\res\drawable-mdpi\ic_launcher.png: 80% size of source)
[crunch] Processing image to cache: C:\android\test08\res\drawable-xhdpi\ic_launcher.png => C:\android\test08\bin\res\drawable-xhdpi\ic_launcher.png
[crunch] (processed image to cache entry C:\android\test08\bin\res\drawable-xhdpi\ic_launcher.png: 69% size of source)
[crunch] Crunched 4 PNG files to update cache
[crunch] C:\android\test08\res\drawable-xhdpi\ic_launcher.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited

-package-resources:
[aapt] Creating full resource package...

-package:
[apkbuilder] Current build type is different than previous build: forced apkbuilder run.
[apkbuilder] Creating test08-debug-unaligned.apk and signing it with a debug key...

-post-package:

-do-debug:
[zipalign] Running zip align on final apk...
[zip-align] Unable to open 'C:\android\test08\bin\test08-debug.apk' as zip archive

BUILD FAILED
C:\android\android-sdk-windows\tools\ant\build.xml:1037: The following error occurred while executing this line:
C:\android\android-sdk-windows\tools\ant\build.xml:1039: The following error occurred while executing this line:
C:\android\android-sdk-windows\tools\ant\build.xml:335: null returned: 1

Total time: 1 minute 36 seconds


もうほとんどビルドができている、というかbinフォルダにapkファイルが作られているんですがBUILD FAILEDで終わってしまいます。
このapkファイルだとAndroidに転送もできないようです。
あと一歩なのに。



kanamaru

リンク

2016/1/5(Tue) 10:51:47|NO.74001

全画面にしたら、広告消せないような…。
どうやって消すためのボタン付けるんだろう。



kanamaru

リンク

2016/1/5(Tue) 11:40:33|NO.74002

多分開発環境のバージョンによる問題だと思います。
前のスレッドと同じ原因です。



kanamaru

リンク

2016/1/5(Tue) 13:48:28|NO.74003

エラーログよく見たら、
Javaをアップグレードするように出てるじゃないですか。
試しに、アップグレードしてみたらどうでしょうか?



デベロパ

リンク

2016/1/6(Wed) 10:33:36|NO.74016

クリーンした時にapkファイルが残ってしまっていたのが原因でした。お騒がせしました。

ポップアップのサイズを
popUp.setWidth(disp_width);
popUp.setHeight(disp_height);
popUp.setWindowLayoutMode(disp_width, disp_height);
で画面いっぱいにしてみました。
どなたか広告が表示されているか確認していただけませんか?


http://fast-uploader.com/file/7007599546460/
パスワード1230



kanamaru

リンク

2016/1/6(Wed) 10:39:28|NO.74017

多分、interstitial広告は準備に時間がかかるらしく、
準備が終わってから表示する必要があるのに、準備が終わってないのに表示したからだと思います。
// popup our window
の前に
while(interstitial.isloaded()=false){}
を追加したらどうでしょう?



zero

リンク

2016/1/6(Wed) 14:46:03|NO.74018

こんにちは。

個人的にHspActivityを改変していて、私の環境では上手くいったので報告します。

まず、devcontrolでAdMobを表示するときに、int型のパラメータを1つ渡せることが
分かったので、
devcontrol "AdMob", 0 でバナー広告を、
devcontrol "AdMob", 1 で全面広告を
表示できるようにしてみました。

若干、突貫工事気味ではありますが、HspActivityを添付しておきます。
https://gist.github.com/anonymous/23a806b7627dfbb85cdf



kanamaru

リンク

2016/1/6(Wed) 14:56:55|NO.74019

凄い…。
1つソース拝見して気になることがあるんですが、
ad unit id 公開してどうするんですか?
まあ損はしないとは思いますが、公開していいものでもないと思います。
せめて伏字(アスタリスクとか)に修正した方がいいと思います。
あと、人任せで申し訳ないのですが、
ついでに、アイコン型広告に対応させられないでしょうか?
そうすれば、広告の三形態全てに対応出来るので。
(それともadmobはアイコン型広告に対応してないのでしょうか?
門外漢なもので詳しく分かりませんが。)



zero

リンク

2016/1/6(Wed) 15:12:44|NO.74020

明記しておけばよかったのかもしれませんが、
上に挙げたソースの中に書かれているAd Unit IDはAdMobのテスト用のIDで、
Googleのサイトにあるサンプルでも普通に公開されているものです。
試しに実行してみると分かります。

アイコン型広告とはどのようなものでしょうか?
その辺のことはよく知らないので、時間があれば調べてみたいと思います。



kanamaru

リンク

2016/1/6(Wed) 15:16:12|NO.74021

テスト用のidというのがあったんですね。知りませんでした。
アイコン型広告等については、
https://blog.codecamp.jp/ad_for_application/
が参考になると思います。



窓月らら

リンク

2016/1/6(Wed) 16:53:54|NO.74022

> まず、devcontrolでAdMobを表示するときに、int型のパラメータを1つ渡せることが
> 分かったので、

これは新情報! いろいろ応用できそう。
というか・・・もうこのまま公式に取り込んじゃって欲しい気分。



デベロパ

リンク

2016/1/6(Wed) 23:46:59|NO.74028

>zeroさん
すごすぎる…
正直半分くらい諦めていたので感動してしまいました。

試しにアプリを作ってみたところ無事インタースティシャル広告が表示されました。
バナー広告の方はポップアップのサイズが(disp_width+4, 77)だと合わないようで調整しています。

助かりました!
これは本当に公式にしていいと思います!



デベロパ

リンク

2016/1/7(Thu) 01:29:40|NO.74031

ちなみにみなさんはバナー広告のサイズdisp_width+4, 77 で表示されていますか?
僕のAndroidではそれでは表示されずsetHeightの大きさを300くらいにして広告が表示されたのを確認したのですが、いまいち適切な表示サイズがわかっていません。
Androidの液晶サイズによって広告のサイズも変わってくるという事ですよね?
一番良いサイズはどれなんですかね。



窓月らら

リンク

2016/1/8(Fri) 02:42:32|NO.74049

setHeightがやっぱり影響しますか…
3Gや4Gで繋いでる場合も表示されなかったことがあるのですが
これとは別の問題なのかな。

フルHD(1080x1920)な5インチのスマホで試したところ
広告バナーの高さは約150px前後という感じでしたが、
とりあえず300でいいのではと思います。大きい分には問題なさそうです。



窓月らら

リンク

2016/1/8(Fri) 02:48:04|NO.74050

ちなみに、800x1280の7インチタブレットでは77のままでも表示されます。
setHeightを300にしても表示は変わらず、実害はありません。



デベロパ

リンク

2016/1/8(Fri) 08:24:23|NO.74051

>窓月ららさん
広告がポップアップの左上に表示されるので、ポップアップのサイズが大きいと広告が上の方に表示されてしまうのが気になってしまいます。とはいえこれは数字を微調整していけば解決しそうです。
しかしスマホによっては表示されない場合があるというのはかなり気になってしまう問題ですね。


>zeroさん
ちなみにiOSでのインタースティシャル広告を出す方法はわかりませんか?
iOSではAdMobのフォルダ内にGADInterstitial.hというファイルがあるんですが、広告自体はバナーしかサポートされていませんね。
Androidと違っていろんなファイルにバナーの広告を出すソースが書かれているので改変するのが大変そうです。



zero

リンク

2016/1/8(Fri) 12:02:43|NO.74052

HspActivity.javaを微妙に修正しました。
https://gist.github.com/t-miyazaki/9fee3563cf0f4da97f4b

ついでに、こちらのスレ(http://hsp.tv/play/pforum.php?mode=all&num=73137)で議論されていた
バナー広告の表示/非表示機能を追加しておきました。

この変更により、HSP3Dish(Android)において
 devcontrol "AdMob", 0 (または第二引数を省略) でバナー広告を表示/再表示、
 devcontrol "AdMob", -1 でバナー広告を非表示、
 devcontrol "AdMob", 1 で全面広告を表示
できるようになります。

・・・
バナー広告の大きさに関しては、手持ちの環境でAdMobが動く環境が
2012年版のNexus 7しかなく、この環境ではデフォルトのままから変更せずに
問題なく表示できています。
スマホの方はAndroid OSのバージョンが古くてAPI 19が動かないので
試すことができません。

iOSに関しては、触ったことがないのでちょっと分かりません。申し訳ないです…。



デベロパ

リンク

2016/1/9(Sat) 00:02:36|NO.74064

>zeroさん
助かります。
iOSの方は自力で調べつつ公式での実装を待つ事にします。
このHspActivityファイルは是非公式で採用してほしいですね。



zero

リンク

2016/1/10(Sun) 03:03:33|NO.74082

こんばんは。

スレの趣旨とはちょっと違うので申し訳ないのですが、
バナー広告が端末によっては正しく表示されない問題があるということで、少し調べています。
確証はないのであくまでダメ元で試していただきたいのですが、
こちらのファイルで実機でのバナー広告の動作確認をお願いできますか?
https://gist.github.com/t-miyazaki/37595fc476420bf75b9c

setHeight()の値を変えるのとは別な方法なので駄目かもしれません。
すみませんが、よろしくお願いします。



ゼーット!!

リンク

2016/1/10(Sun) 22:45:18|NO.74091

こんばんは。今年もボチボチとよろしくお願いします。
見ないうちに新しい話題やっていたんですね。(ーー;

全面広告は最近の無料ゲームアプリでは多くなってきてますよねー。
zeroさんが使いやすく改良されているようなので良かったです。

devcontrolの第二引数をcallAdMob側のval変数で拾えることは実験で確認してましたが、
すべての環境で動作できるのか自信なかったので放置してました。問題ないんですね?(^^;

公式で(吸収?)対応してもらった方が一番良いのですが、個人や草の根でもいじれるのが
dishの良い所だなーと、思ってみたり。



デベロパ

リンク

2016/1/11(Mon) 20:16:44|NO.74099

>zeroさん
すごいです。バナー広告表示されました。



デベロパ

リンク

2016/1/24(Sun) 16:56:14|NO.74274

回線が無い状態でインタースティシャルが表示されると、画面には透明の全面広告が出てどこを押しても反応しなくなってしまいますね。
一定の時間で広告が非表示になるように書くしかないでしょうか?



zero

リンク

2016/1/24(Sun) 18:32:14|NO.74279

インターネットに繋がっていないと全面広告の読み込みに失敗しますね(onAdFailedToLoad)。
現状のプログラムでは、それでもUIスレッド上で全面広告の読み込み完了を待つ
無限ループに入ってしまっているので、操作が効かなくなってしまっているのだと思われます。
InterstitialAdの仕様上、一定の時間で広告が非表示になるような方法は
無かったような気がします。
完全にオフラインの場合は全面広告を表示しないという方法もできますが、
それだとWi-Fiを切ることが裏道になってしまいますね…。
どうすればいいんだろう…



デベロパ

リンク

2016/1/25(Mon) 22:12:57|NO.74300

完全にオフラインの場合とはwifiの電波も無い状態の事ですか?
完全にオフラインの場合は全面広告を表示しない、はかなり良い仕様のように思えますが。



リンク

2016/1/25(Mon) 22:47:42|NO.74301

>完全にオフラインの場合は全面広告を表示しない、はかなり良い仕様

すると、殆どのユーザーはアプリを遊ぶときだけオフラインにするようになり、
広告はほぼ表示されなくなるでしょう。
それでも構わないのならば、確かにいい仕様かもしれませんが。



zero

リンク

2016/1/25(Mon) 23:14:58|NO.74303

完全にオフラインの場合とは、電波もWi-Fi接続も無い状態のことです。

オフライン時に広告が表示されないというのは、ユーザー(遊ぶ側)にとっては
良い仕様に思えるかもしれませんが、アプリ製作者側にとっては
広告表示による広告収入が入らなくなるので、良い仕様ではないでしょう。

とりあえず、NO.74052のプログラムについては「操作できなくなる」というのは
バグなので、広告が表示できない環境では広告を表示しない方向で修正して
おきましたが(表示できたかどうかの結果がstatに返るようにしました)。



デベロパ

リンク

2016/1/27(Wed) 20:12:31|NO.74330

一般的なアプリは電波が無い時、広告の表示はどうなっているんですかね?
ゲーム内で通信機能を使うゲームはそもそもゲームができないとして、広告を表示していて通信機能を使わないアプリもゲームができないようになる仕様が多いですか?



ONION software Copyright 1997-2021(c) All rights reserved.