`
jonson
  • 浏览: 168954 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

google广告封装类

阅读更多
最近在接入google广告模块,封装了一个广告的Fragment供使用。
踢掉了不必要的XML配置文件,纯代码实现相关功能。

import android.app.Fragment;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;

import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;

/**
 * 
 * used for load google advertise.
 * 

 * 
 * @author Administrator
 * 
 */
public class GoogleAdmobFragment extends Fragment {
	private AdView mAdView;
	
	private static final String ISOFFICIAL_FLAG = "is_official_flag";
	private boolean isOfficialVersion = false;

	public static final GoogleAdmobFragment newInstance(boolean bOfficial){
		GoogleAdmobFragment fragment = new GoogleAdmobFragment();
	    Bundle bundle = new Bundle(2);
	    bundle.putBoolean(ISOFFICIAL_FLAG, bOfficial);
	    fragment.setArguments(bundle);
	    return fragment ;
	}

	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
	}

	@Override
	public void onActivityCreated(Bundle savedInstanceState) {
		super.onActivityCreated(savedInstanceState);
		Bundle args = getArguments();
		if (args != null) {
			isOfficialVersion = args.getBoolean(ISOFFICIAL_FLAG);
		}
		// Gets the ad view defined in layout/ad_fragment.xml with ad unit ID
		// set in  values/strings.xml.
		//mAdView = (AdView) getView().findViewById(R.id.adView);

		// Create an ad request. Check logcat output for the hashed device ID to
		// get test ads on a physical device. e.g.
		// "Use AdRequest.Builder.addTestDevice("ABCDEF012345") to get test ads on this device."
		AdRequest adRequest = null;
		if(!isOfficialVersion){
			adRequest = new AdRequest.Builder().addTestDevice(AdRequest.DEVICE_ID_EMULATOR).build();
		}else{
			//official release.
			adRequest = new AdRequest.Builder().build();
		}
		
		mAdView.setAdListener(new AdListener() {
			@Override
			public void onAdFailedToLoad(int errorCode) {
				try {
					ViewParent pv = mAdView.getParent();
					if (pv != null) {
						pv = pv.getParent();
						if (pv != null && pv instanceof View) {
							((View) pv).setVisibility(View.GONE);
						}
					}
				} catch (Exception ex) {
					ex.printStackTrace();
				}
			}
		});
		// Start loading the ad in the background.
		mAdView.loadAd(adRequest);
	}

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
		LinearLayout adContainer = new LinearLayout(getActivity());
		adContainer.setBackgroundColor(Color.BLACK);
		adContainer.setGravity(Gravity.CENTER_HORIZONTAL);
		mAdView = new AdView(getActivity());
		mAdView.setAdSize(AdSize.BANNER);
		String adUnitId = getResources().getString(R.string.banner_ad_unit_id);
		mAdView.setAdUnitId(adUnitId);

		// Place the ad view.
		LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
		adContainer.addView(mAdView, params);
		return adContainer;
	}


1
1
分享到:
评论

相关推荐

    启动加载广告思路、广告View封装

    可以使用广告平台提供的SDK,如Google AdMob、Facebook Audience Network等。 3. **控制展示时机**:当广告数据加载完成后,立即显示广告界面,同时启动主界面的加载。为了保证用户体验,广告展示时间不宜过长,...

    iOS封装好的广告位代码

    这种封装通常涉及到创建一个自定义视图类,该类能够加载不同类型的广告,并提供灵活的配置选项,比如广告尺寸、位置、刷新间隔等。 描述中的“原文在http://www.cocoachina.com/bbs/read.php?tid=317798”表明这个...

    swift-LaunchAd开屏广告的实现代码没有过多的封装

    2. **加载广告数据**:使用广告网络的SDK,如Google AdMob、Facebook Audience Network或自定义服务器接口,来请求和加载广告数据。这通常涉及到网络请求和JSON解析。 3. **展示广告**:当广告数据加载完成,将广告...

    Laravel开发-capx-google-ads

    3. **API调用**:在控制器或服务类中,注入Google Ads API客户端,然后调用封装的方法执行所需的操作。 4. **错误处理**:处理可能的API错误,如超时、权限问题等,确保应用的健壮性。 5. **日志记录**:记录API调用...

    谷歌插件 过滤广告和护眼插件 拖到拓展程序中即可安装

    "谷歌插件 过滤广告和护眼插件"是一个专门针对谷歌浏览器(Chrome)设计的扩展,旨在帮助用户过滤掉网页中的广告,并提供护眼模式以减轻长时间看屏幕的视觉疲劳。 首先,让我们了解一下谷歌插件。谷歌插件,也称为...

    ios应用源码之下面的推出来再隐藏得广告demo 2018127

    6. **代码结构**:在源码中,关键的逻辑通常会封装在特定的类或扩展中,如AdManager,它负责与广告网络的API交互,管理广告的显示和隐藏状态。这样可以保持代码的整洁和可维护性。 7. **适配不同屏幕尺寸**:由于...

    swift-UIViewController的一个封装底部带有GADBannerView

    在给定的标题“swift-UIViewController的一个封装底部带有GADBannerView”中,我们可以理解到这是一个特定的`UIViewController`子类,它的设计目标是在屏幕底部集成Google AdMob的`GADBannerView`广告展示。...

    【c++管理系统】 广告管理系统

    C++的面向对象特性(类、对象、封装、继承、多态)能帮助我们更好地设计和实现这些实体,使得代码更易于理解和维护。 3. **STL(标准模板库)**: STL是C++的重要组成部分,提供了容器(如vector、list、set、map...

    iOS 微信 Apple登录 内购 Google Facebook AppsFlyer接入工具类

    `OCHelp`类可能包含用于封装这些操作的方法,简化内购集成。 微信SDK提供了一整套与微信平台交互的功能,包括分享、支付和登录等。开发者需要在微信开放平台上注册应用,获取AppID,然后在项目中引入WeChatSDK,...

    PyPI 官网下载 | googleads-15.0.2.tar.gz

    2. **服务对象**:库为每个Google Ads API服务创建了对应的Python类,如AdGroupService、CampaignService等,便于开发者直接操作。 3. **实体操作**:支持广告组、关键词、广告等实体的创建、更新、查询和删除,...

    基于java的Google Tag Library.zip

    通过导入这些类,开发者可以轻松地添加跟踪代码、管理广告以及执行其他与Google服务相关的任务。 `google.tld`是Tag Library Descriptor文件,它是JSP(JavaServer Pages)技术的一部分,用于定义自定义标签库。在...

    自己封装的二维码扫描

    在IT行业中,二维码扫描是一种常见的数据交互方式,广泛应用于移动应用、支付、广告推广等领域。本文将基于“自己封装的二维码扫描”这一主题,详细解析如何实现一个自定义的二维码扫描功能,以及需要注意的关键点。...

    adcontroller控制

    1. **广告网络选择**:开发者需要选择合适的广告网络,如Google AdMob、Facebook Audience Network、Unity Ads等,根据其提供的SDK进行集成。 2. **初始化和配置**:在应用程序启动时,需要初始化adcontroller并...

    Android Vungle SDK 接入Demo

    4. **单例封装**:为了更好地管理和控制Vungle的生命周期,通常会将Vungle的接口调用封装在一个单例类中,比如`VungleAdController`。这样可以确保在整个应用中只有一个Vungle实例,避免资源浪费和冲突。在`...

    谷歌浏览器加速插件2023

    - **广告拦截插件**:如"Adblock Plus",可以阻止弹窗广告和追踪器,提高网页加载速度。 - **DNS优化插件**:"Fast DNS" 类插件能改变DNS解析方式,提高连接速度。 - **数据压缩插件**:"Opera Turbo" 或 "Hola ...

    Python库 | google-parser-0.0.51.tar.gz

    "google-parser"很可能包含了各种函数和类,用于解析Google搜索结果、Google Analytics数据、Google Sheets信息、或者可能是Google AdWords广告数据等。这些功能可以帮助开发者快速地获取和处理来自Google的各种信息...

    Google Tag Library jar包

    这个jar包是专门为Java开发者设计的,帮助他们在Web应用中集成Google的营销和分析服务,如Google Analytics(谷歌分析)和其他Google广告产品。通过使用这个库,开发者可以更轻松地在他们的网站或应用程序中添加跟踪...

    adwords:node.js 广告词 api

    在IT行业中,Google AdWords是一款强大的在线广告平台,帮助企业、个人和机构通过有针对性的广告投放来吸引潜在客户。而"adwords:node.js 广告词 API"则是针对这一平台的一个开发项目,利用JavaScript语言实现了与...

    页面书页脚广告jQuery插件特效

    5. **广告API集成**:如果插件需要显示来自第三方广告服务(如Google AdSense)的广告,需要理解如何与这些服务的API进行交互,获取并显示广告内容。 6. **性能优化**:了解如何优化jQuery代码,减少DOM操作,使用...

    Laravel开发-laravel-adwords-targeting-idea-service

    这个类可以封装所有的请求和响应,使你的应用代码更简洁。例如,你可以创建一个名为`AdWordsService`的类,包含方法如`getKeywordIdeas`,该方法接受一些参数,如关键词和地理位置,然后调用AdWords API获取相关的...

Global site tag (gtag.js) - Google Analytics