要测试您的身份验证,您可以运行这个简单的查询,该查询将列出有关您的前 3 个应用程序的一些简要信息:
query apps {
publisher {
apps(first: 3) {
nodes {
id
name
sdkApiKey
realWorldCurrency
timezone
}
}
}
}
如果您尚未在后台设置您的应用程序,那么您使用 API 的第一步是创建您将用于变现的应用程序。
如果您的应用尚未在 App Store 或 Google Play 商店中发布,请不要担心。 storeUrl
参数以及一些其他参数(例如 orientation
)是可选的。
mutation createPublisherAppWithStoreUrl {
createPublisherApp(input: {
name: "App Created With Store URL",
platform: ANDROID,
storeUrl: "https://play.google.com/store/apps/details?id=com.tapjoy.tapout&gl=us",
orientation: PORTRAIT
}) {
app {
id
name
timezone
realWorldCurrency
}
}
}
mutation createPublisherAppWithoutStoreUrl {
createPublisherApp(input: {
name: "App Created WithOUT Store URL",
platform: ANDROID,
orientation: PORTRAIT,
currency: KRW,
timezone: TOKYO_SEOUL
}) {
app {
id
name
timezone
realWorldCurrency
}
}
}
要通过 Tapjoy 变现,您必须创建一种虚拟货币,即使您的应用程序本身并未使用虚拟货币。 应用程序和虚拟货币之间可以存在一对多的关系; 但必须至少有一个。
虚拟货币定义了广告的一个非常重要的方面——适合在您的应用中展示的广告的成熟度内容。 您可以咨询您的客户经理成熟度的相关问题,但一般而言,选择与您的应用的平台成熟度评级相似的虚拟货币成熟度将有可能获得高的 eCPM,同时显示适合您用户的广告内容。
如果您的应用没有虚拟货币,那么您只需要设置应用ID、货币名称、汇率和成熟度即可。 如果您不关心汇率,则只需提供 100,默认即可。 (更多:[虚拟货币](https://dev.tapjoy.com/en/support/Virtual-Currency-Overview))
mutation createCurrency {
createCurrency(input: {
appId: "<PASTE_YOUR_APP_ID_HERE>",
name: "New Virtual Currency",
exchangeRate: 100,
maturity: MEDIUM
}) {
currency {
id
name
exchangeRate
initialBalance
maturity
}
}
}
您还可以轻松编辑现有货币:
mutation updateCurrency {
updateCurrency(input: {
id: "<CURRENCY_ID>",
maturity: HIGH,
name: "Shell Bells",
initialBalance: 100
}) {
currency {
id
name
exchangeRate
initialBalance
maturity
callbackUrl
}
}
}
接下来,您需要创建一个或多个展示位置。 Placement
是您的应用程序中的一个特定区域,您可以在此向用户展示Tapjoy广告内容。 通过 API 创建时,您将创建会在创建Placement
的同时为这个Placement
创建一个广告内容contents
。
广告内容定义了要展示的广告类型,以及 eCPM 底价等设置。 例如,我们可以将 contentType 指定为 REWARDED_VIDEO
来展示激励视频,以及每个国家/地区的 eCPM 底价。 (目前,API 仅支持 HARD
类型)。
Name | Skippable? | Rewarded? | Programmatic? |
---|---|---|---|
PROGRAMMATIC_REWARDED_VIDEO | No | Yes | Yes |
PROGRAMMATIC_INTERSTITIAL_VIDEO | Yes | No | Yes |
REWARDED_VIDEO | No | Yes | No |
INTERSTITIAL_VIDEO | Yes | No | No |
eCPM底价以美元为单位,因此5.5
= 5.50 美元。
请注意,eCPM 底价不能应用于程序化广告内容。
非国家代码“XX”保留用作“世界其他地区”。 如果“XX”是唯一的eCPM底价,则这将作为全局底价。 如果指定了其他国家/地区代码,则“XX”是所有与其他不匹配的国家/地区的统称。
mutation createPlacementAndContent {
createPlacementsAndContents(input: {entries: [
{
appId: "<PASTE_YOUR_APP_ID_HERE>",
placementName: "Placement from API",
contentType: REWARDED_VIDEO,
ecpmSettingsToAdd: [
{ price: 5.5, country: "US" },
{ price: 6.5, country: "KR", cpmFloorType: HARD },
{ price: 7.5, country: "JP", cpmFloorType: HARD },
{ price: 7.5, country: "CA", cpmFloorType: HARD }
]
}
]}) {
placements {
id
name
description
contents {
id
name
type
isSkippable
ecpmSettings {
price
country
cpmFloorType
}
}
}
}
}
您稍后将使用placement.id 和content.id 来管理它们。
您可以轻松更新广告内容的许多方面,包括 eCPM 底价。
例如,让我们移除意大利的 eCPM 下限,并将日本的下限提高到 14 美元。
mutation updatePlacementAndContent {
updatePlacementsAndContents(input: { entries: [
{
placementId: "<PLACEMENT ID>",
contentId: "<CONTENT CARD ID>",
ecpmSettingsToUpdate: [
{country: "JP", price: 14.0}
],
ecpmSettingsToDelete: [
{country: "IT"}
]
}
]}) {
placements {
id
contents {
id
ecpmSettings {
price
country
}
}
}
}
}
添加新的 eCPM 底价也很容易:
mutation updatePlacementAndContent {
updatePlacementsAndContents(input: { entries: [
{
placementId: "<PLACEMENT ID>",
contentId: "<CONTENT CARD ID>",
ecpmSettingsToAdd: [
{country: "ES", price: 7.0}
]
}
]}) {
placements {
id
contents {
id
ecpmSettings {
price
country
}
}
}
}
}
如果提供的输入无效、验证失败或由于各种其他原因,API 将返回错误。
Tapjoy 的 Publisher API 是原子的。 这意味着如果您在单个查询中执行多个操作,则如果任何组成步骤失败,则整个查询将失败。 例如,如果您尝试更新 4 个广告内容上的 eCPM 设置,并且其中一个 ID 出现拼写错误,则整个操作将失败并且不会进行任何更改。
如果您想查看应用的当前设置,只需查询其展示位置列表以及您感兴趣的属性:
query placements {
publisher {
placements(appId: "<APP_ID>") {
id
name
contents {
id
name
type
currencyId
isSkippable
ecpmSettings {
price
country
cpmFloorType
}
}
}
}
}