「Facebook/ビジネスマネージャ/アプリ広告/AndroidNativeBanner」の版間の差分
提供: 初心者エンジニアの簡易メモ
(ページの作成:「==サンプル== NativeBannerAdActivity.java <pre> import android.app.Activity; import android.os.Bundle; import android.support.annotation.Nullable; import android.util....」) |
|||
(同じ利用者による、間の1版が非表示) | |||
行1: | 行1: | ||
==サンプル== | ==サンプル== | ||
+ | AdSettings.addTestDevice("970f9d81-xxxxxxxxxxxxxxxxxxxx"); // testDevice | ||
+ | の部分は適宜変更する。 | ||
+ | |||
NativeBannerAdActivity.java | NativeBannerAdActivity.java | ||
<pre> | <pre> | ||
行60: | 行63: | ||
} | } | ||
}); | }); | ||
− | + | AdSettings.addTestDevice("970f9d81-xxxxxxxxxxxxxxxxxxxx"); // testDevice | |
− | AdSettings.addTestDevice("970f9d81- | + | |
// load the ad | // load the ad | ||
nativeBannerAd.loadAd(); | nativeBannerAd.loadAd(); | ||
行208: | 行210: | ||
</LinearLayout> | </LinearLayout> | ||
</pre> | </pre> | ||
+ | |||
+ | ===no fillになる場合=== | ||
+ | TestDeviceを追加してるか確認。もしくは以下のテストIDを設定すれば出るっぽい。 | ||
+ | |||
+ | ==テストIDについて== | ||
+ | ここにいろいろidが揃ってる。androidの場合は大文字にすれば良いっぽい。 | ||
+ | |||
+ | https://developers.facebook.com/docs/audience-network/reference/ios/enums/fbadtestadtype.html/# |
2019年6月19日 (水) 16:25時点における最新版
サンプル
AdSettings.addTestDevice("970f9d81-xxxxxxxxxxxxxxxxxxxx"); // testDevice
の部分は適宜変更する。
NativeBannerAdActivity.java
import android.app.Activity; import android.os.Bundle; import android.support.annotation.Nullable; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; import com.facebook.ads.*; import java.util.ArrayList; import java.util.List; public class NativeBannerAdActivity extends Activity { private NativeAdLayout nativeAdLayout; private LinearLayout adView; private NativeBannerAd nativeBannerAd; private String TAG = "NativeBannerAdActivity"; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_native_banner); // Instantiate a NativeBannerAd object. // NOTE: the placement ID will eventually identify this as your App, you can ignore it for // now, while you are testing and replace it later when you have signed up. // While you are using this temporary code you will only get test ads and if you release // your code like this to the Google Play your users will not receive ads (you will get a no fill error). nativeBannerAd = new NativeBannerAd(this, "IMG_16_9_APP_INSTALL#YOUR_PLACEMENT_ID"); nativeBannerAd.setAdListener(new NativeAdListener() { @Override public void onMediaDownloaded(Ad ad) { Log.i(TAG, "onMediaDownloaded"); } @Override public void onError(Ad ad, AdError adError) { Log.e(TAG, "onError " + adError.getErrorCode() + " " + adError.getErrorMessage()); } @Override public void onAdLoaded(Ad ad) { Log.i(TAG, "onAdLoaded"); // Race condition, load() called again before last ad was displayed if (nativeBannerAd == null || nativeBannerAd != ad) { return; } // Inflate Native Banner Ad into Container inflateAd(nativeBannerAd); } @Override public void onAdClicked(Ad ad) { Log.i(TAG, "onAdClicked"); } @Override public void onLoggingImpression(Ad ad) { Log.i(TAG, "onLoggingImpression"); } }); AdSettings.addTestDevice("970f9d81-xxxxxxxxxxxxxxxxxxxx"); // testDevice // load the ad nativeBannerAd.loadAd(); } private void inflateAd(NativeBannerAd nativeBannerAd) { // Unregister last ad nativeBannerAd.unregisterView(); // Add the Ad view into the ad container. nativeAdLayout = findViewById(R.id.native_banner_ad_container); LayoutInflater inflater = LayoutInflater.from(NativeBannerAdActivity.this); // Inflate the Ad view. The layout referenced is the one you created in the last step. adView = (LinearLayout) inflater.inflate(R.layout.native_banner_ad_unit, nativeAdLayout, false); nativeAdLayout.addView(adView); // Add the AdChoices icon RelativeLayout adChoicesContainer = adView.findViewById(R.id.ad_choices_container); AdOptionsView adOptionsView = new AdOptionsView(NativeBannerAdActivity.this, nativeBannerAd, nativeAdLayout); adChoicesContainer.removeAllViews(); adChoicesContainer.addView(adOptionsView, 0); // Create native UI using the ad metadata. TextView nativeAdTitle = adView.findViewById(R.id.native_ad_title); TextView nativeAdSocialContext = adView.findViewById(R.id.native_ad_social_context); TextView sponsoredLabel = adView.findViewById(R.id.native_ad_sponsored_label); AdIconView nativeAdIconView = adView.findViewById(R.id.native_icon_view); Button nativeAdCallToAction = adView.findViewById(R.id.native_ad_call_to_action); // Set the Text. nativeAdCallToAction.setText(nativeBannerAd.getAdCallToAction()); nativeAdCallToAction.setVisibility( nativeBannerAd.hasCallToAction() ? View.VISIBLE : View.INVISIBLE); nativeAdTitle.setText(nativeBannerAd.getAdvertiserName()); nativeAdSocialContext.setText(nativeBannerAd.getAdSocialContext()); sponsoredLabel.setText(nativeBannerAd.getSponsoredTranslation()); // Register the Title and CTA button to listen for clicks. List<View> clickableViews = new ArrayList<>(); clickableViews.add(nativeAdTitle); clickableViews.add(nativeAdCallToAction); nativeBannerAd.registerViewForInteraction(adView, nativeAdIconView, clickableViews); } }
res/layout/activty_natve_banner.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <com.facebook.ads.NativeAdLayout android:id="@+id/native_banner_ad_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" /> </RelativeLayout>
res/layout/native_banner_ad_unit.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <RelativeLayout android:id="@+id/ad_choices_container" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="2dp" /> <TextView android:id="@+id/native_ad_sponsored_label" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:ellipsize="end" android:lines="1" android:padding="2dp" android:textColor="@android:color/darker_gray" android:textSize="12sp" /> </LinearLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:color/white"> <com.facebook.ads.AdIconView android:id="@+id/native_icon_view" android:layout_width="50dp" android:layout_height="50dp" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:gravity="center" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:orientation="vertical" android:paddingLeft="53dp" android:paddingRight="83dp"> <TextView android:id="@+id/native_ad_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="end" android:lines="1" android:textColor="@android:color/black" android:textSize="15sp" android:textStyle="bold" /> <TextView android:id="@+id/native_ad_social_context" android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="end" android:lines="1" android:textSize="12sp" /> </LinearLayout> <Button android:id="@+id/native_ad_call_to_action" android:layout_width="80dp" android:layout_height="50dp" android:layout_alignParentEnd="true" android:layout_alignParentRight="true" android:background="#4286F4" android:gravity="center" android:paddingLeft="3dp" android:paddingRight="3dp" android:textColor="@android:color/white" android:textSize="12sp" android:visibility="gone" /> </RelativeLayout> </LinearLayout>
no fillになる場合
TestDeviceを追加してるか確認。もしくは以下のテストIDを設定すれば出るっぽい。
テストIDについて
ここにいろいろidが揃ってる。androidの場合は大文字にすれば良いっぽい。
https://developers.facebook.com/docs/audience-network/reference/ios/enums/fbadtestadtype.html/#