Files
Commercialization.tapadn/Tapadn_Adapter/Runtime/Scripts/TapadnAdRequestFactory.cs

56 lines
1.9 KiB
C#

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;
}
}