The Tenjin SDK can listen to Unity LevelPlay impression level revenue data and send revenue events to Tenjin. This integration will send revenue related for each ad impression served from IronSource. Here are the steps to integrate:
- Install 安装 the IronSource Unity SDK: https://developers.is.com/ironsource-mobile/unity/unity-plugin/#step-2
<aside> 💡
Please ensure you have the latest IronSource Unity SDK installed (>IronSource_IntegrationManager_v7.2.1)
</aside>
- Pass the revenue data to Tenjin, using the following sample code.
[System.Serializable]
public class TenjinIronSourceImpressionData
{
public string auction_id;
public string segment_name;
public string precision;
public double revenue;
public string instance_id;
public string placement;
public string ab;
public string encrypted_cpm;
public string country;
public string ad_unit;
public string ad_network;
public string instance_name;
}
private void ImpressionDataReadyEvent(IronSourceImpressionData impressionData)
{
double parsedDoubleLifetimeRevenue = 0.0;
double parsedDoubleRevenue = 0.0;
CultureInfo invCulture = CultureInfo.InvariantCulture;
// Parse revenue fields with culture-invariant formatting
if (impressionData.lifetimeRevenue != null && impressionData.revenue != null)
{
double.TryParse(string.Format(invCulture, "{0}", impressionData.lifetimeRevenue), NumberStyles.Any, invCulture, out
parsedDoubleLifetimeRevenue);
double.TryParse(string.Format(invCulture, "{0}", impressionData.revenue), NumberStyles.Any, invCulture, out parsedDoubleRevenue);
}
// Create impression data object for serialization
var impressionDataObject = new TenjinIronSourceImpressionData
{
auction_id = impressionData.auctionId ?? "",
segment_name = impressionData.segmentName ?? "",
precision = impressionData.precision ?? "",
revenue = parsedDoubleRevenue,
instance_id = impressionData.instanceId ?? "",
placement = impressionData.placement ?? "",
ab = impressionData.ab ?? "",
encrypted_cpm = impressionData.encryptedCPM ?? "",
country = impressionData.country ?? "",
ad_unit = impressionData.adUnit ?? "",
ad_network = impressionData.adNetwork ?? "",
instance_name = impressionData.instanceName ?? ""
};
// Convert to JSON string using JsonUtility
string jsonString = JsonUtility.ToJson(impressionDataObject);
// Send to Tenjin
Tenjin.getInstance("<YOUR-TENJIN-SDK_KEY>").IronSourceImpressionFromJSON(jsonString);
}
Here is an example impression level revenue data entry from Unity LevelPlay:
| Parameter | Required? | Example |
|---|---|---|
| auction_id | 没有 | 4a9fba00-a6c6-11ec-b5a2-817ec8dcf90b_1977367705 |
| segment_name | 没有 | String |
| precision | 没有 | BID |
| 收入 | 是 | 0.099 |
| instance_id | 没有 | 4334854 |
| placement | 没有 | DefaultBanner |
| ab | 没有 | - |
| encrypted_cpm | 没有 | String |
| country | 没有 | DE |
| ad_unit | 没有 | banner |
| ad_network | 没有 | ironsource |
| instance_name | 没有 | Bidding |
reference: https://developers.is.com/ironsource-mobile/unity/ad-revenue-measurement-integration/#step-1