arttiger / laravel-cpa
Laravel CPA (Cost Per Action) network integration package
Requires
- illuminate/support: ^5.6|^6.0|^7.0|^8.0|^9.0
Requires (Dev)
- mockery/mockery: ^1.4.2
- orchestra/testbench: ^3.0|^4.0|^5.0|^6.0
- phpunit/phpunit: ^8.5
- sempro/phpunit-pretty-print: ^1.0
- styleci/cli: ^1.2
README
Laravel Package for CPA networks integration and target customer actions registration in your application. Currently supported: Admitad, Credy, DoAffiliate, Finline, LeadGid, Leads.su, PapaKarlo, Sales Doubler, Storm Digital, Loangate, Appscorp, PAP, GoodAff, LetMeAds, GuruLeads, Nolimit.
Installation
Install the package via composer:
$ composer require arttiger/laravel-cpa
Next, you need to run migrations:
$ php artisan migrate
For Laravel 5.4 and below it necessary to register the service provider
Configuration
In order to edit the default configuration you may execute:
php artisan vendor:publish --provider="Arttiger\Cpa\CpaServiceProvider"
After that, config/cpa.php
will be created.
Environment
This package can be configured by environment variables out-of-box:
- SALES_DOUBLER_ID - personal id for request to SalesDoubler
- SALES_DOUBLER_TOKEN - token for request URI for SalesDoubler
- STORM_DIGITAL_GOAL - (default: 1), goal in URL for StormDigital
- STORM_DIGITAL_SECURE - secure in URL for StormDigital
- PAPA_KARLO_TYPE - ('offer' or 'goal') postback type for PapaKarlo
- PAPA_KARLO_OFFER - (default: 35) personal offer id for PapaKarlo
- PAPA_KARLO_GOAL - (default: 75) personal goal id for PapaKarlo
- PDL_PROFIT_OFFER - ID of the advertiser in the PDL-Profit system
- DO_AFFILIATE_PATH - path for DoAffiliate API (example: pozichka-ua in http://tracker2.doaffiliate.net/pozichka-ua)
- LEADS_SU_TOKEN - token for LeadsSu
- ADMITAD_POSTBACK_KEY - postback request authentication key, constant string 32 char
- ADMITAD_CAMPAIGN_CODE - AdmitAd defined campaign code, constant string 10 char
- ADMITAD_ACTION_CODE - target action code, get it from AdmitAd
- CREDY_OFFER - offer code, get it from Credy
- LET_ME_ADS_PATH - path for LetMeAds API (example: api/v1.1/y7r/dcfgs1tg:awvv47ghn1jv1f$am/get/postback.json)
- GURU_LEADS_PATH - path for GuruLeads API (example: postback)
- CLICK2MONEY_PATH - path for Click2Money API (example: cpaCallback)
- NOLIMIT_PATH - path for Nolimit API (example: postback)
If one of key for some CPA network not set postback requests for this network will not be done.
Register Middleware
You may register the package middleware in the app/Http/Kernel.php
file:
<?php namespace App\Http; use Illuminate\Foundation\Http\Kernel as HttpKernel; class Kernel extends HttpKernel { /** * The application's route middleware. * * @var array */ protected $routeMiddleware = [ /**** OTHER MIDDLEWARE ****/ 'lead.check' => \Arttiger\Cpa\Middleware\LeadCheckMiddleware::class ]; }
You may add middleware to your group like this:
Route::group( [ 'middleware' => [ 'lead.check' ] ], function(){ //... });
Usage
Create Lead when user registered
CpaLead::createFromCookie(auth()->user()); // or CpaLead::createFromCookie($userId);
When goal is achieved register conversion
CpaConversion::register($user, $transactionId, 'sale');
Events (e.g. 'sale') must be specified in config. You can add additional params for specific events. See config/cpa.php
samples
Change log
Please see the changelog for more information on what has changed recently.
Testing
$ composer test
Contributing
Please see contributing.md for details and a todolist.
Security
If you discover any security related issues, please email author email instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.