「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/#
