You've already forked Commercialization.tapadn
Implement TapADN commercialization module
This commit is contained in:
55
Tapadn_Adapter/Runtime/Scripts/TapadnAdRequestFactory.cs
Normal file
55
Tapadn_Adapter/Runtime/Scripts/TapadnAdRequestFactory.cs
Normal file
@@ -0,0 +1,55 @@
|
||||
using System;
|
||||
using Dirichlet.Mediation;
|
||||
using Runtime.ADAggregator;
|
||||
using UnityEngine;
|
||||
|
||||
internal static class TapadnAdRequestFactory
|
||||
{
|
||||
public static bool TryParseSlotId(string slotId, out long parsed)
|
||||
{
|
||||
return long.TryParse(slotId, out parsed) && parsed > 0;
|
||||
}
|
||||
|
||||
public static DirichletAdRequest BuildRewarded(string slotId, TapadnControllerOptions options)
|
||||
{
|
||||
var builder = CreateBaseBuilder(slotId)
|
||||
.WithUserId(ADManager.Instance.UserId)
|
||||
.WithRewardName(options?.RewardName ?? "reward")
|
||||
.WithRewardAmount(options?.RewardAmount ?? 1);
|
||||
|
||||
return builder.Build();
|
||||
}
|
||||
|
||||
public static DirichletAdRequest BuildInterstitial(string slotId, TapadnControllerOptions options)
|
||||
{
|
||||
return ApplyExpressSize(CreateBaseBuilder(slotId), options).Build();
|
||||
}
|
||||
|
||||
public static DirichletAdRequest BuildSplash(string slotId, TapadnControllerOptions options)
|
||||
{
|
||||
var builder = CreateBaseBuilder(slotId);
|
||||
var width = options?.ExpressWidth ?? Screen.width;
|
||||
var height = options?.ExpressHeight ?? Screen.height;
|
||||
return builder.WithExpressViewSize(width, height).Build();
|
||||
}
|
||||
|
||||
private static DirichletAdRequest.Builder CreateBaseBuilder(string slotId)
|
||||
{
|
||||
if (!TryParseSlotId(slotId, out var parsed))
|
||||
{
|
||||
throw new ArgumentException($"TapADN slot id must be a positive integer. Current value: {slotId}", nameof(slotId));
|
||||
}
|
||||
|
||||
return new DirichletAdRequest.Builder().WithSpaceId(parsed);
|
||||
}
|
||||
|
||||
private static DirichletAdRequest.Builder ApplyExpressSize(DirichletAdRequest.Builder builder, TapadnControllerOptions options)
|
||||
{
|
||||
if (options?.ExpressWidth != null || options?.ExpressHeight != null)
|
||||
{
|
||||
builder.WithExpressViewSize(options?.ExpressWidth ?? Screen.width, options?.ExpressHeight ?? Screen.height);
|
||||
}
|
||||
|
||||
return builder;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user