🇨🇳
Adx3
CN
CN
  • 用户操作手册
    • 投手操作手册(PMP)
      • (一)用户登录
      • (二)订单管理
      • (三)广告投放
      • (四)广告数据
      • (五)财务管理
      • (六)素材库
      • (七)用户中心
    • 用户操作手册(DSP-Facebook)
      • 一、统一说明
      • 1.1 注册/登录
      • 1.2 常见问题
      • 二、首页
      • 2.1 名词解释
      • 2.2 页面功能
        • 2.2.1 账户充值
        • 2.2.2 数据查看
      • 三、产品管理
        • 3.1 创建/管理产品
        • 3.2 产品概览
        • 3.3 广告代投
        • 3.4 广告投放
        • 3.5 广告监测
        • 3.6 数据统计
        • 3.7 费用明细
      • 四、数据源管理
      • 五、账号管理
      • 六、代投订单
      • 七、素材库
      • 八、用户中心
    • 用户操作手册(Account)
    • 用户操作手册(SSP)
      • (一)登录操作
      • (二)网站
      • (三)应用-安卓应用
      • (四)提现
      • (五)广告统计
      • (六)用户中心
    • 用户操作手册(PMSP)
    • 用户操作手册(AGENT)
      • (一)登录充值
      • (二)账户管理
      • (三)资金账户
      • (四)数据查看
  • 接口文档
    • 监测事件回传(DSP)
    • 监测事件回传(SSP)
    • CPA、CPS事件上报
    • ANDROID
      • 开始
        • 入门指南
        • 测试广告
      • 广告格式
        • 横幅广告
        • 插屏广告
        • 激励广告
        • 开屏广告
        • 原生广告
        • 多重广告
    • IOS
      • 开始
        • 入门指南
        • 测试广告
      • 广告格式
        • 开屏广告
        • 横幅广告
        • 插屏广告
        • 激励广告
        • 原生广告
        • 多重广告
  • FAQ
    • FAQ
Powered by GitBook
On this page
  • 前提
  • 控件初始化
  • 列表适配器添加
  • 布局
  • 数据适配器
  1. 接口文档
  2. ANDROID
  3. 广告格式

多重广告

Previous原生广告NextIOS

Last updated 2 years ago

多重广告是适用于系统ListView或者RecyclerView列表中穿插广告内容,保持风格与布局依然和用户一致,做到完美融入列表布局的广告类型

前提

用户完成广告初始化步骤入门指南

本指南采用RecyclerView做为展示示例,ListView相关展示流程相同

控件初始化

首先,基于多重广告展示原理,在列表数据填充前,需要完成控件初始化,示例如下

public class CustomActivity extends AppCompatActivity {

    RecyclerView recyview;
    QuickAdapter adapter;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.xml);
        initView();
        setCustomView();
    }


    private void initView() {
     recyview = findViewById(R.id.recyview);
    }

    private void setCustomView() {
        Adx3CustomAdView.getInstance().loadData(getApplicationContext(), "UnitId");
    }

}
 

列表适配器添加

广告控件初始化完成后,根据示例,用户完成列表控件初始化与数据填充,示例如下

LinearLayoutManager manager = new LinearLayoutManager(this);
        manager.setOrientation(LinearLayoutManager.HORIZONTAL);
        recyview.setLayoutManager(manager);

        adapter = new QuickAdapter(getStrings());
        recyview.setAdapter(adapter);

根据RecyclerView模式当前示例展示为横向队列,QuickAdapter为RecyclerView默认数据适配器,请用户根据自身业务需求做自身调整

布局

当前布局配置为列表布局单个item布局,根据业务实际要求,布局样式布局可能不同,参考示例如下

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/layout_item"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <io.adx3.library.view.Adx3CustomLayoutAdview
        android:id="@+id/layout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <io.adx3.library.view.Adx3ImageItemView
            android:id="@+id/image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <io.adx3.library.view.Adx3TextItemView
            android:id="@+id/textview"
            android:layout_below="@+id/image"
            android:gravity="center"
            android:layout_width="wrap_content"
            android:layout_height="30dp" />

    </io.adx3.library.view.Adx3CustomLayoutAdview>

</androidx.constraintlayout.widget.ConstraintLayout>

当前布局采用图片+文本的形式进行页面展示

数据适配器

完成布局与控件初始化后,针对列表控件,以下示例,展示适配器填充与控件相关事件操作

public class QuickAdapter extends RecyclerView.Adapter<QuickAdapter.ViewHolder> {

    List<String> list;

    public QuickAdapter(List<String> strings) {
        list = strings;
    }

    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_recyclview, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull QuickAdapter.ViewHolder holder, @SuppressLint("RecyclerView") int position) {
        holder.view.setData(position, new CustomItemListener() {
            @Override
            public void loadByUser() {
                
            }

            @Override
            public void loadUrl(String url) {
                
            }
        });
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {

        Adx3CustomLayoutAdview view;
        Adx3ImageItemView imageItemView;
        Adx3TextItemView textItemView;

        ConstraintLayout layout_item;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            view = itemView.findViewById(R.id.layout);
            imageItemView = itemView.findViewById(R.id.image);
            textItemView = itemView.findViewById(R.id.textview);
            layout_item = itemView.findViewById(R.id.layout_item);
        }
    }
}
  • loadByUser - 参数回调方法,当前回调方法用于用户自身数据填充,用户可进行非广告位内容配置,当前配置为页面文本框内容

  • loadUrl - 点击回调方法,当前回调方法可区分用户自身控件或广告位,用户可根据当前回调,完成自身操作逻辑,广告位操作不影响用户业务流程

至此,多重广告流程添加完成,用户列表展示逻辑,与多重广告已完成隔离,不会因广告相关展示与配置影响用户自定流程