Este blog lo hice para dedicarme a añadir contenido en él que no cuadran en mis otros blogs y en mi Twitter. Este blog será diferente a mi otro blog JAGMGeorgyFantastico y mi twitter JAGMGeorgy, porque añadiré realmente cualquier cosa que me venga a la mente, que conozca y/o quiera compartir sin estar obligado a educar una sola cosa en cada publicación. A su vez, hay un tema en elforonuevo.com donde podrán ver casi las mismas publicaciones, ya que así podré también tener mi propio hilo en esos foros. Espero que les guste este blog. Les aviso si, que si quieren ver más de las publicaciones que hice en este blog, tienen que pulsar abajo el texto que dice "Entradas antiguas."

miércoles, 30 de octubre de 2024

Script para que los videojuegos de Unity tengan publicidad que se quite al pagar cierta cantidad de dinero


Esta vez les comparto un tutorial de ChatGPT para que los videojuegos que hagan en Unity muestren publicidad, pero que esta publicidad no se vea y sea quitada al pagar cierta cantidad de dinero. Muchos tutoriales de YouTube muestran como poner publicidad en los videojuegos de Unity, pero no muestran cómo quitarlos pagando algo de dinero. Obviamente este dinero que se pague para no tener publicidad en el videojuego también debería llegar también al dueño del videojuego. Yo al menos no he entendido aún este tutorial, pero lo comparto por si alguno lo entiende mejor.


Este es el tutorial que me dio ChatGPT:


"Para implementar publicidad de pantalla completa en tu videojuego de Unity y eliminarla permanentemente después de que el jugador realice un pago dentro del juego, puedes seguir estos pasos utilizando Google AdMob para la publicidad y Unity IAP (In-App Purchases) para los pagos. Te doy una guía general sobre cómo hacerlo:

1. Agregar AdMob para mostrar anuncios

  1. Instalar el SDK de Google AdMob en tu proyecto:

    • Ve al menú de Unity y selecciona Window > Package Manager.

    • Busca Google Mobile Ads Unity Plugin e instálalo.

    • Configura AdMob siguiendo la documentación oficial de Google.

  2. Mostrar anuncios intersticiales (pantalla completa):

    • Después de configurar AdMob, en tu código, añade la lógica para cargar y mostrar un anuncio intersticial. Aquí tienes un ejemplo básico de cómo hacerlo:

csharp
Copiar código
using GoogleMobileAds.Api;

using UnityEngine;


public class AdManager : MonoBehaviour

{

    private InterstitialAd interstitial;


    void Start()

    {

        // Inicializa el SDK de Google Mobile Ads

        MobileAds.Initialize(initStatus => { });


        // Solicita y carga el anuncio

        RequestInterstitial();

    }


    private void RequestInterstitial()

    {

        string adUnitId = "ca-app-pub-XXXXXXXXXXXXXXXX/XXXXXXXXXX"; // Reemplaza con tu ID de AdMob

        interstitial = new InterstitialAd(adUnitId);

        AdRequest request = new AdRequest.Builder().Build();

        interstitial.LoadAd(request);

    }


    public void ShowInterstitial()

    {

        if (interstitial.IsLoaded())

        {

            interstitial.Show();

        }

    }

}


  1. Mostrar el anuncio cuando sea necesario (por ejemplo, después de cada nivel o a intervalos definidos):

    • Llama al método ShowInterstitial() en los puntos donde quieras que aparezca la publicidad.

2. Implementar compras dentro de la aplicación (IAP)

  1. Instalar Unity IAP:

    • En Unity, ve a Window > Package Manager.

    • Busca e instala el paquete In-App Purchasing.

  2. Configurar Unity IAP:

    • Ve a Window > Services y habilita In-App Purchasing para tu proyecto.

    • Configura los productos en la consola de Unity bajo la pestaña de IAP Catalog.

  3. Código para manejar las compras:

    • A continuación, un ejemplo de cómo implementar una compra que elimina los anuncios:

csharp
Copiar código
using UnityEngine;

using UnityEngine.Purchasing;


public class IAPManager : MonoBehaviour, IStoreListener

{

    private IStoreController storeController;

    private string removeAdsProductId = "remove_ads"; // Reemplaza con tu ID de producto


    void Start()

    {

        InitializePurchasing();

    }


    public void InitializePurchasing()

    {

        if (IsInitialized()) return;


        var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());

        builder.AddProduct(removeAdsProductId, ProductType.NonConsumable);


        UnityPurchasing.Initialize(this, builder);

    }


    private bool IsInitialized()

    {

        return storeController != null;

    }


    public void BuyRemoveAds()

    {

        if (IsInitialized())

        {

            storeController.InitiatePurchase(removeAdsProductId);

        }

    }


    public void OnPurchaseComplete(Product product)

    {

        if (product.definition.id == removeAdsProductId)

        {

            PlayerPrefs.SetInt("ads_removed", 1); // Guarda que el jugador compró para quitar los anuncios

        }

    }


    public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)

    {

        Debug.LogError($"Compra fallida: {failureReason}");

    }

}


  1. Desactivar los anuncios tras la compra:

    • En el script de manejo de la publicidad, revisa si el jugador ha comprado la opción para eliminar anuncios:

csharp
Copiar código
public class AdManager : MonoBehaviour

{

    private InterstitialAd interstitial;


    void Start()

    {

        if (PlayerPrefs.GetInt("ads_removed", 0) == 1)

        {

            return; // No cargar los anuncios si se han eliminado

        }


        MobileAds.Initialize(initStatus => { });

        RequestInterstitial();

    }


    private void RequestInterstitial()

    {

        string adUnitId = "ca-app-pub-XXXXXXXXXXXXXXXX/XXXXXXXXXX";

        interstitial = new InterstitialAd(adUnitId);

        AdRequest request = new AdRequest.Builder().Build();

        interstitial.LoadAd(request);

    }


    public void ShowInterstitial()

    {

        if (PlayerPrefs.GetInt("ads_removed", 0) == 0 && interstitial.IsLoaded())

        {

            interstitial.Show();

        }

    }

}


3. Guardar y restaurar el estado del pago

  • Utiliza PlayerPrefs para almacenar el estado de la compra, pero también asegúrate de implementar un sistema para restaurar las compras si el jugador cambia de dispositivo.

  • Puedes implementar una función de restauración de compras usando el siguiente código:

csharp

Copiar código

public void RestorePurchases()

{

    if (!IsInitialized()) return;


    if (Application.platform == RuntimePlatform.IPhonePlayer ||

        Application.platform == RuntimePlatform.OSXPlayer)

    {

        var builder = new AppleStoreBindings();

        builder.RestoreTransactions(result => Debug.Log("Restore transactions result: " + result));

    }

}


Resumen del flujo:

  1. Muestra los anuncios intersticiales hasta que el jugador realice una compra.

  2. Usa Unity IAP para permitir que el jugador compre la opción de eliminar anuncios.

  3. Una vez realizada la compra, guarda el estado (usando PlayerPrefs o un sistema en la nube).

  4. Verifica si la compra se ha realizado y evita mostrar anuncios en futuras sesiones.

Con estos pasos, tendrás un sistema de publicidad de pantalla completa que se desactiva permanentemente si el jugador paga."


Espero que les sirva este tutorial. Seguiré publicando nuevas cosas si se me ocurre algo nuevo que publicar ¡¡Hasta pronto!!

No hay comentarios.:

Publicar un comentario

Canción Fan club de videojuego Rhythm Heaven igual en videojuego y en concierto

Hoy día quería compartirles algo interesante que solo publiqué antes en foros de internet, estos son dos videos acerca de una canción de vid...