2016-01-17 122 views
11

我已经在网上搜索,但迄今为止在我的研究中没有运气,我已经在我的android应用中设置了admobs,现在我只想根据关键字显示相关广告,我组。我的应用程序是基于玩具,所以我只希望有关玩具的广告展示关于admob android studio的自定义广告基于关键字

AdRequest adRequest = new AdRequest.Builder().build(); 
adView.loadAd(adRequest); 

看着这样的:Admob ad on custom Dialog

此人使用:

AdRequest request = new AdRequest(); 
     Set<String> keywords = new HashSet<String>(); 
     keywords.add("game"); 
     request.setKeywords(keywords); 

然而,这并不工作。

+0

这段代码不起作用吗?当你看到logcat时,你看到“游戏”吗? – Gavriel

+0

它没有提供任何错误,但是当我使用此代码并设置关键字时,例如玩具不会显示仅与玩具相关的广告,而是广告像以前一样是正常(随机)。 – Henry

回答

6

我认为你需要这样的:

AdRequest request = new AdRequest.Builder() 
.addKeyword("game").build(); 
.adView.loadAd(request); 

你可以用这个尝试,但这里有一些例子,也许你找到你所需要的allso:

1.Test广告

通过将哈希设备ID传递给AdRequest.Builder.addTestDevice来设置测试广告:

AdRequest request = new AdRequest.Builder() 
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)  // All emulators 
.addTestDevice("AC98C820A50B4AD8A2106EDE96FB87D4") // An example device ID 
.build(); 

2.Location

位置定位信息也可以在指定的AdRequest中:

AdRequest request = new AdRequest.Builder() 
.setLocation(location) 
.build(); 

3。性别

如果您的应用已经知道用户的性别,它可以在广告请求中提供该信息以进行定位。如果启用了中介,则信息也会转发到广告网络中介适配器。

AdRequest request = new AdRequest.Builder() 
.setGender(AdRequest.GENDER_FEMALE) 
.build(); 

4.Birthday

如果您的应用已经知道用户的生日,它可以提供用以指定目标的广告请求的信息。如果启用中介,此信息也会转发到广告网络中介适配器。

AdRequest request = new AdRequest.Builder() 
.setBirthday(new GregorianCalendar(1985, 1, 1).getTime()) 
.build(); 

5.Designed为家庭设置

如果您选择您的应用程序中谷歌Play的Designed for Families计划,并告诉你在你的应用程序的广告,您需要确保这些广告遵守专为家庭计划要求和广告政策而设计。

广告请求可以通过额外的is_designed_for_families参数设置为true被标记为为家庭设计的:

Bundle extras = new Bundle(); 
extras.putBoolean("is_designed_for_families", true); 

AdRequest request = new AdRequest.Builder() 
    .addNetworkExtrasBundle(AdMobAdapter.class, extras) 
    .build(); 

6.Child导向设置

对于儿童在线隐私的目的保护法“(COPPA),有一种称为”儿童指导治疗标签“的设置。

作为一名应用程序开发人员,您可以指出您是否希望Google在发出广告请求时将您的内容视为面向儿童的内容。如果您表示希望Google将您的内容视为面向儿童的内容,我们将采取措施禁止该广告请求上的IBA和再营销广告。该设置可以通过谷歌Play服务SDK的所有版本中使用,通过AdRequest.Builder.tagForChildDirectedTreatment(boolean):如果设置tagForChildDirectedTreatmenttrue

,您即表示您的内容应为以儿童为主的COPPA的规范治疗。 如果您将tagForChildDirectedTreatment设置为false,则表示您的内容不应被视为面向COPPA的面向儿童的内容。 如果您未设置tagForChildDirectedTreatment,广告请求将不会包含您希望关于COPPA处理您的内容的方式。

AdRequest request = new AdRequest.Builder() .tagForChildDirectedTreatment(true) .build(); 

通过设置这个标签,你确认这项通知是准确的,并且您已获得授权代表应用程序的所有者。您了解,滥用此设置可能会导致您的Google帐户被终止。

7.Keyword

添加关键字来指定目标。

AdRequest request = new AdRequest.Builder() .addKeyword(someKeyword) .build(); 

加载的广告与目标

一旦您的请求定位信息后设置,调用loadAd上用的AdView在AdRequest实例。

AdRequest request = new AdRequest.Builder() 
.setLocation(location) 
.setGender(AdRequest.GENDER_FEMALE) 
.setBirthday(new GregorianCalendar(1985, 1, 1).getTime()) 
.tagForChildDirectedTreatment(true) 
.addKeyword("game") 
.build(); 
adView.loadAd(request); 

其它信息可以在this link.

+0

这是非常好的信息。你有没有机会知道如何通过MoPub调解这些额外的参数? (在不更改适配器的情况下 - 希望对所有中介广告网络进行统一处理)。特别(专为家庭和儿童设计) – AndroidMechanic

1

你可以试着这样做:

AdRequest.Builder builder = new AdRequest.Builder() 
     .addKeyword("game"); 

现在你可以建立AdRequest中。

+0

嗨,对不起,我很新,是否需要添加其他代码或此代码完成? – Henry

+0

尝试此操作:'AdRequest.Builder builder = new AdRequest.Builder()。addKeyword(“game”); builder.setRequestAgent(“game”);'没有给出任何错误,但它不显示基于游戏的广告,它的随机广告 – Henry

+0

嗨,对不起,对于迟到的回复。您需要创建新的请求: AdRequest request = builder.build(); 我认为这应该工作。 –

2

经过一番研究,它看起来不像关键字支持。

已经有various questionsyears所有有same answer

documentation for targeting ads不包括使用关键字的任何信息。

您可以使用addKeyword(String keyword)AdRequest.Builder中添加关键字AdRequest,该文件记录为here。一个例子召唤就会象下面这样:

AdRequest adRequest = new AdRequest.Builder().addKeyword("game").build(); 
adView.loadAd(adRequest); 

然而,正如上文指出它看起来并不像在后端正在使用这些关键字。

AdMob支持网站显示有三种方式advertisers can choose to target their ads - 上下文(关键字,可能是隐含的而不是显式的),展示位置和兴趣。

你可以通过allowing and blocking ads来过滤你的应用程序,如果你真的只想显示与玩具相关的广告,那么你将不得不阻止除general category list中显示的玩具类别以外的所有内容。

0

作为每文档被发现添加关键字用于靶向目的。 您可以使用这一行代码。 public AdRequest.Builder addKeyword(String keyword)